From: Steven Schubiger Date: Wed, 2 Aug 2017 09:07:02 +0000 (+0200) Subject: Optimize extracting invalid attribute name X-Git-Tag: v0.62~4 X-Git-Url: http://git.refcnt.org/?p=colorize.git;a=commitdiff_plain;h=ef3ba3bb9a06cffad7b4530a88f36b871abe2e0d Optimize extracting invalid attribute name --- diff --git a/colorize.c b/colorize.c index 1e27fca..8c0afcb 100644 --- a/colorize.c +++ b/colorize.c @@ -469,11 +469,10 @@ process_opt_attr (const char *p) } if (!valid_attr) { - char *sep; - char *attr_invalid = xstrdup (s); + char *attr_invalid = xmalloc ((p - s) + 1); STACK_VAR (attr_invalid); - if ((sep = strchr (attr_invalid, ','))) - *sep = '\0'; + strncpy (attr_invalid, s, p - s); + attr_invalid[p - s] = '\0'; vfprintf_fail ("--attr switch attribute '%s' is not valid", attr_invalid); } } diff --git a/t/fail.t b/t/fail.t index e2d71be..10378c4 100755 --- a/t/fail.t +++ b/t/fail.t @@ -43,7 +43,7 @@ SKIP: { [ '--attr=:', 'must be provided a string' ], [ '--attr=bold:underscore', 'must have strings separated by ,' ], [ '--attr=b0ld', 'attribute \'b0ld\' is not valid' ], - [ '--attr=b0ld,underscore', 'attribute \'b0ld\' is not valid' ], # NULify comma + [ '--attr=b0ld,underscore', 'attribute \'b0ld\' is not valid' ], # handle comma [ '--attr=bold,bold', 'has attribute \'bold\' twice or more' ], [ '--exclude-random=random', 'must be provided a plain color' ], [ '--clean --clean-all', 'mutually exclusive' ],