in statusq(), make sure that the vsnprintf(foo) call and foo's
subsequent null termination both take the proper number of bytes when using multibyte characters, so that multibyte prompt strings aren't prematurely cut off git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2444 35c25a1d-7b9e-4130-9fde-d3aeb78583b8master
parent
88ad64d597
commit
612caef65f
|
@ -75,6 +75,11 @@ CVS code -
|
|||
regexec_safe()
|
||||
- Rename to safe_regexec() for consistency. (DLR)
|
||||
- winio.c:
|
||||
statusq()
|
||||
- Make sure that the vsnprintf(foo) call and foo's subsequent
|
||||
null termination both take the proper number of bytes when
|
||||
using multibyte characters, so that multibyte prompt strings
|
||||
aren't prematurely cut off. (DLR)
|
||||
titlebar()
|
||||
- Make sure that the (mv)?waddnstr() calls take the proper
|
||||
number of bytes when using multibyte characters, so that
|
||||
|
|
|
@ -2652,7 +2652,7 @@ int statusq(bool allow_tabs, const shortcut *s, const char *def,
|
|||
const char *msg, ...)
|
||||
{
|
||||
va_list ap;
|
||||
char *foo = charalloc(COLS - 3);
|
||||
char *foo = charalloc(((COLS - 4) * mb_cur_max()) + 1);
|
||||
int ret;
|
||||
#ifndef DISABLE_TABCOMP
|
||||
bool list = FALSE;
|
||||
|
@ -2661,9 +2661,9 @@ int statusq(bool allow_tabs, const shortcut *s, const char *def,
|
|||
bottombars(s);
|
||||
|
||||
va_start(ap, msg);
|
||||
vsnprintf(foo, COLS - 4, msg, ap);
|
||||
vsnprintf(foo, (COLS - 4) * mb_cur_max(), msg, ap);
|
||||
va_end(ap);
|
||||
foo[COLS - 4] = '\0';
|
||||
null_at(&foo, actual_x(foo, COLS - 4));
|
||||
|
||||
ret = nanogetstr(allow_tabs, foo, def,
|
||||
#ifndef NANO_SMALL
|
||||
|
|
Loading…
Reference in New Issue