mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-11 16:08:13 +00:00
* src/sysdep.c (child_setup_tty): Comment-out left-over non-ICANON code.
This commit is contained in:
parent
e0d62a9b7b
commit
aaa0a19a94
@ -1,3 +1,7 @@
|
|||||||
|
2010-08-04 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||||
|
|
||||||
|
* sysdep.c (child_setup_tty): Comment-out left-over non-ICANON code.
|
||||||
|
|
||||||
2010-08-03 Johan Bockgård <bojohan@gnu.org>
|
2010-08-03 Johan Bockgård <bojohan@gnu.org>
|
||||||
|
|
||||||
* data.c (Flocal_variable_p): Handle variable aliases correctly.
|
* data.c (Flocal_variable_p): Handle variable aliases correctly.
|
||||||
|
29
src/sysdep.c
29
src/sysdep.c
@ -503,26 +503,29 @@ child_setup_tty (int out)
|
|||||||
s.main.c_cflag = (s.main.c_cflag & ~CBAUD) | B9600; /* baud rate sanity */
|
s.main.c_cflag = (s.main.c_cflag & ~CBAUD) | B9600; /* baud rate sanity */
|
||||||
#endif /* AIX */
|
#endif /* AIX */
|
||||||
|
|
||||||
/* We used to enable ICANON (and set VEOF to 04), but this leads to
|
/* We originally enabled ICANON (and set VEOF to 04), and then had
|
||||||
problems where process.c wants to send EOFs every once in a while
|
proces.c send additional EOF chars to flush the output when faced
|
||||||
to force the output, which leads to weird effects when the
|
with long lines, but this leads to weird effects when the
|
||||||
subprocess has disabled ICANON and ends up seeing those spurious
|
subprocess has disabled ICANON and ends up seeing those spurious
|
||||||
extra EOFs. So we don't send EOFs any more in
|
extra EOFs. So we don't send EOFs any more in
|
||||||
process.c:send_process, and instead we disable ICANON by default,
|
process.c:send_process. First we tried to disable ICANON by
|
||||||
so if a subsprocess sets up ICANON, it's his problem (or the Elisp
|
default, so if a subsprocess sets up ICANON, it's his problem (or
|
||||||
package that talks to it) to deal with lines that are too long. */
|
the Elisp package that talks to it) to deal with lines that are
|
||||||
/* There is no more "send eof to flush" going on (which is wrong and
|
too long. But this disables some features, such as the ability
|
||||||
unportable in itself), and disabling ICANON breaks a lot of stuff
|
to send EOF signals. So we re-enabled ICANON but there is no
|
||||||
and shows literal ^D in many cases. The correct way to handle too
|
more "send eof to flush" going on (which is wrong and unportable
|
||||||
much output is to buffer what could not be written and then write it
|
in itself). The correct way to handle too much output is to
|
||||||
again when select returns ok for writing. This has it own set of
|
buffer what could not be written and then write it again when
|
||||||
problems. Write is now asynchronous, is that a problem?
|
select returns ok for writing. This has it own set of
|
||||||
How much do we buffer, and what do we do when that limit is reached? */
|
problems. Write is now asynchronous, is that a problem? How much
|
||||||
|
do we buffer, and what do we do when that limit is reached? */
|
||||||
|
|
||||||
s.main.c_lflag |= ICANON; /* Enable line editing and eof processing */
|
s.main.c_lflag |= ICANON; /* Enable line editing and eof processing */
|
||||||
s.main.c_cc[VEOF] = 'D'&037; /* Control-D */
|
s.main.c_cc[VEOF] = 'D'&037; /* Control-D */
|
||||||
|
#ifdef 0 /* These settins only apply to non-ICANON mode. */
|
||||||
s.main.c_cc[VMIN] = 1;
|
s.main.c_cc[VMIN] = 1;
|
||||||
s.main.c_cc[VTIME] = 0;
|
s.main.c_cc[VTIME] = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
#else /* not HAVE_TERMIO */
|
#else /* not HAVE_TERMIO */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user