diff options
author | Bram Moolenaar <Bram@vim.org> | 2005-12-12 21:58:40 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2005-12-12 21:58:40 +0000 |
commit | 5b962cf71c87f5d23408bac83c8a526b901daa3f (patch) | |
tree | 0105ddcc2ab582365acddeb7892516eec1bbad0b /src/os_unix.c | |
parent | 63a121b750c186db52de3d3ffbe016b89df8970b (diff) | |
download | vim-git-5b962cf71c87f5d23408bac83c8a526b901daa3f.tar.gz |
updated for version 7.0168
Diffstat (limited to 'src/os_unix.c')
-rw-r--r-- | src/os_unix.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/os_unix.c b/src/os_unix.c index 4535aef47..89c420d99 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -3970,14 +3970,25 @@ mch_call_shell(cmd, options) { /* * Check if keys have been typed, write them to the child - * if there are any. Don't do this if we are expanding - * wild cards (would eat typeahead). Don't get extra - * characters when we already have one. + * if there are any. + * Don't do this if we are expanding wild cards (would eat + * typeahead). + * Don't do this when filtering and terminal is in cooked + * mode, the shell command will handle the I/O. Avoids + * that a typed password is echoed for ssh or gpg command. + * Don't get extra characters when we already have one. * Don't read characters unless we didn't get output for a * while, avoids that ":r !ls" eats typeahead. */ len = 0; if (!(options & SHELL_EXPAND) + && ((options & + (SHELL_READ|SHELL_WRITE|SHELL_COOKED)) + != (SHELL_READ|SHELL_WRITE|SHELL_COOKED) +#ifdef FEAT_GUI + || gui.in_use +#endif + ) && (ta_len > 0 || (noread_cnt > 4 && (len = ui_inchar(ta_buf, |