changeset 4748:7717bd4078ea

* error.c (error_tail): Move some declarations into inner scope where the local variables are used.
author Paul Eggert <eggert@cs.ucla.edu>
date Sat, 27 Sep 2003 05:11:56 +0000
parents 7113ffd9623a
children a34045e45725
files lib/ChangeLog lib/error.c
diffstat 2 files changed, 15 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,8 @@
+2003-09-26  Jim Meyering  <jim@meyering.net>
+
+	* error.c (error_tail): Move some declarations
+	into inner scope where the local variables are used.
+
 2003-09-26  Bruno Haible  <bruno@clisp.org>
 
 	* stpncpy.h (gnu_stpncpy): New declaration.
@@ -8,10 +13,13 @@
 
 	* error.c (SIZE_MAX) [!defined SIZE_MAX]: Define.
 	(error_tail): Do not loop, reallocating temporary buffer, since
-	the original size is big enough.  This avoids one potential size
-	overflow calculation.  Check for size overflow when calculating
-	temporary buffer size.  Free temporary buffer when done, if
-	it was allocated with malloc; this closes a memory leak.
+	the output cannot contain more wide characters than the input
+	contains bytes, the size must be big enough already.  This avoids
+	one potential size overflow calculation.  Check for size overflow
+	when calculating temporary buffer size.  Free temporary buffer
+	when done, if it was allocated with malloc; this plugs a memory
+	leak.  Remove casts from void * to pointers, that are no longer
+	needed now that we're assuming C89 or better.
 
 	Merge error changes from glibc.
 
--- a/lib/error.c
+++ b/lib/error.c
@@ -147,9 +147,6 @@
 # define ALLOCA_LIMIT 2000
       size_t len = strlen (message) + 1;
       const wchar_t *wmessage = L"out of memory";
-      mbstate_t st;
-      size_t res;
-      const char *tmp;
       wchar_t *wbuf = (len < ALLOCA_LIMIT
 		       ? (void *) alloca (len * sizeof *wbuf)
 		       : len <= SIZE_MAX / sizeof *wbuf
@@ -158,8 +155,10 @@
 
       if (wbuf)
 	{
+	  size_t res;
+	  mbstate_t st;
+	  const char *tmp = message;
 	  memset (&st, '\0', sizeof (st));
-	  tmp =message;
 	  res = mbsrtowcs (wbuf, &tmp, len, &st);
 	  wmessage = res == (size_t) -1 ? L"???" : wbuf;
 	}