]> git.wh0rd.org Git - nano.git/commitdiff
Putting in the null byte "manually", and only when using UTF-8.
authorBenno Schulenberg <bensberg@justemail.net>
Sat, 8 Aug 2015 08:10:57 +0000 (08:10 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Sat, 8 Aug 2015 08:10:57 +0000 (08:10 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5347 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/winio.c

index e0c3c6a8f0c2abe71d2a42786b49a8f5c0aff34c..d3f3278beea1945e50c678a38604897b20b3b914 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
index 293c29be088b202adfb468149e0d069a7bccd275..b2d5904d982a6ddfcdf402b83506936a0718778c 100644 (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);