"James Hawkins" truiken@gmail.com wrote:
- while (*cptr && (*cptr == '=' || *cptr == '+' ||
*cptr == '-' || *cptr == '!' || *cptr == '*'))- {
switch (*cptr){case '=':*flags |= ENV_ACT_SETALWAYS;break;case '+':*flags |= ENV_ACT_SETABSENT;break;case '-':*flags |= ENV_ACT_REMOVE;break;case '!':*flags |= ENV_ACT_REMOVEMATCH;break;case '*':*flags |= ENV_MOD_MACHINE;break;default:ERR("Unknown Environment flag: %c\n", *cptr);return ERROR_FUNCTION_FAILED;}cptr++;(*name)++;- }
A simple 'goto' in the 'default:' case, or using
while (*cptr) { if (*cptr == '=') else if (*cptr == '+') { } else if (...) { } else break; }
would help to avoid double comparisons and simplify the code.