]> git.wh0rd.org Git - nano.git/commitdiff
fix the multibyte equivalent of strnlen() so that it actually works
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Fri, 14 Jan 2005 04:38:48 +0000 (04:38 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Fri, 14 Jan 2005 04:38:48 +0000 (04:38 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2260 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

src/chars.c

index b97813b9d4f3c4746d97652fd5beda548229c482..2977fd836f60937db23d0096630edb8670ecd2d9 100644 (file)
@@ -144,7 +144,7 @@ size_t nstrnlen(const char *s, size_t maxlen)
 size_t mbstrnlen(const char *s, size_t maxlen)
 {
 #ifdef NANO_WIDE
-    if (ISSET(NO_UTF8)) {
+    if (!ISSET(NO_UTF8)) {
        size_t n = 0;
        char *s_mb = charalloc(mb_cur_max());
        int s_mb_len;
@@ -158,6 +158,9 @@ size_t mbstrnlen(const char *s, size_t maxlen)
 #endif
                , NULL);
 
+           if (s_mb_len > maxlen)
+               s_mb_len = maxlen;
+
            maxlen -= s_mb_len;
            n += s_mb_len;