aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2011-04-10 12:47:49 -0700
committerPaul Eggert2011-04-10 12:47:49 -0700
commit1ebfdcb6eff7ebe4cf5ef3426944513a2ecdfacf (patch)
treee527d2b49f2dd58b9a316958f285c92fd04baba6 /src
parent0a2f5c1a75dfa85562cd9411c024f70cff2c9064 (diff)
downloademacs-1ebfdcb6eff7ebe4cf5ef3426944513a2ecdfacf.tar.gz
emacs-1ebfdcb6eff7ebe4cf5ef3426944513a2ecdfacf.zip
* xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
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 }