Author: Matti Picus <[email protected]>
Branch: 
Changeset: r55117:7ad8c65b2edd
Date: 2012-05-16 23:35 +0300
http://bitbucket.org/pypy/pypy/changeset/7ad8c65b2edd/

Log:    restore missing signals on windows

diff --git a/pypy/module/signal/interp_signal.py 
b/pypy/module/signal/interp_signal.py
--- a/pypy/module/signal/interp_signal.py
+++ b/pypy/module/signal/interp_signal.py
@@ -25,11 +25,18 @@
 SIG_DFL = cpy_signal.SIG_DFL
 SIG_IGN = cpy_signal.SIG_IGN
 signal_names = list(setup())
-signal_values = [globals()[key] for key in signal_names]
 signal_values = {}
 for key in signal_names:
     signal_values[globals()[key]] = None
-
+if sys.platform == 'win32' and not hasattr(cpy_signal,'CTRL_C_EVENT'):
+    # XXX Hack to revive values that went missing,
+    #     Remove this once we are sure the host cpy module has them.
+    signal_values[0] = None
+    signal_values[1] = None
+    signal_names.append('CTRL_C_EVENT')
+    signal_names.append('CTRL_BREAK_EVENT')
+    CTRL_C_EVENT = 0
+    CTRL_BREAK_EVENT = 1
 includes = ['stdlib.h', 'src/signals.h']
 if sys.platform != 'win32':
     includes.append('sys/time.h')
diff --git a/pypy/module/signal/test/test_signal.py 
b/pypy/module/signal/test/test_signal.py
--- a/pypy/module/signal/test/test_signal.py
+++ b/pypy/module/signal/test/test_signal.py
@@ -46,8 +46,8 @@
         import os
         self.signal.__dict__   # crashes if the interpleveldefs are invalid
         if os.name == 'nt':
-            self.signal.CTRL_BREAK_EVENT
-            self.signal.CTRL_C_EVENT
+            assert self.signal.CTRL_BREAK_EVENT == 1
+            assert self.signal.CTRL_C_EVENT == 0
 
     def test_basics(self):
         import types, os
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to