Thread (1 message) 1 message, 1 author, 2016-06-16

Re: [PATCHv9 4/4] pathspec: allow querying for attributes

From: Junio C Hamano <hidden>
Date: 2016-06-16 02:19:31

Stefan Beller [off-list ref] writes:
+attr;;
+After `attr:` comes a space separated list of "attribute
+...
++
The text looks OK, but does it format well?
+		attr_len = strcspn(attr, "=");
Scanning for '=' here retains the same bug from the previous
iteration where you take !VAR=VAL and silently ignore =VAL part
without diagnosing the error, doesn't it?

Perhaps strlen(attr) here, and...
+		switch (*attr) {
+		case '!':
+			am->match_mode = MATCH_UNSPECIFIED;
+			attr++;
+			attr_len--;
+			break;
+		case '-':
+			am->match_mode = MATCH_UNSET;
+			attr++;
+			attr_len--;
+			break;
+		default:
+			if (attr[attr_len] != '=')
+				am->match_mode = MATCH_SET;
+			else {
+				am->match_mode = MATCH_VALUE;
+				am->value = xstrdup(&attr[attr_len + 1]);
+				if (strchr(am->value, '\\'))
+					die(_("attr spec values must not contain backslashes"));
+			}
+			break;
+		}
... doing strcspn() only in default: part would be a quick fix.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help