diff --git a/mercurial/crecord.py b/mercurial/crecord.py --- a/mercurial/crecord.py +++ b/mercurial/crecord.py @@ -12,7 +12,7 @@ from i18n import _ import patch as patchmod import util, encoding -import os, re, sys, fcntl, struct, termios, signal, tempfile, locale, cStringIO +import os, re, sys, struct, signal, tempfile, locale, cStringIO # This is required for ncurses to display non-ASCII characters in default user # locale encoding correctly. --immerrr @@ -20,10 +20,14 @@ locale.setlocale(locale.LC_ALL, '') # os.name is one of: 'posix', 'nt', 'dos', 'os2', 'mac', or 'ce' if os.name == 'posix': - import curses + import curses, fcntl, termios else: # I have no idea if wcurses works with crecord... - import wcurses as curses + try: + import wcurses as curses + except ImportError: + # wcurses is not shipped on Windows by default + pass try: curses diff --git a/tests/test-module-imports.t b/tests/test-module-imports.t --- a/tests/test-module-imports.t +++ b/tests/test-module-imports.t @@ -21,6 +21,9 @@ hidden by deduplication algorithm in the these may expose other cycles. $ hg locate 'mercurial/**.py' | sed 's-\\-/-g' | xargs python "$import_checker" + mercurial/crecord.py mixed imports + stdlib: fcntl, termios + relative: curses mercurial/dispatch.py mixed imports stdlib: commands relative: error, extensions, fancyopts, hg, hook, util