py3: fix broken man page generation, it was generating `(default: NUL*)` stable
authorKyle Lippincott <spectral@google.com>
Wed, 17 Jun 2020 16:11:11 -0700
branchstable
changeset 44819 1a4b9b602e54
parent 44818 9e5f598fd29b
child 44820 3d41172f2ac9
py3: fix broken man page generation, it was generating `(default: NUL*)` `bytes(default)` was producing things like `(default: \x00)` when handed non-bytes values such as `1`, `10`, or `True`. The man page generation would apparently ignore these bytes and produce man pages that had the string `(default: )`. Test Plan: - Ran `cd doc; python3 gendoc.py "hg.1.gendoc"` and grepped for bad output - Ran `make deb`, extracted the deb, manually inspected `hg.1` file. Differential Revision: https://phab.mercurial-scm.org/D8639
doc/gendoc.py
--- a/doc/gendoc.py	Tue Jun 16 14:38:50 2020 +0200
+++ b/doc/gendoc.py	Wed Jun 17 16:11:11 2020 -0700
@@ -40,6 +40,7 @@
     gettext,
     _,
 )
+from mercurial.utils import stringutil
 
 table = commands.table
 globalopts = commands.globalopts
@@ -85,7 +86,9 @@
         if b'\n' in desc:
             # only remove line breaks and indentation
             desc = b' '.join(l.lstrip() for l in desc.split(b'\n'))
-        desc += default and _(b" (default: %s)") % bytes(default) or b""
+        if default:
+            default = stringutil.forcebytestr(default)
+            desc += _(b" (default: %s)") % default
         yield (b", ".join(allopts), desc)