Bug#1087509: netpbm: bullet list in manpages - makeman modified to avoid empty lines

Christoph Brinkhaus c.brinkhaus at t-online.de
Thu Nov 14 14:46:15 GMT 2024


Package: netpbm
Version: 2:11.01.00-2
Severity: minor

Dear Maintainer,

for this report I have checked out 
https://salsa.debian.org/debian-phototools-team/netpbm

The html documentation of netpbm uses bullet lists.
There are two types of lines as below. In the first type of lines the
tag <li> is followed by the text. In the second type the tag and the text
are separated by a newline \n. Both are fine for html.

<ol>
<li>A "magic number" for identifying the file type.
A ppm image's magic number is the two characters "P6".
<li>
Whitespace (blanks, TABs, CRs, LFs).

When converting by makeman the following line applies.
    indoc = re.sub("(?i) *<LI>", r".IP \(bu\n", indoc)
The variable indoc holds the html documentation. The string
"<LI>" is replaced by ".IP \(bu" followed by a newline. The html above
transforms to

.IP \(bu
A "magic number" for identifying the file type.
A ppm image's magic number is the two characters "P6".
.IP \(bu

Whitespace (blanks, TABs, CRs, LFs).

As a result man shows the first line as intended. The second line is
the bullet point with an empty line. The text starts below.

A workaround is proposed as follows.
By changing the indoc line of makeman to
    indoc = re.sub("(?i) *<LI>\n*", r".IP \(bu\n", indoc)
newlines are included in the matching pattern. With the modification the
extra empty line disappears and the html transforms to

.IP \(bu
A "magic number" for identifying the file type.
A ppm image's magic number is the two characters "P6".
.IP \(bu
Whitespace (blanks, TABs, CRs, LFs).

With this change both lines start with the bullet point followed
by the text.

Another approach would be to modify all html documents by replacing
"<LI>\n" by "<LI>". Since the html code itself is fine it might be
better to improve the conversion tool.

A diff which reflects the tiny change is attached to the report.
Please let me know if you need more information, evidence or any
additional activity.

Thank you very much for taking care of the netpbm package!

Kind regards,
Christoph

-- System Information:
Debian Release: 12.8
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.1.0-27-amd64 (SMP w/4 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages netpbm depends on:
ii  libc6            2.36-9+deb12u9
ii  libjpeg62-turbo  1:2.1.5-2
ii  libnetpbm11      2:11.01.00-2
ii  libpng16-16      1.6.39-2
ii  libtiff6         4.5.0-6+deb12u1
ii  libx11-6         2:1.8.4-2+deb12u2
ii  libxml2          2.9.14+dfsg-1.3~deb12u1
ii  zlib1g           1:1.2.13.dfsg-1

Versions of packages netpbm recommends:
ii  ghostscript  10.0.0~dfsg-11+deb12u6

netpbm suggests no packages.
-------------- next part --------------
diff --git a/buildtools/makeman b/buildtools/makeman
index 6e4bb52..d86f5e0 100755
--- a/buildtools/makeman
+++ b/buildtools/makeman
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 #
 # makeman -- compile netpbm's stereotyped HTML to troff markup
 #
@@ -218,7 +218,7 @@ def makeman(name, file, indoc):
     indoc = re.sub("(?i) *</DD>", "", indoc)
     # Process unordered lists -- just turn them into .TPs
     indoc = re.sub("(?i)</?[UO]L *(COMPACT)?>", "", indoc)
-    indoc = re.sub("(?i) *<LI>", r".IP \(bu\n", indoc)
+    indoc = re.sub("(?i) *<LI>\n*", r".IP \(bu\n", indoc)
     indoc = re.sub("(?i) *</LI>", "", indoc)
     # No-print tags
     indoc = re.sub("<!--no_print-->.*", "", indoc)


More information about the Pkg-phototools-devel mailing list