]> git.wh0rd.org Git - nano.git/commitdiff
Backport r5347 from trunk.
authorChris Allegretta <chrisa@asty.org>
Sun, 15 Nov 2015 06:46:03 +0000 (06:46 +0000)
committerChris Allegretta <chrisa@asty.org>
Sun, 15 Nov 2015 06:46:03 +0000 (06:46 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/branches/nano_2_4_branch@5413 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/winio.c

index 97250dc21f0b6feaa1c4a511a272fbe9b6b74b58..cc98a42136e50759d79b975e6befd59d28066fc0 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-03  Benno Schulenberg  <bensberg@justemail.net>
        * src/rcfile.c (parse_binding): Check the value of shortcut->toggle
        only if it actually is a toggle.  Found with valgrind.
index 614d0746e0b81566b9eadd1447358847b8da1912..af269010c94cf7181dc61cd21e0bed10e13d647d 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);