crecord: use try/except for import of curses stable
authorSean Farley <sean@farley.io>
Wed, 16 Dec 2015 10:33:19 -0800
branchstable
changeset 27528 7cc654610204
parent 27513 707cdf2c3700
child 27529 940cedaee988
crecord: use try/except for import of curses Not only does this improve fragility with 'if os.name == ...' it will help future patches enable the behavior to fallback to use plain record when curses is unavailable (e.g. python compiled without curses support).
mercurial/crecord.py
--- a/mercurial/crecord.py	Wed Dec 23 22:28:52 2015 +0900
+++ b/mercurial/crecord.py	Wed Dec 16 10:33:19 2015 -0800
@@ -30,15 +30,18 @@
 # locale encoding correctly.  --immerrr
 locale.setlocale(locale.LC_ALL, '')
 
-# os.name is one of: 'posix', 'nt', 'dos', 'os2', 'mac', or 'ce'
-if os.name == 'posix':
+try:
     import curses
     import fcntl
     import termios
-else:
+    curses.error
+    fcntl.ioctl
+    termios.TIOCGWINSZ
+except ImportError:
     # I have no idea if wcurses works with crecord...
     try:
         import wcurses as curses
+        curses.error
     except ImportError:
         # wcurses is not shipped on Windows by default
         pass