From 80361a5f2b134c88597d60b3d363b52084e712a1 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Mon, 5 Oct 2020 21:39:25 +0200 Subject: patch 8.2.1805: Unix: terminal mode changed when using ":shell" Problem: Unix: terminal mode changed when using ":shell". Solution: Avoid calling settmode() when not needed. (issue #7079) --- src/os_unix.c | 12 ++++++++---- src/version.c | 2 ++ 2 files changed, 10 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/os_unix.c b/src/os_unix.c index 6f7a9a4cf9..2afe1ba936 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -585,6 +585,7 @@ mch_total_mem(int special UNUSED) mch_delay(long msec, int flags) { tmode_T old_tmode; + int call_settmode; #ifdef FEAT_MZSCHEME long total = msec; // remember original value #endif @@ -596,10 +597,13 @@ mch_delay(long msec, int flags) // shell may produce SIGQUIT). // Only do this if sleeping for more than half a second. in_mch_delay = TRUE; - old_tmode = mch_cur_tmode; - if (mch_cur_tmode == TMODE_RAW - && (msec > 500 || (flags & MCH_DELAY_SETTMODE))) + call_settmode = mch_cur_tmode == TMODE_RAW + && (msec > 500 || (flags & MCH_DELAY_SETTMODE)); + if (call_settmode) + { + old_tmode = mch_cur_tmode; settmode(TMODE_SLEEP); + } /* * Everybody sleeps in a different way... @@ -653,7 +657,7 @@ mch_delay(long msec, int flags) while (total > 0); #endif - if (msec > 500 || (flags & MCH_DELAY_SETTMODE)) + if (call_settmode) settmode(old_tmode); in_mch_delay = FALSE; } diff --git a/src/version.c b/src/version.c index cfd0d5458a..b8b9917d06 100644 --- a/src/version.c +++ b/src/version.c @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1805, /**/ 1804, /**/ -- cgit v1.2.3