]> git.wh0rd.org Git - nano.git/commitdiff
make sure the multibyte string operations operate using multibyte
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Sun, 16 Jan 2005 20:05:36 +0000 (20:05 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Sun, 16 Jan 2005 20:05:36 +0000 (20:05 +0000)
character counts instead of byte character counts

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

src/chars.c
src/search.c

index 5b82ad8f58b27b779a3f818f5d218c18bae7a47b..5c160ce142a500e7e359aba5aff7752ba8eaef1d 100644 (file)
@@ -552,12 +552,12 @@ int mbstrncasecmp(const char *s1, const char *s2, size_t n)
                ws2 = (unsigned char)*s2_mb;
            }
 
-           if (s1_mb_len > n || towlower(ws1) != towlower(ws2))
+           if (n == 0 || towlower(ws1) != towlower(ws2))
                break;
 
            s1 += s1_mb_len;
            s2 += s2_mb_len;
-           n -= s1_mb_len;
+           n--;
        }
 
        free(s1_mb);
@@ -648,16 +648,16 @@ size_t mbstrnlen(const char *s, size_t maxlen)
 #endif
                , NULL);
 
-           if (s_mb_len > maxlen)
+           if (maxlen == 0)
                break;
 
-           maxlen -= s_mb_len;
+           maxlen--;
            n += s_mb_len;
        }
 
        free(s_mb);
 
-       return n;
+       return strnlenpt(s, n);
     } else
 #endif
        return
index 10d67979fa767f498d14302417387f4aa9efe791..6f657810de52d741ce6f9a0e5a78016bdabb5c09 100644 (file)
@@ -84,7 +84,7 @@ void not_found_msg(const char *str)
     assert(str != NULL);
 
     disp = display_string(str, 0, (COLS / 2) + 1, FALSE);
-    numchars = mbstrnlen(disp, actual_x(disp, COLS / 2));
+    numchars = actual_x(disp, mbstrnlen(disp, COLS / 2));
 
     statusbar(_("\"%.*s%s\" not found"), numchars, disp,
        (disp[numchars] == '\0') ? "" : "...");