commit 444f802d580a43bf1f38d2e27709b40860e83cc7
parent 1904f51fb5cb56e6b544fb1d8a4f37c8630d0050
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date: Sun, 1 Jul 2007 21:46:00 +0000
in nstrncasecmp() and mbstrncasecmp(), for efficiency, return zero
immediately if s1 and s2 point to the same string
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4121 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Diffstat:
2 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,3 +1,8 @@
+2007-07-01 David Lawrence Ramsey <pooka109@gmail.com>
+
+ * chars.c (nstrncasecmp, mbstrncasecmp): For efficiency, return
+ zero immediately if s1 and s2 point to the same string.
+
2007-06-30 David Lawrence Ramsey <pooka109@gmail.com>
* prompt.c (do_yesno_prompt): Remove redundant check for
diff --git a/src/chars.c b/src/chars.c
@@ -506,6 +506,9 @@ int mbstrcasecmp(const char *s1, const char *s2)
/* This function is equivalent to strncasecmp(). */
int nstrncasecmp(const char *s1, const char *s2, size_t n)
{
+ if (s1 == s2)
+ return 0;
+
assert(s1 != NULL && s2 != NULL);
for (; *s1 != '\0' && *s2 != '\0' && n > 0; s1++, s2++, n--) {
@@ -526,6 +529,9 @@ int mbstrncasecmp(const char *s1, const char *s2, size_t n)
char *s1_mb, *s2_mb;
wchar_t ws1, ws2;
+ if (s1 == s2)
+ return 0;
+
assert(s1 != NULL && s2 != NULL);
s1_mb = charalloc(MB_CUR_MAX);