When the terminal is in packet mode, skipping the first byte is the right
thing. The reporter apparently got bitten by this code without having the
terminal in packet mode.
How do I know/set the terminal in packet mode? How can we conclude that reporter didn't have terminal in packet mode? (I am just trying to learn/understand here).
> If someone could help me understand what this piece of code is doing, that
> will be great.
> What is TIOCPKT?
man 4 tty_ioctl has this:
Psuedoterminal ioctls
TIOCPKT const int *argp
Enable (when *argp is nonzero) or disable packet mode. Can be
applied to the master side of a pseudoterminal only (and will return
ENOTTY otherwise). In packet mode, each subsequent read(2) will
return a packet that either contains a single nonzero control byte, or has
a single byte containing zero (' ') followed by data written on
the slave side of the pseudoterminal.
I need to do more read-up on this thing :)
> I did "git blame window.c" and found this portion of code written by
> jnweiger.
Hiren, could you reproduce the bug? If so, Id like to know why the terminal
and screen disagree about package mode.
Yes, I could reproduce the bug exactly as reporter mentioned.
I do not understand the second part of the question. Why do you think terminal and screen disagree? Is that the reason for the bug?
Thanks,
Hiren