diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 1999-04-15 18:20:19 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 1999-04-15 18:20:19 +0000 |
commit | 04a89199d02a3ee6c4b3d89a6c782bdb0a4f1bc8 (patch) | |
tree | 2215f99f95d55660fc939a029bf965c454d080b5 /Src/input.c | |
parent | 7a0415cfd70a02b2280d27556c6c54cef1c86e1a (diff) | |
download | zsh-04a89199d02a3ee6c4b3d89a6c782bdb0a4f1bc8.tar.gz zsh-04a89199d02a3ee6c4b3d89a6c782bdb0a4f1bc8.tar.xz zsh-04a89199d02a3ee6c4b3d89a6c782bdb0a4f1bc8.zip |
zsh-3.1.5-pws-12 zsh-3.1.5-pws-12
Diffstat (limited to 'Src/input.c')
-rw-r--r-- | Src/input.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/Src/input.c b/Src/input.c index 66a21000c..6e62ce2c7 100644 --- a/Src/input.c +++ b/Src/input.c @@ -249,8 +249,21 @@ inputline(void) free(pptbuf); } ingetcline = shingetline(); - } else - ingetcline = (char *)zleread(ingetcpmptl, ingetcpmptr, 1); + } else { + /* + * Since we may have to read multiple lines before getting + * a complete piece of input, we tell zle not to restore the + * original tty settings after reading each chunk. Instead, + * this is done when the history mechanism for the current input + * terminates, which is not until we have the whole input. + * This is supposed to minimise problems on systems that clobber + * typeahead when the terminal settings are altered. + * pws 1998/03/12 + */ + ingetcline = (char *)zleread(ingetcpmptl, ingetcpmptr, + ZLRF_HISTORY|ZLRF_NOSETTY); + histdone |= HISTFLAG_SETTY; + } if (!ingetcline) { return lexstop = 1; } |