##// END OF EJS Templates
Canonicalize command when using aliases or prefix matching....
Thomas Arendsen Hein -
r1517:b582dbc1 default
parent child Browse files
Show More
@@ -387,7 +387,7 b' def help_(ui, cmd=None, with_version=Fal'
387 if with_version:
387 if with_version:
388 show_version(ui)
388 show_version(ui)
389 ui.write('\n')
389 ui.write('\n')
390 key, i = find(cmd)
390 aliases, i = find(cmd)
391 # synopsis
391 # synopsis
392 ui.write("%s\n\n" % i[2])
392 ui.write("%s\n\n" % i[2])
393
393
@@ -399,9 +399,8 b' def help_(ui, cmd=None, with_version=Fal'
399
399
400 if not ui.quiet:
400 if not ui.quiet:
401 # aliases
401 # aliases
402 aliases = ', '.join(key.split('|')[1:])
402 if len(aliases) > 1:
403 if aliases:
403 ui.write(_("\naliases: %s\n") % ', '.join(aliases[1:]))
404 ui.write(_("\naliases: %s\n") % aliases)
405
404
406 # options
405 # options
407 if i[1]:
406 if i[1]:
@@ -2374,17 +2373,20 b' norepo = ("clone init version help debug'
2374 " debugindex debugindexdot paths")
2373 " debugindex debugindexdot paths")
2375
2374
2376 def find(cmd):
2375 def find(cmd):
2377 choice = []
2376 """Return (aliases, command table entry) for command string."""
2377 choice = None
2378 for e in table.keys():
2378 for e in table.keys():
2379 aliases = e.lstrip("^").split("|")
2379 aliases = e.lstrip("^").split("|")
2380 if cmd in aliases:
2380 if cmd in aliases:
2381 return e, table[e]
2381 return aliases, table[e]
2382 for a in aliases:
2382 for a in aliases:
2383 if a.startswith(cmd):
2383 if a.startswith(cmd):
2384 choice.append(e)
2384 if choice:
2385 if len(choice) == 1:
2385 raise UnknownCommand(cmd)
2386 e = choice[0]
2386 else:
2387 return e, table[e]
2387 choice = aliases, table[e]
2388 if choice:
2389 return choice
2388
2390
2389 raise UnknownCommand(cmd)
2391 raise UnknownCommand(cmd)
2390
2392
@@ -2422,7 +2424,8 b' def parse(ui, args):'
2422
2424
2423 cmd, args = args[0], args[1:]
2425 cmd, args = args[0], args[1:]
2424
2426
2425 i = find(cmd)[1]
2427 aliases, i = find(cmd)
2428 cmd = aliases[0]
2426 c = list(i[1])
2429 c = list(i[1])
2427 else:
2430 else:
2428 cmd = None
2431 cmd = None
General Comments 0
You need to be logged in to leave comments. Login now