in input_tab(), make sure that we don't set *place to the middle of a

multibyte character


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2556 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
master
David Lawrence Ramsey 2005-05-26 19:14:42 +00:00
parent e5b23bd2ff
commit 920e350d85
2 changed files with 7 additions and 1 deletions

View File

@ -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)

View 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 {