diff options
author | René Scharfe <l.s.r@web.de> | 2024-02-10 08:43:01 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2024-02-12 18:32:41 +0100 |
commit | f0e578c69cd91a554179c09dab6989f6eb0e2910 (patch) | |
tree | 0f0e026d645a86529a80a2237f78329534cd5ba1 /contrib/coccinelle | |
parent | Git 2.43.1 (diff) | |
download | git-f0e578c69cd91a554179c09dab6989f6eb0e2910.tar.xz git-f0e578c69cd91a554179c09dab6989f6eb0e2910.zip |
use xstrncmpz()
Add and apply a semantic patch for calling xstrncmpz() to compare a
NUL-terminated string with a buffer of a known length instead of using
strncmp() and checking the terminating NUL explicitly. This simplifies
callers by reducing code duplication.
I had to adjust remote.c manually because Coccinelle inexplicably
changed the indent of the else branches.
Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib/coccinelle')
-rw-r--r-- | contrib/coccinelle/xstrncmpz.cocci | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/contrib/coccinelle/xstrncmpz.cocci b/contrib/coccinelle/xstrncmpz.cocci new file mode 100644 index 0000000000..ccb39e2bc0 --- /dev/null +++ b/contrib/coccinelle/xstrncmpz.cocci @@ -0,0 +1,28 @@ +@@ +expression S, T, L; +@@ +( +- strncmp(S, T, L) || S[L] ++ !!xstrncmpz(S, T, L) +| +- strncmp(S, T, L) || S[L] != '\0' ++ !!xstrncmpz(S, T, L) +| +- strncmp(S, T, L) || T[L] ++ !!xstrncmpz(T, S, L) +| +- strncmp(S, T, L) || T[L] != '\0' ++ !!xstrncmpz(T, S, L) +| +- !strncmp(S, T, L) && !S[L] ++ !xstrncmpz(S, T, L) +| +- !strncmp(S, T, L) && S[L] == '\0' ++ !xstrncmpz(S, T, L) +| +- !strncmp(S, T, L) && !T[L] ++ !xstrncmpz(T, S, L) +| +- !strncmp(S, T, L) && T[L] == '\0' ++ !xstrncmpz(T, S, L) +) |