(message_dolog): Give correct args to
[bpt/emacs.git] / src / syssignal.h
index b9b6cfd..08b989c 100644 (file)
@@ -30,11 +30,13 @@ 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;
 
 /* 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)                           \
   ({                                           \
@@ -49,7 +51,9 @@ extern sigset_t sys_sigmask ();
 #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
@@ -65,7 +69,6 @@ extern sigset_t sys_sigmask ();
 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*/);
@@ -116,27 +119,18 @@ sigset_t sys_sigsetmask (/*sigset_t new_mask*/);
 { SIGMASKTYPE omask = sigblock (SIGFULLMASK); sigsetmask (omask & ~SIG); }
 #endif
 
-/* It would be very nice if we could somehow clean up all this trash.  */
-
 #ifndef BSD4_1
 #define sigfree() sigsetmask (SIGEMPTYMASK)
-#define sigholdx(sig) sigsetmask (sigmask (sig))
-#define sigblockx(sig) sigblock (sigmask (sig))
-#define sigunblockx(sig) sigblock (SIGEMPTYMASK)
-#define sigpausex(sig) sigpause (0)
-#endif /* BSD4_1 */
+#endif /* not BSD4_1 */
 
 #ifdef BSD4_1
 #define SIGIO SIGTINT
-/* sigfree and sigholdx are in sysdep.c */
-#define sigblockx(sig) sighold (sig)
-#define sigunblockx(sig) sigrelse (sig)
-#define sigpausex(sig) sigpause (sig)
-#endif /* ! defined (BSD4_1) */
+/* sigfree is in sysdep.c */
+#endif /* BSD4_1 */
 
 /* On bsd, [man says] kill does not accept a negative number to kill a pgrp.
    Must do that using the killpg call.  */
-#ifdef BSD
+#ifdef BSD_SYSTEM
 #define EMACS_KILLPG(gid, signo) (killpg ( (gid), (signo)))
 #else
 #ifdef WINDOWSNT