mirror of
https://github.com/fish-shell/fish-shell.git
synced 2025-02-22 03:34:10 +08:00

This concerns the behavior when running an external command from a key binding. The history is: Prior to 5f16a299a728, fish would run these external commands in shell modes. This meant that fish would pick up any tty changes from external commands (see #2114). After 5f16a299a728, fish would save and restore its shell modes around these external commands. This introduced a regression where anything the user typed while a bound external command was executing would be echoed, because external command mode has ECHO set in c_lflag. (This can be reproed easily with `bind -q 'sleep 1'` and then pressing q and typing). So 5f16a299a728 was reverted in fd9355966. This commit partially reverts fd9355966. It has it both ways: external commands are launched with shell modes, but/and shell modes are restored after the external command completes. This allows commands to muck with the tty, as long as they can handle getting shell modes; but it does not enable ECHO mode so it fixes the regression found in #7770. Fixes #7770. Fixes #2114 (for the third time!) This partially reverts commit fd9355966ed4392b77137e522e7fb4b28503d674.