]> git.wh0rd.org Git - nano.git/commitdiff
in nstrcasestr(), mbstrcasestr(), revstrstr(), revstrcasestr(), and
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Mon, 2 Jul 2007 15:51:26 +0000 (15:51 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Mon, 2 Jul 2007 15:51:26 +0000 (15:51 +0000)
mbrevstrcasestr(), for efficiency, return haystack immediately if
needle/rev_start is blank

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

ChangeLog
src/chars.c

index d45fcb0cd9a94be610ccd0ac5f2dd491f58e6e22..8441d8d9363d876f46e53e7b9835faf11f0dee50 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,10 @@ CVS code -
   nstrncasecmp(), mbstrncasecmp()
        - For efficiency, return zero immediately if s1 and s2 point to
          the same string. (DLR)
+  nstrcasestr(), mbstrcasestr(), revstrstr(), revstrcasestr(),
+  mbrevstrcasestr()
+       - For efficiency, return haystack immediately if
+         needle/rev_start is blank. (DLR)
 - prompt.c:
   do_yesno_prompt()
        - Remove redundant check for NO_HELP's being FALSE. (DLR)
index 9a79065a8eac45b8fbaefe4224def478224f604c..888c035f1f0be621c81270ca071138f7fe8bdaba 100644 (file)
@@ -606,6 +606,9 @@ const char *nstrcasestr(const char *haystack, const char *needle)
 {
     assert(haystack != NULL && needle != NULL);
 
+    if (needle == '\0')
+       return haystack;
+
     for (; *haystack != '\0'; haystack++) {
        const char *r = haystack, *q = needle;
 
@@ -631,6 +634,9 @@ const char *mbstrcasestr(const char *haystack, const char *needle)
 
        assert(haystack != NULL && needle != NULL);
 
+       if (needle == '\0')
+           return haystack;
+
        r_mb = charalloc(MB_CUR_MAX);
        q_mb = charalloc(MB_CUR_MAX);
 
@@ -690,6 +696,9 @@ const char *revstrstr(const char *haystack, const char *needle, const
 {
     assert(haystack != NULL && needle != NULL && rev_start != NULL);
 
+    if (needle == '\0')
+       return rev_start;
+
     for (; rev_start >= haystack; rev_start--) {
        const char *r, *q;
 
@@ -712,6 +721,9 @@ const char *revstrcasestr(const char *haystack, const char *needle,
 {
     assert(haystack != NULL && needle != NULL && rev_start != NULL);
 
+    if (needle == '\0')
+       return rev_start;
+
     for (; rev_start >= haystack; rev_start--) {
        const char *r = rev_start, *q = needle;
 
@@ -739,6 +751,9 @@ const char *mbrevstrcasestr(const char *haystack, const char *needle,
 
        assert(haystack != NULL && needle != NULL && rev_start != NULL);
 
+       if (needle == '\0')
+           return rev_start;
+
        r_mb = charalloc(MB_CUR_MAX);
        q_mb = charalloc(MB_CUR_MAX);