]> code.delx.au - gnu-emacs/blobdiff - src/syssignal.h
(print_string): Don't ignore garbage bytes following a
[gnu-emacs] / src / syssignal.h
index b7e646a2787e2e945410ba77d61e39860d5f42d5..868cfb7c719946b9217047bd010591f90584496d 100644 (file)
@@ -30,11 +30,14 @@ Boston, MA 02111-1307, USA.  */
 
 #define SIGEMPTYMASK (empty_mask)
 #define SIGFULLMASK (full_mask)
-extern sigset_t empty_mask, full_mask, temp_mask;
+extern sigset_t empty_mask, full_mask;
+extern void init_signals P_ ((void));
 
 /* POSIX pretty much destroys any possibility of writing sigmask as a
-   macro in standard C.  */
-#ifndef sigmask
+   macro in standard C.  We always define our own version because the
+   predefined macro in Glibc 2.1 is only provided for compatility for old
+   programs that use int as signal mask type.  */
+#undef sigmask
 #ifdef __GNUC__
 #define sigmask(SIG)                           \
   ({                                           \
@@ -47,9 +50,10 @@ extern sigset_t empty_mask, full_mask, temp_mask;
 extern sigset_t sys_sigmask ();
 #define sigmask(SIG) (sys_sigmask (SIG))
 #endif /* ! defined (__GNUC__) */
-#endif
 
-#define sigpause(SIG)    sys_sigpause (SIG)
+#undef sigpause
+#define sigpause(MASK)    sigsuspend (&(MASK))
+
 #define sigblock(SIG)    sys_sigblock (SIG)
 #define sigunblock(SIG)  sys_sigunblock (SIG)
 #ifndef sigsetmask
@@ -64,11 +68,10 @@ extern sigset_t sys_sigmask ();
    appears to be assumed in the source, for example data.c:arith_error.  */
 typedef RETSIGTYPE (*signal_handler_t) (/*int*/);
 
-signal_handler_t sys_signal (/*int signal_number, signal_handler_t action*/);
-int      sys_sigpause   (/*sigset_t new_mask*/);
-sigset_t sys_sigblock   (/*sigset_t new_mask*/);
-sigset_t sys_sigunblock (/*sigset_t new_mask*/);
-sigset_t sys_sigsetmask (/*sigset_t new_mask*/);
+signal_handler_t sys_signal P_ ((int signal_number, signal_handler_t action));
+sigset_t sys_sigblock   P_ ((sigset_t new_mask));
+sigset_t sys_sigunblock P_ ((sigset_t new_mask));
+sigset_t sys_sigsetmask P_ ((sigset_t new_mask));
 
 #define sys_sigdel(MASK,SIG) sigdelset (&MASK,SIG)