]>
Commit | Line | Data |
---|---|---|
5be8418c | 1 | /* Copyright (C) 1991-2012 Free Software Foundation, Inc. |
c84142e8 UD |
2 | This file is part of the GNU C Library. |
3 | ||
4 | The GNU C Library is free software; you can redistribute it and/or | |
41bdb6e2 AJ |
5 | modify it under the terms of the GNU Lesser General Public |
6 | License as published by the Free Software Foundation; either | |
7 | version 2.1 of the License, or (at your option) any later version. | |
c84142e8 UD |
8 | |
9 | The GNU C Library is distributed in the hope that it will be useful, | |
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
41bdb6e2 | 12 | Lesser General Public License for more details. |
c84142e8 | 13 | |
41bdb6e2 | 14 | You should have received a copy of the GNU Lesser General Public |
59ba27a6 PE |
15 | License along with the GNU C Library; if not, see |
16 | <http://www.gnu.org/licenses/>. */ | |
28f540f4 | 17 | |
28f540f4 RM |
18 | #include <stdio.h> |
19 | #include <signal.h> | |
51028f34 | 20 | #include <stdlib.h> |
4360eafd | 21 | #include <libintl.h> |
14c35863 | 22 | #include <wchar.h> |
28f540f4 | 23 | |
28f540f4 RM |
24 | /* Print out on stderr a line consisting of the test in S, a colon, a space, |
25 | a message describing the meaning of the signal number SIG and a newline. | |
26 | If S is NULL or "", the colon and space are omitted. */ | |
27 | void | |
46ec036d | 28 | psignal (int sig, const char *s) |
28f540f4 | 29 | { |
46ec036d | 30 | const char *colon, *desc; |
28f540f4 | 31 | |
88a3b8f9 | 32 | if (s == NULL || *s == '\0') |
28f540f4 RM |
33 | s = colon = ""; |
34 | else | |
35 | colon = ": "; | |
36 | ||
5be8418c | 37 | if (sig >= 0 && sig < NSIG && (desc = _sys_siglist[sig]) != NULL) |
8a259a23 | 38 | (void) __fxprintf (NULL, "%s%s%s\n", s, colon, _(desc)); |
28f540f4 | 39 | else |
51028f34 UD |
40 | { |
41 | char *buf; | |
42 | ||
322861e8 | 43 | if (__asprintf (&buf, _("%s%sUnknown signal %d\n"), s, colon, sig) < 0) |
8a259a23 | 44 | (void) __fxprintf (NULL, "%s%s%s\n", s, colon, _("Unknown signal")); |
51028f34 | 45 | else |
6d00189e | 46 | { |
8a259a23 | 47 | (void) __fxprintf (NULL, "%s", buf); |
51028f34 | 48 | |
6d00189e RM |
49 | free (buf); |
50 | } | |
51028f34 | 51 | } |
28f540f4 | 52 | } |