Mercurial > emacs
annotate src/syssignal.h @ 4413:5a00cec8e9b0
(fill-region-as-paragraph): When we take one word
after the fill column, don't stop at period with just one space.
When checking whether at beginning of line, if no fill prefix,
ignore intervening whitespace.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 02 Aug 1993 05:55:56 +0000 |
parents | c2dbfca5e1de |
children | 40bb379c9550 |
rev | line source |
---|---|
563 | 1 /* syssignal.h - System-dependent definitions for signals. |
2961 | 2 Copyright (C) 1993 Free Software Foundation, Inc. |
563 | 3 |
4 This file is part of GNU Emacs. | |
5 | |
6 GNU Emacs is free software; you can redistribute it and/or modify | |
7 it under the terms of the GNU General Public License as published by | |
8 the Free Software Foundation; either version 1, or (at your option) | |
9 any later version. | |
10 | |
11 GNU Emacs is distributed in the hope that it will be useful, | |
12 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 GNU General Public License for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
17 along with GNU Emacs; see the file COPYING. If not, write to | |
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | |
19 | |
20 #ifdef POSIX_SIGNALS | |
2913
409c1022bad5
Some changes from Michael K. Johnson for Linux.
Jim Blandy <jimb@redhat.com>
parents:
2122
diff
changeset
|
21 |
3003
5a73d384f45e
* syssignal.h: Don't #include <signal.h>
Jim Blandy <jimb@redhat.com>
parents:
2961
diff
changeset
|
22 /* Don't #include <signal.h>. That header shouldalways be #included |
5a73d384f45e
* syssignal.h: Don't #include <signal.h>
Jim Blandy <jimb@redhat.com>
parents:
2961
diff
changeset
|
23 before "config.h", because some configuration files (like s/hpux.h) |
5a73d384f45e
* syssignal.h: Don't #include <signal.h>
Jim Blandy <jimb@redhat.com>
parents:
2961
diff
changeset
|
24 indicate that SIGIO doesn't work by #undef-ing SIGIO. If this file |
5a73d384f45e
* syssignal.h: Don't #include <signal.h>
Jim Blandy <jimb@redhat.com>
parents:
2961
diff
changeset
|
25 #includes <signal.h>, then that will re-#define SIGIO and confuse |
5a73d384f45e
* syssignal.h: Don't #include <signal.h>
Jim Blandy <jimb@redhat.com>
parents:
2961
diff
changeset
|
26 things. */ |
2913
409c1022bad5
Some changes from Michael K. Johnson for Linux.
Jim Blandy <jimb@redhat.com>
parents:
2122
diff
changeset
|
27 |
563 | 28 #define SIGMASKTYPE sigset_t |
29 | |
30 #define SIGEMPTYMASK (empty_mask) | |
31 #define SIGFULLMASK (full_mask) | |
32 extern sigset_t empty_mask, full_mask, temp_mask; | |
33 | |
637 | 34 /* POSIX pretty much destroys any possibility of writing sigmask as a |
35 macro in standard C. */ | |
2913
409c1022bad5
Some changes from Michael K. Johnson for Linux.
Jim Blandy <jimb@redhat.com>
parents:
2122
diff
changeset
|
36 #ifndef sigmask |
637 | 37 #ifdef __GNUC__ |
38 #define sigmask(SIG) \ | |
39 ({ \ | |
40 sigset_t _mask; \ | |
41 sigemptyset (&_mask); \ | |
42 sigaddset (&_mask, SIG); \ | |
43 _mask; \ | |
44 }) | |
2122
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
45 #else /* ! defined (__GNUC__) */ |
3485
c2dbfca5e1de
[POSIX] [!__GNUC__] (sys_sigmask): Add declaration.
Richard M. Stallman <rms@gnu.org>
parents:
3008
diff
changeset
|
46 extern sigset_t sys_sigmask (); |
637 | 47 #define sigmask(SIG) (sys_sigmask (SIG)) |
2122
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
48 #endif /* ! defined (__GNUC__) */ |
2913
409c1022bad5
Some changes from Michael K. Johnson for Linux.
Jim Blandy <jimb@redhat.com>
parents:
2122
diff
changeset
|
49 #endif |
624 | 50 |
637 | 51 #define sigpause(SIG) sys_sigpause(SIG) |
52 #define sigblock(SIG) sys_sigblock(SIG) | |
53 #define sigunblock(SIG) sys_sigunblock(SIG) | |
54 #define sigsetmask(SIG) sys_sigsetmask(SIG) | |
563 | 55 #define sighold(SIG) ONLY_USED_IN_BSD_4_1 |
56 #define sigrelse(SIG) ONLY_USED_IN_BSD_4_1 | |
57 | |
2913
409c1022bad5
Some changes from Michael K. Johnson for Linux.
Jim Blandy <jimb@redhat.com>
parents:
2122
diff
changeset
|
58 /* Whether this is what all systems want or not, this is what |
409c1022bad5
Some changes from Michael K. Johnson for Linux.
Jim Blandy <jimb@redhat.com>
parents:
2122
diff
changeset
|
59 appears to be assumed in the source, for example data.c:arith_error() */ |
409c1022bad5
Some changes from Michael K. Johnson for Linux.
Jim Blandy <jimb@redhat.com>
parents:
2122
diff
changeset
|
60 typedef RETSIGTYPE (*signal_handler_t) (int); |
409c1022bad5
Some changes from Michael K. Johnson for Linux.
Jim Blandy <jimb@redhat.com>
parents:
2122
diff
changeset
|
61 |
3008
be594f78bfa7
* syssignal.h (sys_signal): Declare the second argument to have
Jim Blandy <jimb@redhat.com>
parents:
3003
diff
changeset
|
62 signal_handler_t sys_signal (int signal_number, signal_handler_t action); |
2913
409c1022bad5
Some changes from Michael K. Johnson for Linux.
Jim Blandy <jimb@redhat.com>
parents:
2122
diff
changeset
|
63 int sys_sigpause (sigset_t new_mask); |
409c1022bad5
Some changes from Michael K. Johnson for Linux.
Jim Blandy <jimb@redhat.com>
parents:
2122
diff
changeset
|
64 sigset_t sys_sigblock (sigset_t new_mask); |
563 | 65 sigset_t sys_sigunblock (sigset_t new_mask); |
66 sigset_t sys_sigsetmask (sigset_t new_mask); | |
67 | |
68 #define sys_sigdel(MASK,SIG) sigdelset(&MASK,SIG) | |
69 | |
2122
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
70 #else /* ! defined (POSIX_SIGNALS) */ |
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
71 #ifdef USG5_4 |
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
72 |
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
73 #define sigunblock(sig) (sigprocmask(SIG_SETMASK, SIGFULLMASK & ~(sig), NULL)) |
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
74 |
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
75 #else |
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
76 #ifdef USG |
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
77 |
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
78 #define sigunblock(sig) |
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
79 |
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
80 #else |
563 | 81 |
82 #define sigunblock(SIG) \ | |
83 { SIGMASKTYPE omask = sigblock (SIGEMPTYMASK); sigsetmask (omask & ~SIG); } | |
84 | |
2122
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
85 #endif /* ! defined (USG) */ |
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
86 #endif /* ! defined (USG5_4) */ |
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
87 #endif /* ! defined (POSIX_SIGNALS) */ |
563 | 88 |
89 #ifndef SIGMASKTYPE | |
90 #define SIGMASKTYPE int | |
91 #endif | |
92 | |
93 #ifndef SIGEMPTYMASK | |
637 | 94 #define SIGEMPTYMASK (0) |
95 #endif | |
96 | |
97 #ifndef SIGFULLMASK | |
98 #define SIGFULLMASK (0xffffffff) | |
563 | 99 #endif |
100 | |
101 #ifndef sigmask | |
102 #define sigmask(no) (1L << ((no) - 1)) | |
103 #endif | |
104 | |
637 | 105 #ifndef sigunblock |
106 #define sigunblock(SIG) \ | |
107 { SIGMASKTYPE omask = sigblock (SIGFULLMASK); sigsetmask (omask & ~SIG); } | |
108 #endif | |
109 | |
110 /* It would be very nice if we could somehow clean up all this trash. */ | |
111 | |
112 #ifndef BSD4_1 | |
113 #define sigfree() sigsetmask (SIGEMPTYMASK) | |
114 #define sigholdx(sig) sigsetmask (sigmask (sig)) | |
115 #define sigblockx(sig) sigblock (sigmask (sig)) | |
116 #define sigunblockx(sig) sigblock (SIGEMPTYMASK) | |
117 #define sigpausex(sig) sigpause (0) | |
2122
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
118 #endif /* BSD4_1 */ |
637 | 119 |
563 | 120 #ifdef BSD4_1 |
121 #define SIGIO SIGTINT | |
122 /* sigfree and sigholdx are in sysdep.c */ | |
637 | 123 #define sigblockx(sig) sighold (sig) |
124 #define sigunblockx(sig) sigrelse (sig) | |
125 #define sigpausex(sig) sigpause (sig) | |
2122
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
126 #endif /* ! defined (BSD4_1) */ |
563 | 127 |
128 /* On bsd, [man says] kill does not accept a negative number to kill a pgrp. | |
129 Must do that using the killpg call. */ | |
130 #ifdef BSD | |
131 #define EMACS_KILLPG(gid, signo) (killpg ( (gid), (signo))) | |
132 #else | |
133 #define EMACS_KILLPG(gid, signo) (kill (-(gid), (signo))) | |
134 #endif | |
135 | |
136 /* Define SIGCHLD as an alias for SIGCLD. There are many conditionals | |
137 testing SIGCHLD. */ | |
138 #ifndef VMS | |
139 #ifdef SIGCLD | |
140 #ifndef SIGCHLD | |
141 #define SIGCHLD SIGCLD | |
2122
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
142 #endif /* SIGCHLD */ |
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
143 #endif /* ! defined (SIGCLD) */ |
f3c105f296b2
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
Jim Blandy <jimb@redhat.com>
parents:
637
diff
changeset
|
144 #endif /* VMS */ |