VirtualBox

source: kBuild/trunk/src/grep/lib/raise.c

Last change on this file was 3529, checked in by bird, 3 years ago

Imported grep 3.7 from grep-3.7.tar.gz (sha256: c22b0cf2d4f6bbe599c902387e8058990e1eee99aef333a203829e5fd3dbb342), applying minimal auto-props.

  • Property svn:eol-style set to native
File size: 1.8 KB
Line 
1/* Provide a non-threads replacement for the POSIX raise function.
2
3 Copyright (C) 2002-2003, 2005-2006, 2009-2021 Free Software Foundation, Inc.
4
5 This file is free software: you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as
7 published by the Free Software Foundation; either version 2.1 of the
8 License, or (at your option) any later version.
9
10 This file 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 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program. If not, see <https://www.gnu.org/licenses/>. */
17
18/* written by Jim Meyering and Bruno Haible */
19
20#include <config.h>
21
22/* Specification. */
23#include <signal.h>
24
25#if HAVE_RAISE
26/* Native Windows platform. */
27
28# include <errno.h>
29
30# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
31# include "msvc-inval.h"
32# endif
33
34# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
35/* Forward declaration. */
36static int raise_nothrow (int sig);
37# else
38# define raise_nothrow raise
39# endif
40
41#else
42/* An old Unix platform. */
43
44# include <unistd.h>
45
46#endif
47
48int
49raise (int sig)
50#undef raise
51{
52#if GNULIB_defined_signal_blocking && GNULIB_defined_SIGPIPE
53 if (sig == SIGPIPE)
54 return _gl_raise_SIGPIPE ();
55#endif
56
57#if HAVE_RAISE
58 return raise_nothrow (sig);
59#else
60 return kill (getpid (), sig);
61#endif
62}
63
64#if HAVE_RAISE && HAVE_MSVC_INVALID_PARAMETER_HANDLER
65static int
66raise_nothrow (int sig)
67{
68 int result;
69
70 TRY_MSVC_INVAL
71 {
72 result = raise (sig);
73 }
74 CATCH_MSVC_INVAL
75 {
76 result = -1;
77 errno = EINVAL;
78 }
79 DONE_MSVC_INVAL;
80
81 return result;
82}
83#endif
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette