X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fprocesses.c;h=14fe1d8cf040dff66e11f3f5a3562ba426bbd7c7;hb=5f6cbebb5f47e7605777baed71cede3207666437;hp=79451d320d3b500fd321edfd9fed226565d74c7a;hpb=3ff4d313fc9e0bc1f7d435b88f902d509ce47137;p=collectd.git diff --git a/src/processes.c b/src/processes.c index 79451d32..14fe1d8c 100644 --- a/src/processes.c +++ b/src/processes.c @@ -247,13 +247,32 @@ static void ps_list_register (const char *name, const char *regexp) /* try to match name against entry, returns 1 if success */ static int ps_list_match (const char *name, const char *cmdline, procstat_t *ps) { - if ((ps->re != NULL) && (regexec(ps->re, (strlen(cmdline)!=0)?cmdline:name, 0, NULL, 0) == 0)) - return (1); - if (strcmp (ps->name, name) == 0) { - return (1); +#if HAVE_REGEX_H + if (ps->re != NULL) + { + int status; + const char *str; + + str = cmdline; + if ((str == NULL) || (str[0] == 0)) + str = name; + + assert (str != NULL); + + status = regexec (ps->re, str, + /* nmatch = */ 0, + /* pmatch = */ NULL, + /* eflags = */ 0); + if (status == 0) + return (1); } + else +#endif + if (strcmp (ps->name, name) == 0) + return (1); + return (0); -} +} /* int ps_list_match */ /* add process entry to 'instances' of process 'name' (or refresh it) */ static void ps_list_add (const char *name, const char *cmdline, procstat_entry_t *entry)