troff/nroff/ditroff end-macro bug
Steve Grandi
grandi at noao.UUCP
Thu Oct 16 11:36:34 AEST 1986
Subject: troff/nroff prematurely interrupts end-macro processing
Index: /usr/src/usr.bin/troff/n7.c 4.3BSD
Description:
(The following bug-report and fix are from D'Anne Thompson)
End-macro processing in troff/nroff/ditroff is being prematurely
interrupted. Only a single page of text was being ejected upon reaching the
end of input text. This was the case even when there was diverted material,
notably a floating keep, that should be floated to the top of another new
page. After investigation it was found that only the current page at the
time of reaching the end-macro was being completed, any additional pages that
might be due to the end-macro processing itself were being suppressed.
Repeat-By:
Run the following through troff/nroff using -me
.fo ''Footer''
.pp
A normal paragraph.
A normal paragraph.
A normal paragraph.
A normal paragraph.
A normal paragraph.
A normal paragraph.
A normal paragraph.
A normal paragraph.
.sp 7.0i
.(z
A Floating keep.
It should float to the top of the
following page.
This should be the second page output, if end-macro
processing is working correctly.
She sells sea shells by the sea shore.
.)z
.pp
A normal paragraph.
Fix:
file n7.c, subroutine newline()
*** n7.c.ORIG Thu Aug 5 14:53:14 1982
--- n7.c Tue Sep 16 16:01:51 1986
***************
*** 423,429 ****
nl1:
ejf = dip->hnl = v.nl = 0;
ejl = frame;
! if(donef){
if((!nc && !wch) || ndone)done1(0);
ndone++;
donef = 0;
--- 423,429 ----
nl1:
ejf = dip->hnl = v.nl = 0;
ejl = frame;
! if(donef == 1){
if((!nc && !wch) || ndone)done1(0);
ndone++;
donef = 0;
--
Steve Grandi, National Optical Astronomy Observatories, Tucson, AZ, 602-325-9228
{arizona,decvax,hao,ihnp4,seismo}!noao!grandi grandi%draco at Hamlet.Caltech.Edu
More information about the Net.bugs
mailing list