aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog2
-rw-r--r--src/xdisp.c11
2 files changed, 9 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 74e47927b0c..3b5f00a542d 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,7 @@
12011-04-10 Paul Eggert <eggert@cs.ucla.edu> 12011-04-10 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
4
3 Fix more problems found by GCC 4.6.0's static checks. 5 Fix more problems found by GCC 4.6.0's static checks.
4 6
5 * xdisp.c (vmessage): Use a better test for character truncation. 7 * xdisp.c (vmessage): Use a better test for character truncation.
diff --git a/src/xdisp.c b/src/xdisp.c
index 6fd3945511b..b0d4b2308a9 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -8417,10 +8417,13 @@ vmessage (const char *m, va_list ap)
8417 8417
8418 /* Do any truncation at a character boundary. */ 8418 /* Do any truncation at a character boundary. */
8419 if (! (0 <= len && len < bufsize)) 8419 if (! (0 <= len && len < bufsize))
8420 for (len = strnlen (buf, bufsize); 8420 {
8421 len && ! CHAR_HEAD_P (buf[len - 1]); 8421 char *end = memchr (buf, 0, bufsize);
8422 len--) 8422 for (len = end ? end - buf : bufsize;
8423 continue; 8423 len && ! CHAR_HEAD_P (buf[len - 1]);
8424 len--)
8425 continue;
8426 }
8424 8427
8425 message2 (FRAME_MESSAGE_BUF (f), len, 0); 8428 message2 (FRAME_MESSAGE_BUF (f), len, 0);
8426 } 8429 }