mirror of
https://github.com/rkd77/elinks.git
synced 2024-12-04 14:46:47 -05:00
Bug 54: Don't disable XON/XOFF flow control.
Do not clear the IXON flag in termios.c_iflag. Bug 54 did not actually ask for this flag to be kept, but the cable I am using doesn't seem to have the handshake lines connected right, so XON/XOFF is a must at 38400 bps, at least until ELinks learns to send padding based on terminfo. Any user who has bound actions to Ctrl+S or Ctrl+Q and finds that they no longer work should just "stty -ixon" before running ELinks. We don't have any default bindings for those keys, fortunately.
This commit is contained in:
parent
cb1454918a
commit
a3d093bd25
2
NEWS
2
NEWS
@ -81,7 +81,7 @@ Miscellaneous:
|
||||
* several accesskey fixes
|
||||
* in Lua: don't write to the string returned by lua_tostring
|
||||
* minor bug 54, Debian bug 338402: don't force the terminal to 8 bits
|
||||
with no parity
|
||||
with no parity, and don't disable XON/OFF flow control either
|
||||
* minor bug 972: preserve the background color and underlining in
|
||||
spaces when justifying
|
||||
* minor bug 284: render closing bracket for HTML element SUB in the
|
||||
|
@ -805,12 +805,21 @@ unblock_stdin(void)
|
||||
void
|
||||
elinks_cfmakeraw(struct termios *t)
|
||||
{
|
||||
/* Bug 54: Do not alter the character-size and parity bits in
|
||||
* t->c_cflag. If they have unusual values, the terminal
|
||||
* probably requires those and won't work if ELinks changes
|
||||
* the flags. The cfmakeraw function would set 8-bit characters
|
||||
* and no parity, so don't use that. */
|
||||
t->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);
|
||||
/* This elinks_cfmakeraw() intentionally leaves the following
|
||||
* settings unchanged, even though the standard cfmakeraw()
|
||||
* would change some of them:
|
||||
*
|
||||
* - c_cflag & CSIZE: number of bits per character.
|
||||
* Bug 54 asked ELinks not to change this.
|
||||
* - c_cflag & (PARENB | PARODD): parity bit in characters.
|
||||
* Bug 54 asked ELinks not to change this.
|
||||
* - c_iflag & (IXON | IXOFF | IXANY): XON/XOFF flow control.
|
||||
*
|
||||
* The reasoning is, if the user has set up unusual values for
|
||||
* those settings before starting ELinks, then the terminal
|
||||
* probably expects those values and ELinks should not mess
|
||||
* with them. */
|
||||
t->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL);
|
||||
t->c_oflag &= ~OPOST;
|
||||
t->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
|
||||
t->c_cc[VMIN] = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user