projects
/
gnulib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
doc: use ASCII in .texi files where UTF-8 isn't needed
[gnulib.git]
/
lib
/
sig2str.c
diff --git
a/lib/sig2str.c
b/lib/sig2str.c
index
0c979d6
..
119006a
100644
(file)
--- a/
lib/sig2str.c
+++ b/
lib/sig2str.c
@@
-1,6
+1,6
@@
/* sig2str.c -- convert between signal names and numbers
/* sig2str.c -- convert between signal names and numbers
- Copyright (C) 2002, 2004, 2006 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2006
, 2009-2014
Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@
-41,7
+41,7
@@
static struct numname { int num; char const name[8]; } numname_table[] =
{
/* Signals required by POSIX 1003.1-2001 base, listed in
static struct numname { int num; char const name[8]; } numname_table[] =
{
/* Signals required by POSIX 1003.1-2001 base, listed in
- traditional numeric order. */
+ traditional numeric order
where possible
. */
#ifdef SIGHUP
NUMNAME (HUP),
#endif
#ifdef SIGHUP
NUMNAME (HUP),
#endif
@@
-66,12
+66,14
@@
static struct numname { int num; char const name[8]; } numname_table[] =
#ifdef SIGKILL
NUMNAME (KILL),
#endif
#ifdef SIGKILL
NUMNAME (KILL),
#endif
-#ifdef SIGBUS
- NUMNAME (BUS),
-#endif
#ifdef SIGSEGV
NUMNAME (SEGV),
#endif
#ifdef SIGSEGV
NUMNAME (SEGV),
#endif
+ /* On Haiku, SIGSEGV == SIGBUS, but we prefer SIGSEGV to match
+ strsignal.c output, so SIGBUS must be listed second. */
+#ifdef SIGBUS
+ NUMNAME (BUS),
+#endif
#ifdef SIGPIPE
NUMNAME (PIPE),
#endif
#ifdef SIGPIPE
NUMNAME (PIPE),
#endif
@@
-249,7
+251,7
@@
static struct numname { int num; char const name[8]; } numname_table[] =
- It's typically faster.
POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to
isdigit unless it's important to use the locale's definition
- It's typically faster.
POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to
isdigit unless it's important to use the locale's definition
- of
`digit'
even when the host does not conform to POSIX. */
+ of
"digit"
even when the host does not conform to POSIX. */
#define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9)
/* Convert the signal name SIGNAME to a signal number. Return the
#define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9)
/* Convert the signal name SIGNAME to a signal number. Return the
@@
-323,21
+325,25
@@
sig2str (int signum, char *signame)
{
int rtmin = SIGRTMIN;
int rtmax = SIGRTMAX;
{
int rtmin = SIGRTMIN;
int rtmax = SIGRTMAX;
+ int base, delta;
if (! (rtmin <= signum && signum <= rtmax))
return -1;
if (signum <= rtmin + (rtmax - rtmin) / 2)
{
if (! (rtmin <= signum && signum <= rtmax))
return -1;
if (signum <= rtmin + (rtmax - rtmin) / 2)
{
-
int delta = signum - rtmin
;
-
sprintf (signame, delta ? "RTMIN+%d" : "RTMIN", delta)
;
+
strcpy (signame, "RTMIN")
;
+
base = rtmin
;
}
else
{
}
else
{
-
int delta = rtmax - signum
;
-
sprintf (signame, delta ? "RTMAX-%d" : "RTMAX", delta)
;
+
strcpy (signame, "RTMAX")
;
+
base = rtmax
;
}
}
+ delta = signum - base;
+ if (delta != 0)
+ sprintf (signame + 5, "%+d", delta);
return 0;
}
}
return 0;
}
}