jeff@fluke.UUCP (Jeff Stearns) (10/23/84)
Index: usr.lib/lpd/printjob.c 4.2BSD
Description:
If a job is queued to a printer with a request that it be indented,
subsequent printouts within the same queue run will be given the
same indentation.
The problem exists because the instantiation of /usr/lib/lpd which
processes the queue doesn't reset all its variables after printing
each job. Specifically, it doesn't reset the indent amount to zero.
Repeat-By:
Queue two files to a printer, asking that only the first be indented:
% lpr -i8 /tmp/foo; lpr /tmp/foo
Note that BOTH printouts will be indented.
Fix:
In the file usr.lib/lpd/printjob.c, find the function printit().
Add the one new line shown below in context.
==========================================================================
/*
* Reset troff fonts.
*/
for (i = 0; i < 4; i++)
strcpy(fonts[i], ifonts[i]);
ADD--> strcpy(indent, "-i0"); /* BUG FIX - reset indent amount to zero */
/*
* read the control file for work to do
* .....
*/
==========================================================================
Jeff Stearns (206) 356-5064
John Fluke Mfg. Co.
P.O. Box C9090 Everett WA 98043
{uw-beaver,decvax!microsof,ucbvax!lbl-csam,allegra,ssc-vax}!fluke!jeff
--
Jeff Stearns (206) 356-5064
John Fluke Mfg. Co.
P.O. Box C9090 Everett WA 98043
{uw-beaver,decvax!microsof,ucbvax!lbl-csam,allegra,ssc-vax}!fluke!jeffcrp@ccivax.UUCP (Chuck Privitera) (10/26/84)
As noted by fluke!jeff: > Index: usr.lib/lpd/printjob.c 4.2BSD > > Description: > If a job is queued to a printer with a request that it be indented, > subsequent printouts within the same queue run will be given the > same indentation. > > The problem exists because the instantiation of /usr/lib/lpd which > processes the queue doesn't reset all its variables after printing > each job. Specifically, it doesn't reset the indent amount to zero. We fixed this one a long time ago. Forgot to post it to the net though. Sorry. Lpd doesn't reset the page width passed on to pr(1) either. So in addition to Jeff's fix: > Fix: > In the file usr.lib/lpd/printjob.c, find the function printit(). > Add the one new line shown below in context. > > ========================================================================== > /* > * Reset troff fonts. > */ > for (i = 0; i < 4; i++) > strcpy(fonts[i], ifonts[i]); > > ADD--> strcpy(indent, "-i0"); /* BUG FIX - reset indent amount to zero */ > > /* > * read the control file for work to do > * ..... > */ > ========================================================================== Add this line: sprintf(width, "-w%d", PW); /* page width in characters */