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 |