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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
Dave Love <fx@gnu.org>
parents:
diff changeset
21 #include <signal.h>
Dave Love <fx@gnu.org>
parents:
diff changeset
22 #include <errno.h>
Dave Love <fx@gnu.org>
parents:
diff changeset
23
Dave Love <fx@gnu.org>
parents:
diff changeset
24 int
Dave Love <fx@gnu.org>
parents:
diff changeset
25 sigaction(int _sig, const struct sigaction *_act, struct sigaction *_oact)
Dave Love <fx@gnu.org>
parents:
diff changeset
26 {
Dave Love <fx@gnu.org>
parents:
diff changeset
27 int retval = 0;
Dave Love <fx@gnu.org>
parents:
diff changeset
28
Dave Love <fx@gnu.org>
parents:
diff changeset
29 if (_oact)
Dave Love <fx@gnu.org>
parents:
diff changeset
30 {
Dave Love <fx@gnu.org>
parents:
diff changeset
31 void (*installed_sig)(int) = signal (_sig, SIG_IGN);
Dave Love <fx@gnu.org>
parents:
diff changeset
32
Dave Love <fx@gnu.org>
parents:
diff changeset
33 /* FIXME */
Dave Love <fx@gnu.org>
parents:
diff changeset
34 if (installed_sig == SIG_ERR)
Dave Love <fx@gnu.org>
parents:
diff changeset
35 {
Dave Love <fx@gnu.org>
parents:
diff changeset
36 retval = -1;
Dave Love <fx@gnu.org>
parents:
diff changeset
37 errno = EINVAL;
Dave Love <fx@gnu.org>
parents:
diff changeset
38 }
Dave Love <fx@gnu.org>
parents:
diff changeset
39 else
Dave Love <fx@gnu.org>
parents:
diff changeset
40 signal (_sig, installed_sig);
Dave Love <fx@gnu.org>
parents:
diff changeset
41 _oact->sa_handler = installed_sig;
Dave Love <fx@gnu.org>
parents:
diff changeset
42 retval = sigemptyset (&_oact->sa_mask);
Dave Love <fx@gnu.org>
parents:
diff changeset
43 _oact->sa_flags = 0;
Dave Love <fx@gnu.org>
parents:
diff changeset
44 }
Dave Love <fx@gnu.org>
parents:
diff changeset
45 if (_act)
Dave Love <fx@gnu.org>
parents:
diff changeset
46 {
Dave Love <fx@gnu.org>
parents:
diff changeset
47 if (signal (_sig, _act->sa_handler) == SIG_ERR)
Dave Love <fx@gnu.org>
parents:
diff changeset
48 {
Dave Love <fx@gnu.org>
parents:
diff changeset
49 retval = -1;
Dave Love <fx@gnu.org>
parents:
diff changeset
50 errno = EINVAL;
Dave Love <fx@gnu.org>
parents:
diff changeset
51 }
Dave Love <fx@gnu.org>
parents:
diff changeset
52 }
Dave Love <fx@gnu.org>
parents:
diff changeset
53 return 0;
Dave Love <fx@gnu.org>
parents:
diff changeset
54 }
Dave Love <fx@gnu.org>
parents:
diff changeset
55
Dave Love <fx@gnu.org>
parents:
diff changeset
56
Dave Love <fx@gnu.org>
parents:
diff changeset
57
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 25856
diff changeset
58 /* arch-tag: 39526405-3d3a-44fe-af28-82a515e0c8e8
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 25856
diff changeset
59 (do not change this comment) */