[net.bugs.usg] PIC bug

gwyn@brl-tgr.ARPA (Doug Gwyn <gwyn>) (10/16/84)

For anyone who is using the OLDTROFF flavor of PIC (the one that
drives pre-Device Independent TROFF), one of the fellows here
uncovered a bug.  In some cases, the DDAed dots output to simulate
one of the graphic primitives (e.g., a line) will produce output
text lines that are too long for other software such as "tbl".
There is a test for this in the code but it is wrong.

Around line 518 in source file "pltroff.c", change

	if (nput++ > 100) {	/* crude approx: troff input buffer ~ 400 */

to

	/* DAG -- bug fix (100 is too much since h,v motions are interspersed) */
	if (nput++ > 40) {	/* crude approx: troff input buffer ~ 400 */

gwyn@brl-tgr.ARPA (Doug Gwyn <gwyn>) (10/29/84)

> For anyone who is using the OLDTROFF flavor of PIC (the one that
> drives pre-Device Independent TROFF), one of the fellows here
> uncovered a bug.  In some cases, the DDAed dots output to simulate
> one of the graphic primitives (e.g., a line) will produce output
> text lines that are too long for other software such as "tbl".
> There is a test for this in the code but it is wrong.
> 
> Around line 518 in source file "pltroff.c", change
> 
> 	if (nput++ > 100) {	/* crude approx: troff input buffer ~ 400 */
> 
> to
> 
> 	/* DAG -- bug fix (100 is too much since h,v motions are interspersed) */
> 	if (nput++ > 40) {	/* crude approx: troff input buffer ~ 400 */

Oops, I miscounted characters (forgot that there could be minus signs).
I believe the following is correct but you could make it "25" to play safe:

	/* DAG -- bug fix (100 is too much since h,v motions are interspersed) */
	if (nput++ > 28) {	/* crude approx: troff input buffer ~ 400 */