Putting in the null byte "manually", and only when using UTF-8.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5347 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
master
Benno Schulenberg 2015-08-08 08:10:57 +00:00
parent 7e1bc82d98
commit 2a5bd555e7
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2015-08-08 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (display_string): For some reason the reallocation done
by null_at() messes things up. So put in the null byte "manually".
This is a fix -- or workaround -- for Savannah bug #45718.
2015-08-06 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (main): For --enable-debug builds, let malloc() help
to find initialization failures and uses-after-free. Suggested by

View File

@ -1999,10 +1999,13 @@ char *display_string(const char *buf, size_t start_col, size_t len, bool
char *nctrl_buf_mb = charalloc(mb_cur_max());
int nctrl_buf_mb_len, i;
#ifdef ENABLE_UTF8
/* Make sure an invalid sequence-starter byte is properly
* terminated, so that it doesn't pick up lingering bytes
* of any previous content. */
null_at(&buf_mb, buf_mb_len);
if (using_utf8() && buf_mb_len == 1)
buf_mb[1] = '\0';
#endif
nctrl_buf_mb = mbrep(buf_mb, nctrl_buf_mb,
&nctrl_buf_mb_len);