Mercurial > hg > octave-nkf > gnulib-hg
annotate lib/raise.c @ 16201:8250f2777afc
maint: update all copyright year number ranges
Run "make update-copyright".
author | Jim Meyering <meyering@redhat.com> |
---|---|
date | Sun, 01 Jan 2012 10:04:58 +0100 |
parents | 13eba3ca057f |
children | d7a44f0f7a15 |
rev | line source |
---|---|
5141 | 1 /* Provide a non-threads replacement for the POSIX raise function. |
7302
8a1a9361108c
* _fpending.c: Include <config.h> unconditionally, since we no
Paul Eggert <eggert@cs.ucla.edu>
parents:
6275
diff
changeset
|
2 |
16201
8250f2777afc
maint: update all copyright year number ranges
Jim Meyering <meyering@redhat.com>
parents:
15794
diff
changeset
|
3 Copyright (C) 2002-2003, 2005-2006, 2009-2012 Free Software Foundation, Inc. |
5141 | 4 |
9309
bbbbbf4cd1c5
Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
7302
diff
changeset
|
5 This program is free software: you can redistribute it and/or modify |
5141 | 6 it under the terms of the GNU General Public License as published by |
9309
bbbbbf4cd1c5
Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
7302
diff
changeset
|
7 the Free Software Foundation; either version 3 of the License, or |
bbbbbf4cd1c5
Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
7302
diff
changeset
|
8 (at your option) any later version. |
5141 | 9 |
10 This program is distributed in the hope that it will be useful, | |
11 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 GNU General Public License for more details. | |
14 | |
15 You should have received a copy of the GNU General Public License | |
9309
bbbbbf4cd1c5
Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
7302
diff
changeset
|
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
5141 | 17 |
15755 | 18 /* written by Jim Meyering and Bruno Haible */ |
5141 | 19 |
7302
8a1a9361108c
* _fpending.c: Include <config.h> unconditionally, since we no
Paul Eggert <eggert@cs.ucla.edu>
parents:
6275
diff
changeset
|
20 #include <config.h> |
5141 | 21 |
15755 | 22 /* Specification. */ |
5141 | 23 #include <signal.h> |
15755 | 24 |
25 #if HAVE_RAISE | |
26 /* Native Windows platform. */ | |
27 | |
28 # include <errno.h> | |
29 | |
30 # include "msvc-inval.h" | |
31 | |
32 # undef raise | |
33 | |
34 # if HAVE_MSVC_INVALID_PARAMETER_HANDLER | |
35 static inline int | |
36 raise_nothrow (int sig) | |
37 { | |
38 int result; | |
39 | |
40 TRY_MSVC_INVAL | |
41 { | |
42 result = raise (sig); | |
43 } | |
44 CATCH_MSVC_INVAL | |
45 { | |
46 result = -1; | |
47 errno = EINVAL; | |
48 } | |
49 DONE_MSVC_INVAL; | |
50 | |
51 return result; | |
52 } | |
15794
13eba3ca057f
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
Bruno Haible <bruno@clisp.org>
parents:
15755
diff
changeset
|
53 # else |
13eba3ca057f
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
Bruno Haible <bruno@clisp.org>
parents:
15755
diff
changeset
|
54 # define raise_nothrow raise |
15755 | 55 # endif |
56 | |
57 #else | |
58 /* An old Unix platform. */ | |
59 | |
60 # include <unistd.h> | |
5141 | 61 |
15794
13eba3ca057f
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
Bruno Haible <bruno@clisp.org>
parents:
15755
diff
changeset
|
62 # define rpl_raise raise |
15755 | 63 |
64 #endif | |
15794
13eba3ca057f
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
Bruno Haible <bruno@clisp.org>
parents:
15755
diff
changeset
|
65 |
13eba3ca057f
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
Bruno Haible <bruno@clisp.org>
parents:
15755
diff
changeset
|
66 int |
13eba3ca057f
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
Bruno Haible <bruno@clisp.org>
parents:
15755
diff
changeset
|
67 rpl_raise (int sig) |
13eba3ca057f
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
Bruno Haible <bruno@clisp.org>
parents:
15755
diff
changeset
|
68 { |
13eba3ca057f
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
Bruno Haible <bruno@clisp.org>
parents:
15755
diff
changeset
|
69 #if GNULIB_defined_signal_blocking && GNULIB_defined_SIGPIPE |
13eba3ca057f
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
Bruno Haible <bruno@clisp.org>
parents:
15755
diff
changeset
|
70 if (sig == SIGPIPE) |
13eba3ca057f
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
Bruno Haible <bruno@clisp.org>
parents:
15755
diff
changeset
|
71 return _gl_raise_SIGPIPE (); |
13eba3ca057f
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
Bruno Haible <bruno@clisp.org>
parents:
15755
diff
changeset
|
72 #endif |
13eba3ca057f
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
Bruno Haible <bruno@clisp.org>
parents:
15755
diff
changeset
|
73 |
13eba3ca057f
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
Bruno Haible <bruno@clisp.org>
parents:
15755
diff
changeset
|
74 #if HAVE_RAISE |
13eba3ca057f
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
Bruno Haible <bruno@clisp.org>
parents:
15755
diff
changeset
|
75 return raise_nothrow (sig); |
13eba3ca057f
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
Bruno Haible <bruno@clisp.org>
parents:
15755
diff
changeset
|
76 #else |
13eba3ca057f
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
Bruno Haible <bruno@clisp.org>
parents:
15755
diff
changeset
|
77 return kill (getpid (), sig); |
13eba3ca057f
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
Bruno Haible <bruno@clisp.org>
parents:
15755
diff
changeset
|
78 #endif |
13eba3ca057f
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
Bruno Haible <bruno@clisp.org>
parents:
15755
diff
changeset
|
79 } |