summaryrefslogtreecommitdiff
path: root/lib/strncasecmp.c
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2020-07-22 18:35:20 +0200
committerBruno Haible <bruno@clisp.org>2020-07-24 00:13:55 +0200
commitefa15594e17fc20827dba66414fb391e99905394 (patch)
tree9710f6d5d8c6c36c98d44eb3367215f116dbf638 /lib/strncasecmp.c
parent27027b83f91266c2d848841a1caf6fbda69ce07e (diff)
downloadgnulib-efa15594e17fc20827dba66414fb391e99905394.tar.gz
Optimize three-valued comparison between integers.
(a > b ? 1 : a < b ? -1 : 0) is the same as (a > b) - (a < b). * m4/gnulib-common.m4 (gl_COMMON): Define _GL_CMP. * lib/c-strcasecmp.c (c_strcasecmp): Use _GL_CMP. * lib/c-strncasecmp.c (c_strncasecmp): Likewise. * lib/dfa.c (compare): Likewise. * lib/fts.c (fts_compare_ino): Likewise. * lib/mbmemcasecmp.c (mbmemcasecmp): Likewise. * lib/mbscasecmp.c (mbscasecmp): Likewise. * lib/mbsncasecmp.c (mbsncasecmp): Likewise. * lib/memcasecmp.c (memcasecmp): Likewise. * lib/memcmp2.c (memcmp2): Likewise. * lib/savedir.c (direntry_cmp_inode): Likewise. * lib/strcasecmp.c (strcasecmp): Likewise. * lib/strncasecmp.c (strncasecmp): Likewise. * lib/unistr/u-cmp2.h (FUNC): Likewise.
Diffstat (limited to 'lib/strncasecmp.c')
-rw-r--r--lib/strncasecmp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/strncasecmp.c b/lib/strncasecmp.c
index 4c1b5b52c9..396d1caaa2 100644
--- a/lib/strncasecmp.c
+++ b/lib/strncasecmp.c
@@ -58,5 +58,5 @@ strncasecmp (const char *s1, const char *s2, size_t n)
/* On machines where 'char' and 'int' are types of the same size, the
difference of two 'unsigned char' values - including the sign bit -
doesn't fit in an 'int'. */
- return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0);
+ return _GL_CMP (c1, c2);
}