mercurial/commands.py
branchstable
changeset 11611 4f5a6df2af92
parent 11518 8d827f4a23f1
child 11612 0e789549271d
equal deleted inserted replaced
11605:ce95d8b87d22 11611:4f5a6df2af92
   150         pieces = []
   150         pieces = []
   151 
   151 
   152         for f in funcmap:
   152         for f in funcmap:
   153             l = [f(n) for n, dummy in lines]
   153             l = [f(n) for n, dummy in lines]
   154             if l:
   154             if l:
   155                 ml = max(map(len, l))
   155                 sized = [(x, encoding.colwidth(x)) for x in l]
   156                 pieces.append(["%*s" % (ml, x) for x in l])
   156                 ml = max([w for x, w in sized])
       
   157                 pieces.append(["%s%s" % (' ' * (ml - w), x) for x, w in sized])
   157 
   158 
   158         if pieces:
   159         if pieces:
   159             for p, l in zip(zip(*pieces), lines):
   160             for p, l in zip(zip(*pieces), lines):
   160                 ui.write("%s: %s" % (" ".join(p), l[1]))
   161                 ui.write("%s: %s" % (" ".join(p), l[1]))
   161 
   162 
  2051                                          and _(" (default: %s)") % default
  2052                                          and _(" (default: %s)") % default
  2052                                          or "")))
  2053                                          or "")))
  2053     if multioccur:
  2054     if multioccur:
  2054         msg = _("\n[+] marked option can be specified multiple times")
  2055         msg = _("\n[+] marked option can be specified multiple times")
  2055         if ui.verbose and name != 'shortlist':
  2056         if ui.verbose and name != 'shortlist':
  2056             opt_output.append((msg, ()))
  2057             opt_output.append((msg, None))
  2057         else:
  2058         else:
  2058             opt_output.insert(-1, (msg, ()))
  2059             opt_output.insert(-1, (msg, None))
  2059 
  2060 
  2060     if not name:
  2061     if not name:
  2061         ui.write(_("\nadditional help topics:\n\n"))
  2062         ui.write(_("\nadditional help topics:\n\n"))
  2062         topics = []
  2063         topics = []
  2063         for names, header, doc in help.helptable:
  2064         for names, header, doc in help.helptable:
  2065         topics_len = max([len(s[0]) for s in topics])
  2066         topics_len = max([len(s[0]) for s in topics])
  2066         for t, desc in topics:
  2067         for t, desc in topics:
  2067             ui.write(" %-*s  %s\n" % (topics_len, t, desc))
  2068             ui.write(" %-*s  %s\n" % (topics_len, t, desc))
  2068 
  2069 
  2069     if opt_output:
  2070     if opt_output:
  2070         opts_len = max([len(line[0]) for line in opt_output if line[1]] or [0])
  2071         colwidth = encoding.colwidth
  2071         for first, second in opt_output:
  2072         # normalize: (opt or message, desc or None, width of opt)
  2072             if second:
  2073         entries = [desc and (opt, desc, colwidth(opt)) or (opt, None, 0)
  2073                 initindent = ' %-*s  ' % (opts_len, first)
  2074                    for opt, desc in opt_output]
  2074                 hangindent = ' ' * (opts_len + 3)
  2075         hanging = max([e[2] for e in entries])
  2075                 ui.write('%s\n' % (util.wrap(second,
  2076         for opt, desc, width in entries:
       
  2077             if desc:
       
  2078                 initindent = ' %s%s  ' % (opt, ' ' * (hanging - width))
       
  2079                 hangindent = ' ' * (hanging + 3)
       
  2080                 ui.write('%s\n' % (util.wrap(desc,
  2076                                              initindent=initindent,
  2081                                              initindent=initindent,
  2077                                              hangindent=hangindent)))
  2082                                              hangindent=hangindent)))
  2078             else:
  2083             else:
  2079                 ui.write("%s\n" % first)
  2084                 ui.write("%s\n" % opt)
  2080 
  2085 
  2081 def identify(ui, repo, source=None,
  2086 def identify(ui, repo, source=None,
  2082              rev=None, num=None, id=None, branch=None, tags=None):
  2087              rev=None, num=None, id=None, branch=None, tags=None):
  2083     """identify the working copy or specified revision
  2088     """identify the working copy or specified revision
  2084 
  2089