summaryrefslogtreecommitdiff
path: root/libc/string
diff options
context:
space:
mode:
Diffstat (limited to 'libc/string')
-rw-r--r--libc/string/Makefile6
-rw-r--r--libc/string/strerror.c4
-rw-r--r--libc/string/strsignal.c36
3 files changed, 41 insertions, 5 deletions
diff --git a/libc/string/Makefile b/libc/string/Makefile
index 5e6c241cb..0bdb925fd 100644
--- a/libc/string/Makefile
+++ b/libc/string/Makefile
@@ -32,9 +32,9 @@ MOBJ=strlen.o strcat.o strcpy.o strchr.o strcmp.o strncat.o strncpy.o \
MSRC1=index.c
MOBJ1=index.o rindex.o
-CSRC=strpbrk.c strsep.c strstr.c strtok.c strcspn.c config.c \
- strspn.c strcasecmp.c strncasecmp.c strerror.c sys_siglist.c \
- bcopy.c bzero.c bcmp.c
+CSRC=strpbrk.c strsep.c strstr.c strtok.c strcspn.c config.c strspn.c \
+ strcasecmp.c strncasecmp.c strerror.c bcopy.c bzero.c bcmp.c \
+ strsignal.c
COBJS=$(patsubst %.c,%.o, $(CSRC))
OBJS=$(MOBJ) $(MOBJ1) $(COBJS)
diff --git a/libc/string/strerror.c b/libc/string/strerror.c
index 6eeac104e..91565965f 100644
--- a/libc/string/strerror.c
+++ b/libc/string/strerror.c
@@ -32,14 +32,14 @@ char *strerror(int err)
if (sys_nerr) {
if (err < 0 || err >= sys_nerr)
goto unknown;
- return sys_errlist[err];
+ strcpy(retbuf, sys_errlist[err]);
+ return retbuf;
}
if (err <= 0)
goto unknown;
unknown:
- printf("sys_nerr=%d\n", sys_nerr);
strcpy(retbuf, "Unknown Error: errno=");
strcat(retbuf, (char *) itoa(err));
return retbuf;
diff --git a/libc/string/strsignal.c b/libc/string/strsignal.c
new file mode 100644
index 000000000..e1f7ab129
--- /dev/null
+++ b/libc/string/strsignal.c
@@ -0,0 +1,36 @@
+/* vi: set sw=4 ts=4: */
+/* Copyright (C) 2000 Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
+ * This file is part of the uC-Linux and is distributed under the
+ * GNU Library General Public License.
+ */
+
+#include <string.h>
+#include <malloc.h>
+#include <signal.h>
+
+extern __const char *__const _sys_siglist[_NSIG];
+extern __const char *__const sys_siglist[_NSIG];
+
+/********************** Function strsignal ************************************/
+
+char *strsignal (int sig)
+{
+ static char retbuf[80];
+
+ if (sys_siglist) {
+ if (sig < 0 || sig >= _NSIG)
+ goto unknown;
+ strcpy(retbuf, sys_siglist[sig]);
+ return retbuf;
+ }
+
+ if (sig <= 0)
+ goto unknown;
+
+ unknown:
+ strcpy(retbuf, "Unknown Signal: ");
+ strcat(retbuf, (char *) itoa(sig));
+ return retbuf;
+}
+
+/********************** THE END ********************************************/