From 03e039820dc5092e27e81f3671652f25da7f25f1 Mon Sep 17 00:00:00 2001
From: Manuel Novoa III <mjn3@codepoet.org>
Date: Tue, 12 Mar 2002 01:18:50 +0000
Subject: Swap in the new stdio code.

---
 libc/string/strerror.c  | 26 ++++++++++++--------------
 libc/string/strsignal.c | 28 +++++++++++++++-------------
 2 files changed, 27 insertions(+), 27 deletions(-)

(limited to 'libc/string')

diff --git a/libc/string/strerror.c b/libc/string/strerror.c
index e157835c8..890a03d1a 100644
--- a/libc/string/strerror.c
+++ b/libc/string/strerror.c
@@ -28,26 +28,25 @@ Cambridge, MA 02139, USA.  */
  *
  * Added the option WANT_ERRORLIST for low-memory applications to omit the
  * error message strings and only output the error number.
+ *
+ * Manuel Novoa III       Feb 2002
+ *
+ * Change to _int10tostr and fix a bug in end-of-buf arg.
  */
 
 #define WANT_ERRORLIST     1
 
+#define _STDIO_UTILITY			/* For _int10tostr. */
 #include <stdio.h>
 #include <string.h>
 #include <errno.h>
 
-#include <limits.h>
-
-#if (INT_MAX >> 31)
-/* We're set up for 32 bit ints */
-#error need to check size allocation for static buffer 'retbuf'
-#endif
-
-extern char *__ltostr(char *buf, long uval, int base, int uppercase);
-
 #if WANT_ERRORLIST
 static char retbuf[48];
 #else
+#if __BUFLEN_INT10TOSTR > 12
+#error currently set up for 32 bit ints max!
+#endif
 static char retbuf[33];			/* 33 is sufficient for 32 bit ints */
 #endif
 static const char unknown_error[] = "Unknown Error: errno"; /* = */
@@ -66,9 +65,8 @@ char *strerror(int err)
 	}
 #endif
 
-	/* unknown error */
-	pos = __ltostr(retbuf + sizeof(retbuf) + 1, err, 10, 0)
-		- sizeof(unknown_error); /* leave space for the '=' */
+	/* unknown error -- leave space for the '=' */
+	pos = _int10tostr(retbuf+sizeof(retbuf)-1, err)	- sizeof(unknown_error);
 	strcpy(pos, unknown_error);
 	*(pos + sizeof(unknown_error) - 1) = '=';
 	return pos;
@@ -97,8 +95,8 @@ int main(void)
 #endif
 
 	p = strerror(INT_MIN);
-	j = strlen(p)+1;
-	if (j > max) {
+	j = retbuf+sizeof(retbuf) - p;
+	if ( > max) {
 	    max = j;
 	    printf("strerror.c - Test of INT_MIN: <%s>  %d\n", p, j);
 	}
diff --git a/libc/string/strsignal.c b/libc/string/strsignal.c
index 145488aa9..04459402e 100644
--- a/libc/string/strsignal.c
+++ b/libc/string/strsignal.c
@@ -34,22 +34,23 @@
  *
  * Added the option WANT_SIGLIST for low-memory applications to omit the
  * signal message strings and only output the signal number.
+ *
+ * Manuel Novoa III       Feb 2002
+ *
+ * Change to use _int10tostr and fix a bug in end-of-buf arg.
  */
 
 #define WANT_SIGLIST       1
+
+#define _STDIO_UTILITY			/* For _int10tostr. */
+#include <stdio.h>
 #include <stdlib.h>
 #include <malloc.h>
 #include <signal.h>
-#include <limits.h>
+#ifndef __USE_GNU
 #define __USE_GNU
-#include <string.h>
-
-#if (INT_MAX >> 31)
-/* We're set up for 32 bit ints */
-#error need to check size allocation for static buffer 'retbuf'
 #endif
-
-extern char *__ltostr(char *buf, long uval, int base, int uppercase);
+#include <string.h>
 
 /********************** Function strsignal ************************************/
 #ifdef L_strsignal
@@ -96,6 +97,10 @@ const char *const sys_siglist[] = {
 
 #define NUM_KNOWN_SIGNALS    32
 
+#if __BUFLEN_INT10TOSTR > 12
+#error currently set up for 32 bit ints max!
+#endif
+
 static char retbuf[28];			/* 28 is sufficient for 32 bit ints */
 static const char unknown_signal[] = "Unknown Signal:";
 
@@ -112,8 +117,7 @@ char *strsignal(int sig)
 	}
 #endif
 
-	pos = __ltostr(retbuf + sizeof(unknown_signal) + 1, sig, 10, 0)
-		- sizeof(unknown_signal);
+	pos = _int10tostr(retbuf+sizeof(retbuf)-1, sig) - sizeof(unknown_signal);
 	strcpy(pos, unknown_signal);
 	*(pos + sizeof(unknown_signal) - 1) = ' ';
 	return pos;
@@ -123,8 +127,6 @@ char *strsignal(int sig)
 /********************** Function psignal ************************************/
 #ifdef L_psignal
 
-#include <stdio.h>
-
 void psignal(int sig, const char *s)
 {
 	fprintf(stderr, "%s: %s\n", s, strsignal(sig));
@@ -161,7 +163,7 @@ int main(void)
 #endif
 
 	p = strsignal(INT_MIN);
-	j = strlen(p)+1;
+	j = retbuf+sizeof(retbuf) - p;
 	if (j > max) max = j;
 	/*printf("strsignal.c - Test of INT_MIN: <%s>  %d\n", p, j);*/
 
-- 
cgit v1.2.3