emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r108858: * doprnt.c (doprnt): Don't a


From: Paul Eggert
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r108858: * doprnt.c (doprnt): Don't assume string length fits in 'int'.
Date: Wed, 04 Jul 2012 01:26:20 -0700
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 108858
committer: Paul Eggert <address@hidden>
branch nick: trunk
timestamp: Wed 2012-07-04 01:26:20 -0700
message:
  * doprnt.c (doprnt): Don't assume string length fits in 'int'.
  
  Tighten new eassert a bit.
modified:
  src/ChangeLog
  src/doprnt.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-07-04 08:07:26 +0000
+++ b/src/ChangeLog     2012-07-04 08:26:20 +0000
@@ -1,3 +1,8 @@
+2012-07-04  Paul Eggert  <address@hidden>
+
+       * doprnt.c (doprnt): Don't assume string length fits in 'int'.
+       Tighten new eassert a bit.
+
 2012-07-04  Dmitry Antipov  <address@hidden>
 
        Fix compilation with --enable-gcc-warnings and -O1

=== modified file 'src/doprnt.c'
--- a/src/doprnt.c      2012-07-04 08:07:26 +0000
+++ b/src/doprnt.c      2012-07-04 08:26:20 +0000
@@ -135,8 +135,8 @@
 doprnt (char *buffer, ptrdiff_t bufsize, const char *format,
        const char *format_end, va_list ap)
 {
-  const char *fmt = format;    /* Pointer into format string */
-  register char *bufptr = buffer; /* Pointer into output buffer.. */
+  const char *fmt = format;    /* Pointer into format string.  */
+  char *bufptr = buffer;       /* Pointer into output buffer.  */
 
   /* Use this for sprintf unless we need something really big.  */
   char tembuf[DBL_MAX_10_EXP + 100];
@@ -150,7 +150,7 @@
   /* Buffer we have got with malloc.  */
   char *big_buffer = NULL;
 
-  register int tem = -1;
+  ptrdiff_t tem = -1;
   char *string;
   char fixed_buffer[20];       /* Default buffer for small formatting. */
   char *fmtcpy;
@@ -368,7 +368,7 @@
 
              /* Copy string into final output, truncating if no room.  */
            doit:
-             eassert (tem != -1);
+             eassert (0 <= tem);
              /* Coming here means STRING contains ASCII only.  */
              if (STRING_BYTES_BOUND < tem)
                error ("Format width or precision too large");


reply via email to

[Prev in Thread] Current Thread [Next in Thread]