Mercurial > public > mercurial-scm > hg-stable
diff mercurial/minirst.py @ 20654:af9d9b778550
minirst: create valid output when table data contains a newline
When table data contained a newline, the result of minirst.maketable
did not look nice plus it was not recognised by minirst.format:
== === ====
l1 1 one
l2 2 2
22
l3
== === ====
This problem occurred when the description of options had a very long
translation which was split by newlines. Do not bother a translator with
this detail.
The multiline translations for option descriptions have been fixed in
baf1600adfbe in it.po, de.po and ro.po. I manually did the same as this patch
does, I removed the newlines.
When a newline was in the description, this created unusable help output:
$ hg help somecommand
hg somecommand [option]...
with somecommand, you can...
options:
== =================== =======================================================
=================================== --longdesc VALUE xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -n --norm
normal desc --newline VALUE line1 line2 == =================== ===============
===========================================================================
now this looks much nicer:
...
options:
--longdesc VALUE xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-n --norm normal desc
--newline VALUE line1 line2
author | Simon Heimberg <simohe@besonet.ch> |
---|---|
date | Wed, 19 Feb 2014 17:32:21 +0100 |
parents | 2025315cfb0c |
children | 7f8cbaaa8eea |
line wrap: on
line diff
--- a/mercurial/minirst.py Wed Mar 05 14:03:08 2014 +0100 +++ b/mercurial/minirst.py Wed Feb 19 17:32:21 2014 +0100 @@ -697,6 +697,10 @@ for row in data: l = [] for w, v in zip(widths, row): + if '\n' in v: + # only remove line breaks and indentation, long lines are + # handled by the next tool + v = ' '.join(e.lstrip() for e in v.split('\n')) pad = ' ' * (w - encoding.colwidth(v)) l.append(v + pad) out.append(indent + ' '.join(l) + "\n")