version 1.33, 2016/11/06 05:46:37 |
version 1.34, 2017/02/03 23:01:19 |
|
|
free(s); |
free(s); |
return NULL; |
return NULL; |
} |
} |
|
|
|
/* |
|
* Filters a comma-separated list of strings, excluding any entry matching |
|
* the 'filter' pattern list. Caller must free returned string. |
|
*/ |
|
char * |
|
match_filter_list(const char *proposal, const char *filter) |
|
{ |
|
size_t len = strlen(proposal) + 1; |
|
char *fix_prop = malloc(len); |
|
char *orig_prop = strdup(proposal); |
|
char *cp, *tmp; |
|
|
|
if (fix_prop == NULL || orig_prop == NULL) |
|
return NULL; |
|
|
|
tmp = orig_prop; |
|
*fix_prop = '\0'; |
|
while ((cp = strsep(&tmp, ",")) != NULL) { |
|
if (match_pattern_list(cp, filter, 0) != 1) { |
|
if (*fix_prop != '\0') |
|
strlcat(fix_prop, ",", len); |
|
strlcat(fix_prop, cp, len); |
|
} |
|
} |
|
free(orig_prop); |
|
return fix_prop; |
|
} |
|
|