Mercurial > emacs
annotate msdos/sigaction.c @ 97528:184bb2071e3f
mail/: Add new (temporary) libaries for which to test Rmail/mbox such
that Rmail/babyl is not affected. This creates a facility/feature
called "pmail" (analagous to "rmail") that can be used independently
from Rmail for testing purposes. The plan is to replace the "rmail"
files eventually and remove "pmail" entirely at that point. In the
interim, interested developers can use either Rmail or Pmail or both
(which is not recommended for the casual User or the faint of heart).
author | Paul Reilly <pmr@pajato.com> |
---|---|
date | Mon, 18 Aug 2008 04:51:28 +0000 |
parents | fa41f74280f5 |
children | ef719132ddfa |
rev | line source |
---|---|
75760
60ed74508594
Relicense under GPL - see README file for details.
Glenn Morris <rgm@gnu.org>
parents:
52401
diff
changeset
|
1 /* sigaction.c |
60ed74508594
Relicense under GPL - see README file for details.
Glenn Morris <rgm@gnu.org>
parents:
52401
diff
changeset
|
2 * |
60ed74508594
Relicense under GPL - see README file for details.
Glenn Morris <rgm@gnu.org>
parents:
52401
diff
changeset
|
3 * Copyright (C) 1995 DJ Delorie |
60ed74508594
Relicense under GPL - see README file for details.
Glenn Morris <rgm@gnu.org>
parents:
52401
diff
changeset
|
4 * |
60ed74508594
Relicense under GPL - see README file for details.
Glenn Morris <rgm@gnu.org>
parents:
52401
diff
changeset
|
5 * (See the README file in this directory for the copyright and license |
60ed74508594
Relicense under GPL - see README file for details.
Glenn Morris <rgm@gnu.org>
parents:
52401
diff
changeset
|
6 * history of this file.) |
60ed74508594
Relicense under GPL - see README file for details.
Glenn Morris <rgm@gnu.org>
parents:
52401
diff
changeset
|
7 * |
94790
fa41f74280f5
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
78311
diff
changeset
|
8 * This file is free software: you can redistribute it and/or modify |
75760
60ed74508594
Relicense under GPL - see README file for details.
Glenn Morris <rgm@gnu.org>
parents:
52401
diff
changeset
|
9 * it under the terms of the GNU General Public License as published by |
94790
fa41f74280f5
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
78311
diff
changeset
|
10 * the Free Software Foundation, either version 3 of the License, or |
fa41f74280f5
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
78311
diff
changeset
|
11 * (at your option) any later version. |
75760
60ed74508594
Relicense under GPL - see README file for details.
Glenn Morris <rgm@gnu.org>
parents:
52401
diff
changeset
|
12 * |
60ed74508594
Relicense under GPL - see README file for details.
Glenn Morris <rgm@gnu.org>
parents:
52401
diff
changeset
|
13 * This file is distributed in the hope that it will be useful, |
60ed74508594
Relicense under GPL - see README file for details.
Glenn Morris <rgm@gnu.org>
parents:
52401
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
60ed74508594
Relicense under GPL - see README file for details.
Glenn Morris <rgm@gnu.org>
parents:
52401
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
60ed74508594
Relicense under GPL - see README file for details.
Glenn Morris <rgm@gnu.org>
parents:
52401
diff
changeset
|
16 * GNU General Public License for more details. |
60ed74508594
Relicense under GPL - see README file for details.
Glenn Morris <rgm@gnu.org>
parents:
52401
diff
changeset
|
17 * |
60ed74508594
Relicense under GPL - see README file for details.
Glenn Morris <rgm@gnu.org>
parents:
52401
diff
changeset
|
18 * You should have received a copy of the GNU General Public License |
94790
fa41f74280f5
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
78311
diff
changeset
|
19 * along with this file. If not, see <http://www.gnu.org/licenses/>. |
75760
60ed74508594
Relicense under GPL - see README file for details.
Glenn Morris <rgm@gnu.org>
parents:
52401
diff
changeset
|
20 */ |
25856 | 21 #include <signal.h> |
22 #include <errno.h> | |
23 | |
24 int | |
25 sigaction(int _sig, const struct sigaction *_act, struct sigaction *_oact) | |
26 { | |
27 int retval = 0; | |
28 | |
29 if (_oact) | |
30 { | |
31 void (*installed_sig)(int) = signal (_sig, SIG_IGN); | |
32 | |
33 /* FIXME */ | |
34 if (installed_sig == SIG_ERR) | |
35 { | |
36 retval = -1; | |
37 errno = EINVAL; | |
38 } | |
39 else | |
40 signal (_sig, installed_sig); | |
41 _oact->sa_handler = installed_sig; | |
42 retval = sigemptyset (&_oact->sa_mask); | |
43 _oact->sa_flags = 0; | |
44 } | |
45 if (_act) | |
46 { | |
47 if (signal (_sig, _act->sa_handler) == SIG_ERR) | |
48 { | |
49 retval = -1; | |
50 errno = EINVAL; | |
51 } | |
52 } | |
53 return 0; | |
54 } | |
55 | |
56 | |
57 | |
52401 | 58 /* arch-tag: 39526405-3d3a-44fe-af28-82a515e0c8e8 |
59 (do not change this comment) */ |