]> git.wh0rd.org Git - nano.git/commitdiff
in nstrncasecmp() and mbstrncasecmp(), for efficiency, return zero
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Sun, 1 Jul 2007 21:46:00 +0000 (21:46 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Sun, 1 Jul 2007 21:46:00 +0000 (21:46 +0000)
immediately if s1 and s2 point to the same string

git-svn-id: svn://svn.savannah.gnu.org/nano/branches/nano_2_0_branch/nano@4121 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/chars.c

index 6efd1939512c2895b3193e36ec6e7cfd4d2f1608..d45fcb0cd9a94be610ccd0ac5f2dd491f58e6e22 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,6 +7,10 @@ CVS code -
          wmouse_trafo(), which does both.  Changes to do_browser(),
          do_mouse(), do_statusbar_mouse(), do_yesno_prompt(), and
          do_mouseinput(). (DLR)
+- chars.c:
+  nstrncasecmp(), mbstrncasecmp()
+       - For efficiency, return zero immediately if s1 and s2 point to
+         the same string. (DLR)
 - prompt.c:
   do_yesno_prompt()
        - Remove redundant check for NO_HELP's being FALSE. (DLR)
index 85ea80a4e7c14bc7a43ee542e93fd19fb09e1243..9a79065a8eac45b8fbaefe4224def478224f604c 100644 (file)
@@ -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);