home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!dtix!darwin.sura.net!mips!sdd.hp.com!elroy.jpl.nasa.gov!ames!pasteur!cory.Berkeley.EDU!sim
- From: sim@cory.Berkeley.EDU (Peng-Toh Sim)
- Newsgroups: comp.unix.bsd
- Subject: Re: 386BSD: Dinky little socket(?) bug -- ^V as escape character?
- Summary: POSIX termios
- Message-ID: <1992Jul30.011650.5292@pasteur.Berkeley.EDU>
- Date: 30 Jul 92 01:16:50 GMT
- References: <sand.712454840@milton>
- Sender: nntp@pasteur.Berkeley.EDU (NNTP Poster)
- Organization: University of California, at Berkeley
- Lines: 46
- Nntp-Posting-Host: cory
-
- In article <sand.712454840@milton> sand@milton.u.washington.edu (Derek Upham) writes:
- >I've noticed the following problem while running "screen" on 386BSD
- >(both of these from the vanilla bin01 and etc01 sources): control-v
- >needs to be typed twice for it to be received by a process. For
- >example, under tcsh, the key sequence
- >
- > echo ^V^G
- >
- >which should enter a literal ^G (BEL, 0x7) on the command line, simply
- >beeps. Similarly, "^V^B", which should enter a literal ^B (0x2),
- >moves the cursor back one space. Both of these DO work correctly when
- >you type two ^V characters instead of one. Inserting some suitable
- >printf's in "screen" indicates that the problem occurs before the data
- >stream reaches the program---somewhere in the pty or socket code,
- >looks like. Anyone else noticed this problem?
- >
- >Derek
- >
- >--
- >Derek Lynn Upham University of Washington
- >sand@u.washington.edu University Computing Services Operations
- >=============================================================================
- >"Ha! Your Leaping Tiger Kung Fu is no match for my Frightened Piglet Style!"
-
- Hi
-
- I believe this bug is due to misinterpretation of POSIX.1 .
- I have seen this bug under 0.0 with screen3.2 and kermit 5a.
- When screen3.2 or kermit is compiled with POSIX.1 termios, it
- switches to RAW mode by resetting ICANON in c_lflags for the
- terminal. This, however, does not disable IEXTEN under the
- current implementation of 386bsd, so keys enabled by IEXTEN like
- ^V still gets processed. Since with screen (or kermit), you go
- though the tty discipline twice, ^V gets processed twice.
- Example, if you want to enter ^V itself, you have to hit it four times!!!
- I figure this from "POSIX Programmer's Guide" by Donald Lewine.
- However, this book does not say if the kernel should ignore IEXTEN when
- ICANON is not set. So I don't know who's bug this is.
- My modified version of screen3.2 and kermit disables the IEXTEN flag
- when they switch to RAW mode so I don't see this problem.
-
- Can somebody who has access to the actual POSIX.1 document comment
- on this please?
-
- PT
- sim@cory.berkeley.edu
-