bug-groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #64207] [PATCH] [mm] internal `pg@next-page` macro should invoke `b


From: G. Branden Robinson
Subject: [bug #64207] [PATCH] [mm] internal `pg@next-page` macro should invoke `br` before `ne`
Date: Wed, 17 May 2023 05:34:15 -0400 (EDT)

URL:
  <https://savannah.gnu.org/bugs/?64207>

                 Summary: [PATCH] [mm] internal `pg@next-page` macro should
invoke `br` before `ne`
                   Group: GNU roff
               Submitter: gbranden
               Submitted: Wed 17 May 2023 09:34:13 AM UTC
                Category: Macro mm
                Severity: 3 - Normal
              Item Group: Incorrect behaviour
                  Status: Postponed
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
         Planned Release: None


    _______________________________________________________

Follow-up Comments:


-------------------------------------------------------
Date: Wed 17 May 2023 09:34:13 AM UTC By: G. Branden Robinson <gbranden>
Affects groff 1.22.4.

It seems to be a common error in *roff to use `ne` without `br` before it, but
the behavior you get when including the `br` request is usually what people
want.



$ cat EXPERIMENTS/use-ne-to-break-page.roff 
.de LI
Sed ut perspiciatis, unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae ab
illo inventore veritatis et quasi architecto beatae vitae dicta sunt,
explicabo.
..
.LI
.ne 999i
.br
Now check this out.
.sp
.LI
Sed ut perspiciatis, unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae ab
illo inventore veritatis et quasi architecto beatae vitae dicta sunt,
explicabo.
.br
.ne 999i
$ nroff EXPERIMENTS/use-ne-to-break-page.roff | cat -s
Sed  ut  perspiciatis, unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam eaque  ipsa,
quae ab illo inventore veritatis et quasi architecto beatae vitae

dicta sunt, explicabo.
Now check this out.

Sed ut perspiciatis, unde omnis iste natus error  sit  voluptatem
accusantium  doloremque laudantium, totam rem aperiam eaque ipsa,
quae ab illo inventore veritatis et quasi architecto beatae vitae
dicta  sunt, explicabo.  Sed ut perspiciatis, unde omnis iste na‐
tus error sit voluptatem accusantium doloremque laudantium, totam
rem aperiam eaque ipsa, quae ab illo inventore veritatis et quasi
architecto beatae vitae dicta sunt, explicabo.



I propose a simple patch for this.


diff --git a/contrib/mm/m.tmac b/contrib/mm/m.tmac
index c679a7089..0b2878c89 100644
--- a/contrib/mm/m.tmac
+++ b/contrib/mm/m.tmac
@@ -1297,6 +1297,7 @@ numeric; got '\\$1'
 .\" stop output and begin on next page. Fix footnotes and all that.
 .de pg@next-page
 .\".debug next-page
+.br
 .ne 999i               \" activate trap
 .\" .pg@footer
 ..


Unfortunately, `pg@next-page` has several callers and it's _conceivable_ that
some of them might exhibit changed behavior due to this.  So make this change
in the 1.24 cycle and see what shakes out.

Also, with any luck we'll have the new, improved `.R` register by then and we
can use that as the argument to `ne` instead of `999i`, which risks numeric
overflow in the (admittedly unlikely) event that some output device shows up
with a resolution so high that this value causes numeric overflow.  See bug
#63587.










    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?64207>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]