Hi Branden, I'd like to understand why groff(1) formats differently a paragraph depending on the previous ones. I sometimes experience different placement of spaces for an unchanged paragraph. I use a script to diff manual pages at different commits, which is useful to quickly see the effects of a commit in a formatted page. That script sometimes shows suprious space changes (produced by groff(1)) for parts of the page that haven't been changed, and which one would expect should not be formatted differently.
Below is an example in what is now the latest commit in the Linux
man-pages repository. The commit I'll be using for this example is
man-pages.git 5889aa978ddc (2025-05-02; "man/man2const/TIOCLINUX.2const:
Document CAP_SYS_ADMIN requirement for TIOCL_SETSEL modes").
$ git log -1 -p --oneline 5889aa978ddc
5889aa978 (HEAD -> master, korg/master, korg/HEAD, alx/main,
alx/contrib, alx/HEAD, main, contrib) man/man2const/TIOCLINUX.2const: Document
CAP_SYS_ADMIN requirement for TIOCL_SET>
diff --git a/man/man2const/TIOCLINUX.2const
b/man/man2const/TIOCLINUX.2const
index 61f1c596d..b98a0202b 100644
--- a/man/man2const/TIOCLINUX.2const
+++ b/man/man2const/TIOCLINUX.2const
@@ -72,18 +72,30 @@ .SH DESCRIPTION
Select character-by-character.
The indicated screen characters are highlighted
and saved in a kernel buffer.
+.IP
+Since Linux 6.7, using this selection mode requires the
+.B CAP_SYS_ADMIN
+capability.
.TP
.B TIOCL_SELWORD
Select word-by-word,
expanding the selection outwards to align with word boundaries.
The indicated screen characters are highlighted
and saved in a kernel buffer.
+.IP
+Since Linux 6.7, using this selection mode requires the
+.B CAP_SYS_ADMIN
+capability.
.TP
.B TIOCL_SELLINE
Select line-by-line,
expanding the selection outwards to select full lines.
The indicated screen characters are highlighted
and saved in a kernel buffer.
+.IP
+Since Linux 6.7, using this selection mode requires the
+.B CAP_SYS_ADMIN
+capability.
.TP
.B TIOCL_SELPOINTER
Show the pointer at position
@@ -118,11 +130,11 @@ .SH DESCRIPTION
this operation yields an
.B EINVAL
error.
-.RE
.IP
-Since Linux 6.7, using this subcode requires the
+Since Linux 6.7, using this selection mode requires the
.B CAP_SYS_ADMIN
capability.
+.RE
.TP
.BR subcode = TIOCL_PASTESEL
Paste selection.
Now, let's use the diffman-git(1) script. You can get it by installing
it from source from the man-pages repo: `make && sudo make install`.
You can also run it directly from the repo: `./src/bin/diffman-git`.
Documentation is in the repo as a manual page in man1, of course.
$ diffman-git 5889aa978ddc
--- 5889aa978ddc^:man/man2const/TIOCLINUX.2const
+++ 5889aa978ddc:man/man2const/TIOCLINUX.2const
@@ -38,36 +38,46 @@
Select character‐by‐character. The indicated screen
characters are
highlighted and saved in a kernel buffer.
+ Since Linux 6.7, using this selection mode requires the
CAP_SYS_AD‐
+ MIN capability.
+
TIOCL_SELWORD
- Select word‐by‐word, expanding the selection outwards to
align with
- word boundaries. The indicated screen characters are
highlighted
+ Select word‐by‐word, expanding the selection outwards to
align with
+ word boundaries. The indicated screen characters are
highlighted
and saved in a kernel buffer.
+ Since Linux 6.7, using this selection mode requires the
CAP_SYS_AD‐
+ MIN capability.
+
TIOCL_SELLINE
Select line‐by‐line, expanding the selection outwards to
select full
lines. The indicated screen characters are highlighted and
saved in
a kernel buffer.
+ Since Linux 6.7, using this selection mode requires the
CAP_SYS_AD‐
+ MIN capability.
+
TIOCL_SELPOINTER
- Show the pointer at position (xs, ys) or (xe, ye),
whichever is
+ Show the pointer at position (xs, ys) or (xe, ye),
whichever is
later in text flow order.
TIOCL_SELCLEAR
- Remove the current selection highlight, if any, from the
console
+ Remove the current selection highlight, if any, from
the console
holding the selection.
This does not affect the stored selected text.
TIOCL_SELMOUSEREPORT
- Make the terminal report (xs, ys) as the current mouse
location us‐
- ing the xterm(1) mouse tracking protocol (see
console_codes(4)).
- The lower 4 bits of sel_mode (TIOCL_SELBUTTONMASK)
indicate the de‐
+ Make the terminal report (xs, ys) as the current mouse
location us‐
+ ing the xterm(1) mouse tracking protocol (see
console_codes(4)).
+ The lower 4 bits of sel_mode (TIOCL_SELBUTTONMASK) indicate
the de‐
sired button press and modifier key information for the
mouse event.
- If mouse reporting is not enabled for the terminal, this
operation
+ If mouse reporting is not enabled for the terminal, this
operation
yields an EINVAL error.
- Since Linux 6.7, using this subcode requires the CAP_SYS_ADMIN
capability.
+ Since Linux 6.7, using this selection mode requires the
CAP_SYS_AD‐
+ MIN capability.
subcode=TIOCL_PASTESEL
Paste selection. The characters in the selection buffer are
written to fd.
There are several paragraphs which shouldn't report changes: every
paragraph that doesn't start with "Since Linux 6.7," should be
unchanged.
Is this a bug? Is it a feature?
Have a lovely day!
Alex
--
<https://www.alejandro-colomar.es/>
signature.asc
Description: PGP signature
