Package: xterm
Version: 395-1
Severity: minor
Tags: patch

   * What led up to the situation?

     Checking for defects with

test-[g|n]roff -mandoc -t -K utf8 -rF0 -rHY=0 -ww -b -z < "man page"

  [Use "groff -e ' $' <file>" to find trailing spaces.]

  ["test-groff" is a script in the repository for "groff"; is not shipped]
(local copy and "troff" slightly changed by me).

  [The fate of "test-nroff" was decided in groff bug #55941.]

   * What was the outcome of this action?

troff: backtrace: file '<stdin>':245
troff:<stdin>:245: warning: trailing space in the line

   * What outcome did you expect instead?

     No output (no warnings).

-.-

  General remarks and further material, if a diff-file exist, are in the
attachments.


-- System Information:
Debian Release: trixie/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 6.11.4-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=is_IS.iso88591, LC_CTYPE=is_IS.iso88591 (charmap=ISO-8859-1), 
LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages xterm depends on:
ii  libc6           2.40-3
ii  libfontconfig1  2.15.0-1.1+b1
ii  libfreetype6    2.13.3+dfsg-1
ii  libice6         2:1.0.10-1+b2
ii  libtinfo6       6.5-2+b1
ii  libutempter0    1.2.1-3+b2
ii  libx11-6        2:1.8.7-1+b2
ii  libxaw7         2:1.0.14-1+b3
ii  libxext6        2:1.3.4-1+b2
ii  libxft2         2.3.6-1+b2
ii  libxinerama1    2:1.1.4-3+b2
ii  libxmu6         2:1.1.3-3+b3
ii  libxpm4         1:3.5.17-1+b2
ii  libxt6t64       1:1.2.1-1.2+b1
ii  xbitmaps        1.1.1-2.2

Versions of packages xterm recommends:
ii  x11-utils  7.7+7

Versions of packages xterm suggests:
pn  xfonts-cyrillic  <none>

-- no debconf information
  Any program (person), that produces man pages, should check the output
for defects by using (both groff and nroff)

[gn]roff -mandoc -t -ww -b -z -K utf8  <man page>

  The same goes for man pages that are used as an input.

  For a style guide use

  mandoc -T lint

-.-

  So any 'generator' should check its products with the above mentioned
'groff', 'mandoc',  and additionally with 'nroff ...'.

  This is just a simple quality control measure.

  The 'generator' may have to be corrected to get a better man page,
the source file may, and any additional file may.

  Common defects:

  Input text line longer than 80 bytes.

  Not removing trailing spaces (in in- and output).
  The reason for these trailing spaces should be found and eliminated.

  Not beginning each input sentence on a new line.
Lines should thus be shorter.

  See man-pages(7), item 'semantic newline'.

-.-

The difference between the formatted output of the original and patched file
can be seen with:

  nroff -mandoc <file1> > <out1>
  nroff -mandoc <file2> > <out2>
  diff -u <out1> <out2>

and for groff, using

"printf '%s\n%s\n' '.kern 0' '.ss 12 0' | groff -mandoc -Z - "

instead of 'nroff -mandoc'

  Add the option '-t', if the file contains a table.

  Read the output of 'diff -u' with 'less -R' or similar.

-.-.

  If 'man' (man-db) is used to check the manual for warnings,
the following must be set:

  The option "-warnings=w"

  The environmental variable:

export MAN_KEEP_STDERR=yes (or any non-empty value)

  or

  (produce only warnings):

export MANROFFOPT="-ww -b -z"

export MAN_KEEP_STDERR=yes (or any non-empty value)

-.-.

Output from "mandoc -T lint expect_multixterm.1": (possibly shortened list)

mandoc: expect_multixterm.1:135:150: STYLE: input text line longer than 80 
bytes: in the argv variable...
mandoc: expect_multixterm.1:245:45: STYLE: whitespace at end of input line

-.-.

Remove space characters at the end of lines.

Use "git apply ... --whitespace=fix" to fix extra space issues, or use
global configuration "core.whitespace".

245:most other window system related functions.  

-.-.

Change a HYPHEN-MINUS (code 0x2D) to a minus(-dash) (\-),
if it
is in front of a name for an option,
is a symbol for standard input,
is a single character used to indicate an option,
or is in the NAME section (man-pages(7)).
N.B. - (0x2D), processed as a UTF-8 file, is changed to a hyphen
(0x2010, groff \[u2010] or \[hy]) in the output.

35:-xa
40:-xc
46:-xd
52:-xf
57:-xn
63:-xv
181:        set ::xtermArgs "-geometry 80x12+$xPos+$yPos \-font 6x10"
202:        set ::xtermArgs "-geometry 80x12+$xPos+0 \-font 6x10"
254:created (i.e., "-geometry 80x20").

-.-.

Split lines longer than 80 characters into two or more lines.
Appropriate break points are the end of a sentence and a subordinate
clause; after punctuation marks.

N.B.

  The number of lines affected can be too large to be in a patch.


Line 135, length 150

in the argv variable.  If argv is non-empty when .multixtermrc returns, it is 
assigned to xtermNames unless xtermNames is non-empty in which case, the

-.-.

Use a character "\(->" instead of plain "->"

95:File->Open.  Any filename is acceptable but the File->Open
260:files.  To show all the files, use File->Open.

-.-.

Output from "test-groff  -mandoc -t -K utf8 -rF0 -rHY=0 -ww -b -z ":

troff: backtrace: file '<stdin>':245
troff:<stdin>:245: warning: trailing space in the line

--- expect_multixterm.1 2024-11-03 23:37:16.407575653 +0000
+++ expect_multixterm.1.new     2024-11-03 23:46:17.051914248 +0000
@@ -32,35 +32,35 @@ This provides support for programs such
 .SH ARGUMENTS
 .RS
 .TP 4
--xa
+\-xa
 The optional \-xa argument indicates arguments to pass to
 xterm.
 
 .TP
--xc
+\-xc
 The optional \-xc argument indicates a command to be run in
 each named xterm (see \-xn).  With no \-xc argument, the command
 is the current shell.
 
 .TP 4
--xd
+\-xd
 The optional \-xd argument indicates a directory to search for
 files that will appear in the Files menu.  By default, the
 directory is: ~/lib/multixterm
 
 .TP 4
--xf
+\-xf
 The optional \-xf argument indicates a file to be read at
 startup.  See FILES below for more info.
 
 .TP 4
--xn
+\-xn
 The optional \-xn argument indicates a name for each xterm.
 This name will also be substituted for any %n in the command
 argument (see \-xc).
 
 .TP 4
--xv
+\-xv
 The optional \-xv flag puts multixterm into a verbose mode
 where it will describe some of the things it is doing
 internally.  The verbose output is not intended to be
@@ -92,7 +92,7 @@ Command files may be used to drive or in
 The File menu may be used to invoke other files.  If files
 exist in the command file directory (see \-xd above), they will
 appear in the File menu.  Files may also be loaded by using
-File->Open.  Any filename is acceptable but the File->Open
+File\(->Open.  Any filename is acceptable but the File\(->Open
 browser defaults to files with a .mxt suffix.
 
 Files are written in Tcl and may change any variables or
@@ -132,8 +132,10 @@ Then multixterm could be called simply:
 
 If any command-line argument does not match a multixterm flag,
 the remainder of the command line is made available to .multixtermrc
-in the argv variable.  If argv is non-empty when .multixtermrc returns, it is 
assigned to xtermNames unless xtermNames is non-empty in which case, the
-content of argv is ignored.
+in the argv variable.
+If argv is non-empty when .multixtermrc returns,
+it is assigned to xtermNames unless xtermNames is non-empty in which case,
+the content of argv is ignored.
 
 Commands from multixterm are evaluated early in the
 initialization of multixterm.  Anything that must be done late
@@ -178,7 +180,7 @@ large numbers of xterms.
 
     proc traceArgs {args} {
         global xPos yPos
-        set ::xtermArgs "-geometry 80x12+$xPos+$yPos \-font 6x10"
+        set ::xtermArgs "\-geometry 80x12+$xPos+$yPos \-font 6x10"
         if {$xPos} {
             set xPos 0
             incr yPos 145
@@ -199,7 +201,7 @@ horizontally:
 
     set xPos 0
     foreach name {bud dexter hotdog} {
-        set ::xtermArgs "-geometry 80x12+$xPos+0 \-font 6x10"
+        set ::xtermArgs "\-geometry 80x12+$xPos+0 \-font 6x10"
         set ::xtermNames $name
         xtermStartAll
         incr xPos 300
@@ -242,7 +244,7 @@ the same process to each xterm.
 .SH LIMITATIONS
 
 Multixterm provides no way to remotely control scrollbars, resize, and
-most other window system related functions.  
+most other window system related functions.
 
 Because xterm has no mechanism for propagating size information to
 external processes, particularly for character graphic applications
@@ -251,13 +253,13 @@ process behind each xterm has the correc
 create or set the xterm to a size, you may have to send an explicit
 stty command with the correct size to the spawned process(es).
 Alternatively, you can add the correct size argument when an xterm is
-created (i.e., "-geometry 80x20").
+created (i.e., "\-geometry 80x20").
 
 Multixterm can only control new xterms that multixterm itself has
 started.
 
 As a convenience, the File menu shows a limited number of
-files.  To show all the files, use File->Open.
+files.  To show all the files, use File\(->Open.
 
 .SH FILES
 $DOTDIR/.multixtermrc   initial command file

Reply via email to