emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r109919: MS-Windows followup for revi


From: Eli Zaretskii
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r109919: MS-Windows followup for revision 109909, signal-handler cleanup.
Date: Fri, 07 Sep 2012 11:20:07 +0300
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 109919
fixes bug: http://debbugs.gnu.org/12327
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Fri 2012-09-07 11:20:07 +0300
message:
  MS-Windows followup for revision 109909, signal-handler cleanup.
  
   src/w32proc.c (sigaction): New function, emulates Posix 'sigaction'.
   src/w32.c (sigemptyset): Empty the set.
   (sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions.
  
   nt/inc/ms-w32.h (struct sigaction): Declare sa_handler __cdecl.
modified:
  nt/ChangeLog
  nt/inc/ms-w32.h
  src/ChangeLog
  src/w32.c
  src/w32proc.c
=== modified file 'nt/ChangeLog'
--- a/nt/ChangeLog      2012-09-05 00:17:57 +0000
+++ b/nt/ChangeLog      2012-09-07 08:20:07 +0000
@@ -1,3 +1,7 @@
+2012-09-07  Eli Zaretskii  <address@hidden>
+
+       * inc/ms-w32.h (struct sigaction): Declare sa_handler __cdecl.
+
 2012-09-05  Juanma Barranquero  <address@hidden>
 
        * config.nt: Sync with autogen/config.in.

=== modified file 'nt/inc/ms-w32.h'
--- a/nt/inc/ms-w32.h   2012-09-04 17:34:54 +0000
+++ b/nt/inc/ms-w32.h   2012-09-07 08:20:07 +0000
@@ -127,7 +127,7 @@
 
 struct sigaction {
   int sa_flags;
-  void (*sa_handler)(int);
+  void (_CALLBACK_ *sa_handler)(int);
   sigset_t sa_mask;
 };
 #define SIG_BLOCK       1

=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-09-07 07:24:08 +0000
+++ b/src/ChangeLog     2012-09-07 08:20:07 +0000
@@ -1,5 +1,10 @@
 2012-09-07  Eli Zaretskii  <address@hidden>
 
+       * w32proc.c (sigaction): New function, emulates Posix 'sigaction'.
+
+       * w32.c (sigemptyset): Empty the set.
+       (sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions.
+
        * alloc.c [ENABLE_CHECKING]: Include signal.h, since we need SIGABRT.
 
 2012-09-07  Dmitry Antipov  <address@hidden>

=== modified file 'src/w32.c'
--- a/src/w32.c 2012-09-04 17:34:54 +0000
+++ b/src/w32.c 2012-09-07 08:20:07 +0000
@@ -1530,34 +1530,10 @@
 }
 
 /* Routines that are no-ops on NT but are defined to get Emacs to compile.  */
-
-int
-sigsetmask (int signal_mask)
-{
-  return 0;
-}
-
-int
-sigmask (int sig)
-{
-  return 0;
-}
-
-int
-sigblock (int sig)
-{
-  return 0;
-}
-
-int
-sigunblock (int sig)
-{
-  return 0;
-}
-
 int
 sigemptyset (sigset_t *set)
 {
+  *set = 0;
   return 0;
 }
 

=== modified file 'src/w32proc.c'
--- a/src/w32proc.c     2012-09-04 17:34:54 +0000
+++ b/src/w32proc.c     2012-09-07 08:20:07 +0000
@@ -103,6 +103,29 @@
   return old;
 }
 
+/* Emulate sigaction. */
+int
+sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+{
+  signal_handler old;
+
+  if (sig != SIGCHLD)
+    {
+      errno = EINVAL;
+      return -1;
+    }
+  old = sig_handlers[sig];
+  if (act)
+    sig_handlers[sig] = act->sa_handler;
+  if (oact)
+    {
+      oact->sa_handler = old;
+      oact->sa_flags = 0;
+      oact->sa_mask = empty_mask;
+    }
+  return 0;
+}
+
 /* Defined in <process.h> which conflicts with the local copy */
 #define _P_NOWAIT 1
 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]