From: Dmitry V. Levin Date: Thu, 24 Nov 2016 21:35:05 +0000 (+0000) Subject: Simplify parse_fault_expression X-Git-Tag: v4.15~87 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cba0d84defbebf81f2a3b3966eaa082e97458ae0;p=strace Simplify parse_fault_expression * syscall.c (parse_fault_expression): Rewrite iterator over strtok_r in a more concise way. --- diff --git a/syscall.c b/syscall.c index 2e9b2e34..4143bc0c 100644 --- a/syscall.c +++ b/syscall.c @@ -632,21 +632,21 @@ static const char * parse_fault_expression(const char *const s, char **buf, struct fault_opts *const fopts) { - const char *name; - const char *token; char *saveptr = NULL; + const char *name = NULL; + const char *token; *buf = xstrdup(s); - name = strtok_r(*buf, ":", &saveptr); - if (!name || !*name) - goto parse_error; - - while ((token = strtok_r(NULL, ":", &saveptr))) { - if (!parse_fault_token(token, fopts)) + for (token = strtok_r(*buf, ":", &saveptr); token; + token = strtok_r(NULL, ":", &saveptr)) { + if (!name) + name = token; + else if (!parse_fault_token(token, fopts)) goto parse_error; } - return name; + if (name) + return name; parse_error: free(*buf);