Fix serve on Windows without win32* modules.
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -968,6 +968,12 @@ if os.name == 'nt':
return p_name_ext
return default
+ def set_signal_handler():
+ try:
+ set_signal_handler_win32()
+ except NameError:
+ pass
+
try:
# override functions with win32 versions if possible
from util_win32 import *
--- a/mercurial/util_win32.py
+++ b/mercurial/util_win32.py
@@ -300,7 +300,7 @@ class posixfile_nt(object):
getuser_fallback = win32api.GetUserName
-def set_signal_handler():
+def set_signal_handler_win32():
"""Register a termination handler for console events including
CTRL+C. python signal handlers do not work well with socket
operations.