int newmask = minmask, i, len, found = 0;
ENTRY;
- /* <str> must be a list of tokens separated by whitespace
+ /* <str> must be a list of tokens separated by whitespace or comma,
* and optionally an operator ('+' or '-'). If an operator
* appears first in <str>, '*oldmask' is used as the starting point
* (relative), otherwise minmask is used (absolute). An operator
* applies to all following tokens up to the next operator.
*/
while (*str != 0) {
- while (isspace(*str))
+ while (isspace(*str) || *str == ',')
str++;
if (*str == 0)
break;
/* find token length */
for (len = 0; str[len] != 0 && !isspace(str[len]) &&
- str[len] != '+' && str[len] != '-'; len++);
+ str[len] != '+' && str[len] != '-' && str[len] != ',';
+ len++);
/* match token */
found = 0;