summaryrefslogtreecommitdiff
path: root/libc/string
diff options
context:
space:
mode:
Diffstat (limited to 'libc/string')
-rw-r--r--libc/string/strerror.c26
-rw-r--r--libc/string/strsignal.c28
2 files changed, 27 insertions, 27 deletions
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);*/