dispatch: make "_checkshellalias" reusable regardless of adding aliases stable
authorFUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Wed, 10 Sep 2014 00:41:44 +0900
branchstable
changeset 22376 d821fff9b0b9
parent 22368 802dffd62de5
child 22377 f98abe3146b2
dispatch: make "_checkshellalias" reusable regardless of adding aliases To reduce changes in the subsequent patch fixing issue4355, this patch makes "_checkshellalias" reusable regardless of adding aliases. In this patch, alias definitions are added and restored, only when "precheck=True".
mercurial/dispatch.py
--- a/mercurial/dispatch.py	Wed Sep 03 20:42:51 2014 +0200
+++ b/mercurial/dispatch.py	Wed Sep 10 00:41:44 2014 +0900
@@ -627,7 +627,12 @@
 
     return path, lui
 
-def _checkshellalias(lui, ui, args):
+def _checkshellalias(lui, ui, args, precheck=True):
+    """Return the function to run the shell alias, if it is required
+
+    'precheck' is whether this function is invoked before adding
+    aliases or not.
+    """
     options = {}
 
     try:
@@ -638,14 +643,18 @@
     if not args:
         return
 
-    norepo = commands.norepo
-    optionalrepo = commands.optionalrepo
-    def restorecommands():
-        commands.norepo = norepo
-        commands.optionalrepo = optionalrepo
-
-    cmdtable = commands.table.copy()
-    addaliases(lui, cmdtable)
+    if precheck:
+        norepo = commands.norepo
+        optionalrepo = commands.optionalrepo
+        def restorecommands():
+            commands.norepo = norepo
+            commands.optionalrepo = optionalrepo
+        cmdtable = commands.table.copy()
+        addaliases(lui, cmdtable)
+    else:
+        def restorecommands():
+            pass
+        cmdtable = commands.table
 
     cmd = args[0]
     try: