bugGNU roff - Bugs: bug #24047, [mm] footer moved between groff...

 
 

bug #24047: [mm] footer moved between groff 1.17.2 and 1.18

Submitter:  Werner LEMBERG <wl>
Submitted:  Tue 12 Aug 2008 04:58:44 PM UTC
   
 
Category:  Macro mm Severity:  2 - Minor
Item Group:  Incorrect behaviour Status:  Rejected
Privacy:  Public Assigned to:  gbranden
Open/Closed:  Closed Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Tue 15 Feb 2022 07:37:17 AM UTC, comment #3: 


comment #2:

>   I don't see anything that can be done with this report,
> except to close it.
>
>   It is 16 years old.
>
>   A workaround is provided by an Ubuntu report.
>


Thanks, Bjarni.  I think you're right.

Here are a few chunks of relevant information.


Version 1.17.2 released
=======================

2001-07-07  Werner LEMBERG  <wl@gnu.org>

Version 1.18.0 released
=======================

2002-07-19  Gaius Mulley  <gaius@glam.ac.uk>


Between these two milestones we see...


commit 00733e541c05d4af0d8a15de5658a4f40a5f186c
Author: Jörgen Hägg <jorgen.hagg@axis.com>
Date:   Thu May 30 05:39:54 2002 +0000

    * adding -T to VM for setting the total
      header and footer size.
    * changing pg*extra-header-size unit from v to u in DS-size
      calculation

diff --git a/contrib/mm/ChangeLog b/contrib/mm/ChangeLog
index c16f7a631..96d249e9e 100644
--- a/contrib/mm/ChangeLog
+++ b/contrib/mm/ChangeLog
@@ -1,3 +1,10 @@
+Thu May 06:30:06 2002  Joergen Haegg <jh@axis.com>
+
+       * adding -T to VM for setting the total
+         header and footer size.
+       * changing pg*extra-header-size unit from v to u in DS-size
+         calculation
+
 Mon May 05:40:16 2002  Joergen Haegg <jh@axis.com>

        * All lists now get an empty line before the list
diff --git a/contrib/mm/groff_mm.man b/contrib/mm/groff_mm.man
index 7fedefc66..9856951f4 100644
--- a/contrib/mm/groff_mm.man
+++ b/contrib/mm/groff_mm.man
@@ -1605,8 +1605,14 @@ the distance from the current indent to the mark.
 A third argument will prohibit printing of a blank line before each
 item.
 .TP
-.B "VM [top [bottom]]"
-Vertical margin.
+.B "VM [-T] [top [bottom]]"
+Vertical margin. Adds extra vertical top and margin space.
+Option \fB-T\fP set the total space instead.
+No argument resets the margin to zero or the default
+\fI(7v 5v)\fP if \fB-T\fP
+was used. It is higly recommended that macro \fBTP\fP and/or
+\fBEOP\fP are defined
+if using \fB-T\fP and setting top and/or bottom margin to less than the default.
 .TP
 .B "WA [writer-name [title]]"
 Begins specification of the writer and writer's address.
diff --git a/contrib/mm/m.tmac b/contrib/mm/m.tmac
index 1b189446c..1d038d9b0 100644
--- a/contrib/mm/m.tmac
+++ b/contrib/mm/m.tmac
@@ -433,16 +433,16 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%]
 .\"------------
 .de nP
 .\"    skip P if previous heading
-.ie !((\\n[nl]=\\n[hd*last-pos]):(\\n[nl]=(\\n[hd*last-pos]-.5v))) \{\
-.      if \\n[D]>2 .tm Paragraph nl=\\n[nl]
-.      par@doit \\$*
-\\n[H2].\\n+[par*number2]\ \ \c
+.if \\n[D]>2 \{\
+.      tm Paragraph nl=\\n[nl], last=\\n[hd*last-pos]
+.      tm Paragraph .k=\\n[.k], hsize=\\n[hd*last-hsize]
 .\}
-.el .if !(\\n[hd*last-hsize]=\\n[.k]) \{\
-.      if \\n[D]>2 .tm Paragraph nl=\\n[nl]
-.      par@doit \\$*
-\\n[H2].\\n+[par*number2]\ \ \c
+.if !((\\n[nl]=\\n[hd*last-pos]):(\\n[hd*last-hsize]=\\n[.k])) \{\
+.      if \\n[D]>2 .tm Paragraph set ind-flag=1
+.      nr par@ind-flag 1
 .\}
+.par@doit \\$*
+\\n[H2].\\n+[par*number2]\ \ \c
 .nr par@ind-flag 1
 ..
 .\"------------
@@ -1109,8 +1109,8 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%]
 .nr pg*top-margin 0
 .nr pg*foot-margin 0
 .nr pg*block-size 0
-.nr pg*footer-size 5\"                  1v+footer+even/odd footer+2v
-.nr pg*header-size 7\"                  3v+header+even/odd header+2v
+.nr pg*footer-size 5v\"                         1v+footer+even/odd footer+2v
+.nr pg*header-size 7v\"                         3v+header+even/odd header+2v
 .nr pg*extra-footer-size 0
 .nr pg*extra-header-size 0
 .nr ft*note-size 0
@@ -1124,14 +1124,14 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%]
 .\"-------------------------
 .\" footer TRAPS: set, enable and disable
 .de pg@set-new-trap
-.nr pg*foot-trap \\n[@pl]u-(\\n[pg*block-size]u+\\n[ft*note-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]v+\\n[pg*extra-footer-size]u)
+.nr pg*foot-trap \\n[@pl]u-(\\n[pg*block-size]u+\\n[ft*note-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]u+\\n[pg*extra-footer-size]u)
 .\"
-.if \\n[D]>2 .tm pg*foot-trap \\n[@pl]u-(\\n[pg*block-size]u+\\n[ft*note-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]v+\\n[pg*extra-footer-size]u) = \\n[pg*foot-trap]
+.if \\n[D]>2 .tm pg*foot-trap \\n[@pl]u-(\\n[pg*block-size]u+\\n[ft*note-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]u+\\n[pg*extra-footer-size]u) = \\n[pg*foot-trap]
 .\"
 .\" last-pos points to the position of the footer and bottom
 .\" block below foot-notes.
-.nr pg*last-pos \\n[@pl]u-(\\n[pg*block-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]v)
-.if \\n[D]>2 .tm pg*last-pos \\n[@pl]u-(\\n[pg*block-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]v) = \\n[pg*last-pos]
+.nr pg*last-pos \\n[@pl]u-(\\n[pg*block-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]u)
+.if \\n[D]>2 .tm pg*last-pos \\n[@pl]u-(\\n[pg*block-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]u) = \\n[pg*last-pos]
 ..
 .de pg@enable-trap
 .wh \\n[pg*foot-trap]u pg@footer
@@ -1395,16 +1395,28 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%]
 ..
 .\"-------------------------
 .\" set top and bottom margins
+.\" -T sets pg*footer-size and pg*header-size instead
 .de VM
-.if \\n[.$]=0 \{\
-.      nr pg*extra-footer-size 0
-.      nr pg*extra-header-size 0
+.ie '\\$1'-T' \{\
+.      shift
+.      if \\n[.$]=0 \{\
+.              nr pg*footer-size 5v
+.              nr pg*header-size 7v
+.      \}
+.      if \\n[.$]>0 .nr pg*header-size (v;\\$1)
+.      if \\n[.$]>1 .nr pg*footer-size (v;\\$2)
 .\}
-.if \\n[.$]>0 .nr pg*extra-header-size (v;\\$1)
-.if \\n[.$]>1 .nr pg*extra-footer-size (v;\\$2)
-.if \\n[D]>2 \{\
-.      tm extra top \\n[pg*extra-footer-size]
-.      tm extra bottom \\n[pg*extra-header-size]
+.el \{
+.      if \\n[.$]=0 \{\
+.              nr pg*extra-footer-size 0
+.              nr pg*extra-header-size 0
+.      \}
+.      if \\n[.$]>0 .nr pg*extra-header-size (v;\\$1)
+.      if \\n[.$]>1 .nr pg*extra-footer-size (v;\\$2)
+.      if \\n[D]>2 \{\
+.              tm extra top \\n[pg*extra-footer-size]
+.              tm extra bottom \\n[pg*extra-header-size]
+.      \}
 .\}
 .pg@move-trap
 ..
@@ -2029,7 +2041,7 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%]
 'nf
 .\" calculate needed space
 .nr ds*need \\n[ds*height]
-.nr ds*i \\n[pg*foot-trap]-\\n[pg*header-size]v-\\n[pg*extra-header-size]v
+.nr ds*i \\n[pg*foot-trap]-\\n[pg*header-size]u-\\n[pg*extra-header-size]u
 .if (\\n[ds*height]>\\n[ds*i])&(\\n[.t]<(\\n[ds*i]/2)) .nr ds*need \\n[.t]u+1v
 .if (\\n[ds*height]<\\n[ds*i])&(\\n[.t]<(\\n[ds*height])) .nr ds*need \\n[.t]u+1v
 .\"    Eject page if display will fit one page and


It appears to me that the change was deliberate.  Whether it produced better compatibility with AT&T mm documents I cannot say.
It is not at all clear to me which behavior is more correct.  Unfortunately, Joergen is not around anymore to discuss such things, but Ralph is.  I invite him to lobby for a change, possibly a more disruptive one than that which he reported to Ubuntu 16 years ago.

Closing as "Won't Fix" as it's much too late to revise the 1.18 release series, but we can of course consider future revision of the 'mm' package in this area.  Given the many years that have passed, I suggest reasoning from first principles rather than reference to groff 1.17.2 behavior.

G. Branden Robinson <gbranden>
Group administrator
Mon 14 Feb 2022 06:49:04 PM UTC, comment #2: 

  I don't see anything that can be done with this report,
except to close it.

  It is 16 years old.

  A workaround is provided by an Ubuntu report.

Bjarni Ingi Gislason <bjarniig>
Wed 14 Apr 2021 07:36:11 AM UTC, comment #1: 

[Mike Bianchi asked (http://lists.gnu.org/archive/html/groff/2021-02/msg00077.html) who maintains the mm macros, implying it's not him (although he didn't respond to a direct query about this (http://lists.gnu.org/archive/html/groff/2021-04/msg00019.html)).  Thus I'm unassigning this mm bug.]

Dave <barx>
Group Member
Tue 12 Aug 2008 04:58:44 PM UTC, original submission:  

The original bug report is here:

  https://launchpad.net/ubuntu/+source/groff/+bug/42764

Werner LEMBERG <wl>
Group administrator

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by gbranden (Posted a comment)
  • -email is unavailable- added by bjarniig (Posted a comment)
  • -email is unavailable- added by schwarze (Updated the item)
  • -email is unavailable- added by wl (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 11 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2022-02-15 gbranden StatusConfirmed Rejected
        Assigned toNone gbranden
        Open/ClosedOpen Closed
    2021-06-04 barx Carbon-CopyRemoved 93119 -
    2021-06-04 barx Summary groff's -mm macros have Moved the Footer in version 1.18 [mm] footer moved between groff 1.17.2 and 1.18
    2021-04-14 barx Carbon-CopyRemoved 93119 -
    2021-04-14 barx Assigned tombianchi None
    2018-02-16 schwarze CategoryNone Macro mm
        Severity3 - Normal 2 - Minor
        Item GroupNone Incorrect behaviour
        StatusNone Confirmed

    Back to the top

    Powered by Savane 3.13-3230.
    Corresponding source code