mercurial/revsetlang.py
changeset 35557 2df8d12f23bc
parent 35542 beb667c9880f
child 35558 dfc628611144
equal deleted inserted replaced
35556:b58964b9b541 35557:2df8d12f23bc
   618 
   618 
   619         m = l // 2
   619         m = l // 2
   620         return '(%s or %s)' % (listexp(s[:m], t), listexp(s[m:], t))
   620         return '(%s or %s)' % (listexp(s[:m], t), listexp(s[m:], t))
   621 
   621 
   622     expr = pycompat.bytestr(expr)
   622     expr = pycompat.bytestr(expr)
   623     ret = ''
   623     ret = []
   624     pos = 0
   624     pos = 0
   625     arg = 0
   625     arg = 0
   626     while pos < len(expr):
   626     while pos < len(expr):
   627         c = expr[pos]
   627         c = expr[pos]
   628         if c == '%':
   628         if c == '%':
   629             pos += 1
   629             pos += 1
   630             d = expr[pos]
   630             d = expr[pos]
   631             if d == '%':
   631             if d == '%':
   632                 ret += d
   632                 ret.append(d)
   633             elif d in 'dsnbr':
   633             elif d in 'dsnbr':
   634                 ret += argtype(d, args[arg])
   634                 ret.append(argtype(d, args[arg]))
   635                 arg += 1
   635                 arg += 1
   636             elif d == 'l':
   636             elif d == 'l':
   637                 # a list of some type
   637                 # a list of some type
   638                 pos += 1
   638                 pos += 1
   639                 d = expr[pos]
   639                 d = expr[pos]
   640                 ret += listexp(list(args[arg]), d)
   640                 ret.append(listexp(list(args[arg]), d))
   641                 arg += 1
   641                 arg += 1
   642             else:
   642             else:
   643                 raise error.Abort(_('unexpected revspec format character %s')
   643                 raise error.Abort(_('unexpected revspec format character %s')
   644                                   % d)
   644                                   % d)
   645         else:
   645         else:
   646             ret += c
   646             ret.append(c)
   647         pos += 1
   647         pos += 1
   648 
   648 
   649     return ret
   649     return ''.join(ret)
   650 
   650 
   651 def prettyformat(tree):
   651 def prettyformat(tree):
   652     return parser.prettyformat(tree, ('string', 'symbol'))
   652     return parser.prettyformat(tree, ('string', 'symbol'))
   653 
   653 
   654 def depth(tree):
   654 def depth(tree):