]> git.wh0rd.org Git - nano.git/commitdiff
in input_tab(), make sure that we don't set *place to the middle of a
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Thu, 26 May 2005 19:14:42 +0000 (19:14 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Thu, 26 May 2005 19:14:42 +0000 (19:14 +0000)
multibyte character

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

ChangeLog
src/files.c

index 2e4fe494eb1ad2f7af9dfbcef01aac71b750c2ce..9954e96c9dd0c411d49794ffd103546fe05a70ba 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -55,6 +55,9 @@ CVS code -
          long instead of an unsigned int. (DLR)
   cwd_tab_completion(), browser_init()
        - Rename variable next to nextdir to avoid confusion. (DLR)
+  input_tab()
+       - Make sure that we don't set *place to the middle of a
+         multibyte character. (DLR)
   do_browser()
        - Don't treat NANO_CANCEL_KEY as NANO_EXIT_KEY anymore, for
          consistency. (DLR)
index d704f6ab22d40cf4c1ed95b0aa5342e8a8add33a..08f90903973e3e91c368a3c452e7f1ec9733fc6c 100644 (file)
@@ -2225,7 +2225,10 @@ char *input_tab(char *buf, size_t *place, bool *lastwastab, bool *list)
            charmove(buf + common_len, buf + *place,
                buflen - *place + 1);
            charcpy(buf, mzero, common_len);
-           *place = common_len;
+
+           /* Make sure that we don't advance the cursor to the middle
+            * of a multibyte character. */
+           *place = mbstrnlen(buf, common_len);
        } else if (*lastwastab == FALSE || num_matches < 2)
            *lastwastab = TRUE;
        else {