summaryrefslogtreecommitdiff
path: root/libc/string/strsignal.c
diff options
context:
space:
mode:
Diffstat (limited to 'libc/string/strsignal.c')
-rw-r--r--libc/string/strsignal.c36
1 files changed, 36 insertions, 0 deletions
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 ********************************************/