[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[no subject]



From:     RICH@MIT-AI
Date: Mon, 21 Aug 79 15:00:38 GMT
Original-Date: 08/21/79 11:00:38 EDT
Subject: Re:  TYIPEEK bug
    To: (BUG LISP) at MIT-AI
       (PROGN (TYIPEEK)(PRINT (READ))(PRINT (READ)))A B
       A
       B
       T
    The A and B don't come out until the space after the B
    is typed.
This is a bona-fide bug in the interface to the TTYSCAN
routine, and doesn't have anythin particular to do with
TYIPEEK - I can make it happen in other ways, e.g.
   (PROGN (REAL-TIME-ACTION) (PRINT (READ)) (PRINT (READ)))
where "(REAL-TIME-ACTION)" causes something to be put on the
buffer-back-list of the input file array;  then same behaviour 
appears.  This is the same kind of situation which was at 
the root of Jim Stansfield's bug, which was recently fixed - 
a tty-interrupt function caused something to go on the 
buffer-back-list, and the various input routines were "unaware"
of this.  The problem in this case, however, is that the  main 
"TYI" input routine ($DEVICE) interfaces badly to the rubout
processor, i.e. the routine specified by (STATUS TTYSCAN).
Rather than have $DEVICE call the tty-scanner, why not
have READ call it?  This problem is due to the fact that
the tty-scanner is not called until after READ gobbles
up the character which was TYIPEEKd.  READ waits until
$DEVICE decides to call it, but it is really READ that
knows when it should be called.