diff src/os_unix.c @ 20437:3bb4dea4a164 v8.2.0773

patch 8.2.0773: switching to raw mode every time ":" is used Commit: https://github.com/vim/vim/commit/3b1f18f785f67c6cd110498c366e4d0c0fe11f27 Author: Bram Moolenaar <Bram@vim.org> Date: Sat May 16 23:15:08 2020 +0200 patch 8.2.0773: switching to raw mode every time ":" is used Problem: Switching to raw mode every time ":" is used. Solution: When executing a shell set cur_tmode to TMODE_UNKNOWN, so that the next time TMODE_RAW is used it is set, but not every time.
author Bram Moolenaar <Bram@vim.org>
date Sat, 16 May 2020 23:30:03 +0200
parents 4c0c86098fcc
children d4b2a8675b78
line wrap: on
line diff
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -4521,7 +4521,11 @@ mch_call_shell_system(
     }
 
     if (tmode == TMODE_RAW)
+    {
+	// The shell may have messed with the mode, always set it.
+	cur_tmode = TMODE_UNKNOWN;
 	settmode(TMODE_RAW);	// set to raw mode
+    }
 # ifdef FEAT_TITLE
     resettitle();
 # endif
@@ -4571,6 +4575,9 @@ mch_call_shell_fork(
     out_flush();
     if (options & SHELL_COOKED)
 	settmode(TMODE_COOK);		// set to normal mode
+    if (tmode == TMODE_RAW)
+	// The shell may have messed with the mode, always set it later.
+	cur_tmode = TMODE_UNKNOWN;
 
     if (unix_build_argv(cmd, &argv, &tofree1, &tofree2) == FAIL)
 	goto error;