4.[123]bsd dev/lp hoards final form feed (with fix)

Chris Torek chris at umcp-cs.UUCP
Thu Feb 27 05:36:16 AEST 1986


A perhaps better fix is to eliminate sc_lpchar completely.  Here
are the changes I installed back when we were using one of these
(this is for 4.3 beta, but probably fits in 4.1 and 4.2 too).

RCS file: RCS/lp.c,v
retrieving revision 1.1.1.3
retrieving revision 1.2
diff -c2 -r1.1.1.3 -r1.2
*** /tmp/,RCSt1000977	Wed Feb 26 14:31:33 1986
--- /tmp/,RCSt2000977	Wed Feb 26 14:31:36 1986
***************
*** 55,59 ****
  	char	sc_flags;
  	short	sc_maxcol;
- 	int	sc_lpchar;
  	struct	buf *sc_inbuf;
  } lp_softc[NLP];
--- 55,58 ----
***************
*** 80,84 ****
  
  	sc = &lp_softc[ui->ui_unit];
- 	sc->sc_lpchar = -1;
  	if (ui->ui_flags)
  		sc->sc_maxcol = ui->ui_flags;
--- 79,82 ----
***************
*** 285,289 ****
  	int lp11;
  {
! 	register int n;
  	register struct lp_softc *sc = &lp_softc[lp11];
  	register struct uba_device *ui = lpinfo[lp11];
--- 283,287 ----
  	int lp11;
  {
! 	register int n, c;
  	register struct lp_softc *sc = &lp_softc[lp11];
  	register struct uba_device *ui = lpinfo[lp11];
***************
*** 292,300 ****
  	lpaddr->lpsr &= ~IENABLE;
  	n = sc->sc_outq.c_cc;
! 	if (sc->sc_lpchar < 0)
! 		sc->sc_lpchar = getc(&sc->sc_outq);
! 	while ((lpaddr->lpsr&DONE) && sc->sc_lpchar >= 0) {
! 		lpaddr->lpbuf = sc->sc_lpchar;
! 		sc->sc_lpchar = getc(&sc->sc_outq);
  	}
  	sc->sc_state |= MOD;
--- 290,304 ----
  	lpaddr->lpsr &= ~IENABLE;
  	n = sc->sc_outq.c_cc;
! 	for (;;) {
! 		/* a weird sort of busy wait */
! 		if ((lpaddr->lpsr&DONE) == 0 && (lpaddr->lpsr&DONE) == 0 &&
! 		    (lpaddr->lpsr&DONE) == 0 && (lpaddr->lpsr&DONE) == 0 &&
! 		    (lpaddr->lpsr&DONE) == 0 && (lpaddr->lpsr&DONE) == 0 &&
! 		    (lpaddr->lpsr&DONE) == 0 && (lpaddr->lpsr&DONE) == 0 &&
! 		    (lpaddr->lpsr&DONE) == 0 && (lpaddr->lpsr&DONE) == 0)
! 			break;
! 		if ((c = getc(&sc->sc_outq)) < 0)
! 			break;
! 		lpaddr->lpbuf = c;
  	}
  	sc->sc_state |= MOD;
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 1415)
UUCP:	seismo!umcp-cs!chris
CSNet:	chris at umcp-cs		ARPA:	chris at mimsy.umd.edu



More information about the Comp.bugs.4bsd.ucb-fixes mailing list