mercurial/dispatch.py
changeset 30678 caf7e1c5efe4
parent 30653 b2be4ccaff1d
child 30917 b35e05103641
child 32050 77eaf9539499
equal deleted inserted replaced
30677:c80c16a8a0b0 30678:caf7e1c5efe4
    12 import errno
    12 import errno
    13 import getopt
    13 import getopt
    14 import os
    14 import os
    15 import pdb
    15 import pdb
    16 import re
    16 import re
    17 import shlex
       
    18 import signal
    17 import signal
    19 import sys
    18 import sys
    20 import time
    19 import time
    21 import traceback
    20 import traceback
    22 
    21 
   277                 return givenargs[num]
   276                 return givenargs[num]
   278             raise error.Abort(_('too few arguments for command alias'))
   277             raise error.Abort(_('too few arguments for command alias'))
   279         cmd = re.sub(r'\$(\d+|\$)', replacer, cmd)
   278         cmd = re.sub(r'\$(\d+|\$)', replacer, cmd)
   280         givenargs = [x for i, x in enumerate(givenargs)
   279         givenargs = [x for i, x in enumerate(givenargs)
   281                      if i not in nums]
   280                      if i not in nums]
   282         args = shlex.split(cmd)
   281         args = pycompat.shlexsplit(cmd)
   283     return args + givenargs
   282     return args + givenargs
   284 
   283 
   285 def aliasinterpolate(name, args, cmd):
   284 def aliasinterpolate(name, args, cmd):
   286     '''interpolate args into cmd for shell aliases
   285     '''interpolate args into cmd for shell aliases
   287 
   286 
   349                 return ui.system(cmd, environ=env)
   348                 return ui.system(cmd, environ=env)
   350             self.fn = fn
   349             self.fn = fn
   351             return
   350             return
   352 
   351 
   353         try:
   352         try:
   354             args = shlex.split(self.definition)
   353             args = pycompat.shlexsplit(self.definition)
   355         except ValueError as inst:
   354         except ValueError as inst:
   356             self.badalias = (_("error in definition for alias '%s': %s")
   355             self.badalias = (_("error in definition for alias '%s': %s")
   357                              % (self.name, inst))
   356                              % (self.name, inst))
   358             return
   357             return
   359         self.cmdname = cmd = args.pop(0)
   358         self.cmdname = cmd = args.pop(0)
   459                                          ui.configbool("ui", "strict"))
   458                                          ui.configbool("ui", "strict"))
   460         cmd = aliases[0]
   459         cmd = aliases[0]
   461         args = aliasargs(entry[0], args)
   460         args = aliasargs(entry[0], args)
   462         defaults = ui.config("defaults", cmd)
   461         defaults = ui.config("defaults", cmd)
   463         if defaults:
   462         if defaults:
   464             args = map(util.expandpath, shlex.split(defaults)) + args
   463             args = map(util.expandpath, pycompat.shlexsplit(defaults)) + args
   465         c = list(entry[1])
   464         c = list(entry[1])
   466     else:
   465     else:
   467         cmd = None
   466         cmd = None
   468         c = []
   467         c = []
   469 
   468