The user-defined .EOP macro in mgm overrides the normal end of page processing, but there's no convenient way to invoke said normal processing if one merely wants to augment it rather than completely replacing it. It seems to me that it would be better to pre-define .EOP to do the normal end of page processing so that the user can rename it in order to augment it or just redefine it to override it. Here's the patch:
Index: contrib/mm/groff_mm.man =================================================================== RCS file: /sources/groff/groff/contrib/mm/groff_mm.man,v retrieving revision 2.26 diff -u -r2.26 groff_mm.man --- contrib/mm/groff_mm.man 27 Apr 2010 08:03:47 -0000 2.26 +++ contrib/mm/groff_mm.man 2 Jun 2010 14:56:44 -0000 @@ -765,8 +765,8 @@ . .TP .B EOP -End-of-page user-defined macro. -This macro is called instead of the normal printing of the footer. +End-of-page macro. +This macro prints the normal footer but can be overridden. The macro is executed in a separate environment, without any trap active. See Index: contrib/mm/m.tmac =================================================================== RCS file: /sources/groff/groff/contrib/mm/m.tmac,v retrieving revision 2.40 diff -u -r2.40 m.tmac --- contrib/mm/m.tmac 2 Jun 2010 14:13:41 -0000 2.40 +++ contrib/mm/m.tmac 2 Jun 2010 14:56:44 -0000 @@ -1295,6 +1295,18 @@ .if \...@verbose-flag] .eo \" to help VERBON/VERBOFF .. .\"------------------------- +.\" user overrideable end-of-page macro +.de EOP +.ie o .tl \\*[pg*odd-footer] +.el .tl \\*[pg*even-footer] +.ds hd*format \\g[P] +.af P 0 +.ie (\\n[P]=1)&(\\n[N]=1) .tl \\*[pg*header] +.el .tl \\*[pg*footer] +.af P \\*[hd*format] +.tl ''\\*[pg_type!\...@copy_type]]' +.. +.\"------------------------- .de p...@print-footer .\" jump to the position just below the foot-notes. 'sp |\\n[pg*last-pos]u+1v @@ -1306,18 +1318,7 @@ .ev pg*tl-ev ....@set-env .vpt 0 -.\" user defined end-of-page macro -.ie d EOP .EOP -.el \{\ -. ie o .tl \\*[pg*odd-footer] -. el .tl \\*[pg*even-footer] -. ds hd*format \\g[P] -. af P 0 -. ie (\\n[P]=1)&(\\n[N]=1) .tl \\*[pg*header] -. el .tl \\*[pg*footer] -. af P \\*[hd*format] -. tl ''\\*[pg_type!\...@copy_type]]'' -.\} +.EOP .vpt 1 .ev .\" be sure that floating displays and footnotes will be -- Larry Jones I've got more brains than I know what to do with. -- Calvin