Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15

Re: [PATCH] builtin/remote: remove postfixcmp() and use suffixcmp() instead

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:59:10

Junio C Hamano [off-list ref] writes:
I do not think anybody sane uses prefixcmp() or suffixcmp() for
anything but checking with zero; in other words, I suspect that all
uses of Xcmp() can be replaced with !!Xcmp(), so as a separate
clean-up patch, we may at least want to make it clear that the
callers should not expect anything but "does str have sfx as its
suffix, yes or no?" by doing something like this:

 int suffixcmp(const char *str, const char *suffix)
 {
 	int len = strlen(str), suflen = strlen(suffix);
 	if (len < suflen)
 		return -1;
 	else
-		return strcmp(str + len - suflen, suffix);
+		return !!strcmp(str + len - suflen, suffix);
 }

I am not absolutely sure about doing the same to prefixcmp(),
though. It could be used for ordering, even though no existing code
seems to do so.
I just realized why this suggestion is incomplete; if we were to go
this route, we should rename the function to has_suffix() or
something. anything-cmp() ought to be usable as an ordering
comparison function, but suffixcmp() clearly isn't.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help