diff src/term.c @ 16387:12d57853ddb2 v8.1.1198

patch 8.1.1198: bracketed paste may remain active after Vim exists commit https://github.com/vim/vim/commit/958eabe5e53673fc39186432ff98b3656663beeb Author: Bram Moolenaar <Bram@vim.org> Date: Sun Apr 21 17:22:33 2019 +0200 patch 8.1.1198: bracketed paste may remain active after Vim exists Problem: Bracketed paste may remain active after Vim exists, because the terminal emulater restores the setting. Solution: Set/reset bracketed paste mode before setting the terminal mode. (closes #3579)
author Bram Moolenaar <Bram@vim.org>
date Sun, 21 Apr 2019 17:30:05 +0200
parents 3d6b282e2d6e
children 7ae2396cef62
line wrap: on
line diff
--- a/src/term.c
+++ b/src/term.c
@@ -3496,19 +3496,23 @@ settmode(int tmode)
 #endif
 #ifdef FEAT_MOUSE_TTY
 	    if (tmode != TMODE_RAW)
-		mch_setmouse(FALSE);	/* switch mouse off */
+		mch_setmouse(FALSE);	// switch mouse off
 #endif
-	    if (tmode != TMODE_RAW)
-		out_str(T_BD);		/* disable bracketed paste mode */
+	    if (termcap_active)
+	    {
+		if (tmode != TMODE_RAW)
+		    out_str(T_BD);	// disable bracketed paste mode
+		else
+		    out_str(T_BE);	// enable bracketed paste mode (should
+					// be before mch_settmode().
+	    }
 	    out_flush();
-	    mch_settmode(tmode);	/* machine specific function */
+	    mch_settmode(tmode);	// machine specific function
 	    cur_tmode = tmode;
 #ifdef FEAT_MOUSE
 	    if (tmode == TMODE_RAW)
-		setmouse();		/* may switch mouse on */
+		setmouse();		// may switch mouse on
 #endif
-	    if (tmode == TMODE_RAW)
-		out_str(T_BE);		/* enable bracketed paste mode */
 	    out_flush();
 	}
 #ifdef FEAT_TERMRESPONSE