[PATCH 1 of 2] histedit: conditionalize the imports of 'fcntl' and 'termios'

Matt Harbison mharbison72 at gmail.com
Thu Nov 15 22:41:20 UTC 2018


# HG changeset patch
# User Matt Harbison <matt_harbison at yahoo.com>
# Date 1542321375 18000
#      Thu Nov 15 17:36:15 2018 -0500
# Node ID 3069b205bc1d99e8dc0ad9a15a343670ed0039eb
# Parent  442f933f61e4c81148dcc192f0ac535bc3925529
histedit: conditionalize the imports of 'fcntl' and 'termios'

The recent import of chistedit in c36175456350 made Windows sad.  I'm not sure
if there's other stuff that needs to be done here (e.g. change the default
interface), but this makes the tests run again.

It would have been nicer if the error message indicated these modules were the
problem, but instead it said "*** failed to import extension histedit: No module
named histedit".  I'm not sure if there's anything we can do about that.

diff --git a/hgext/histedit.py b/hgext/histedit.py
--- a/hgext/histedit.py
+++ b/hgext/histedit.py
@@ -183,11 +183,17 @@ unexpectedly::
 
 from __future__ import absolute_import
 
-import fcntl
+# chistedit dependencies that are not available everywhere
+try:
+    import fcntl
+    import termios
+except ImportError:
+    fcntl = None
+    termios = None
+
 import functools
 import os
 import struct
-import termios
 
 from mercurial.i18n import _
 from mercurial import (


More information about the Mercurial-devel mailing list