summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.1192
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.1192')
-rw-r--r--data/vim/patches/8.1.1192205
1 files changed, 205 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.1192 b/data/vim/patches/8.1.1192
new file mode 100644
index 000000000..eeb06f622
--- /dev/null
+++ b/data/vim/patches/8.1.1192
@@ -0,0 +1,205 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.1192
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.1192
+Problem: Mode is not cleared when leaving Insert mode with mapped Esc.
+Solution: Clear the mode when redraw_cmdline is set. (closes #4269)
+Files: src/globals.h, src/screen.c, src/testdir/test_messages.vim
+
+
+*** ../vim-8.1.1191/src/globals.h 2019-04-07 11:56:14.913845511 +0200
+--- src/globals.h 2019-04-20 23:27:12.141239823 +0200
+***************
+*** 90,101 ****
+ */
+ EXTERN int cmdline_row;
+
+! EXTERN int redraw_cmdline INIT(= FALSE); /* cmdline must be redrawn */
+! EXTERN int clear_cmdline INIT(= FALSE); /* cmdline must be cleared */
+! EXTERN int mode_displayed INIT(= FALSE); /* mode is being displayed */
+! EXTERN int no_win_do_lines_ins INIT(= FALSE); /* don't insert lines */
+ #if defined(FEAT_CRYPT) || defined(FEAT_EVAL)
+! EXTERN int cmdline_star INIT(= FALSE); /* cmdline is crypted */
+ #endif
+
+ EXTERN int exec_from_reg INIT(= FALSE); /* executing register */
+--- 90,102 ----
+ */
+ EXTERN int cmdline_row;
+
+! EXTERN int redraw_cmdline INIT(= FALSE); // cmdline must be redrawn
+! EXTERN int redraw_mode INIT(= FALSE); // mode must be redrawn
+! EXTERN int clear_cmdline INIT(= FALSE); // cmdline must be cleared
+! EXTERN int mode_displayed INIT(= FALSE); // mode is being displayed
+! EXTERN int no_win_do_lines_ins INIT(= FALSE); // don't insert lines
+ #if defined(FEAT_CRYPT) || defined(FEAT_EVAL)
+! EXTERN int cmdline_star INIT(= FALSE); // cmdline is crypted
+ #endif
+
+ EXTERN int exec_from_reg INIT(= FALSE); /* executing register */
+*** ../vim-8.1.1191/src/screen.c 2019-04-13 14:53:10.886456655 +0200
+--- src/screen.c 2019-04-20 23:31:48.879644412 +0200
+***************
+*** 790,796 ****
+
+ /* Clear or redraw the command line. Done last, because scrolling may
+ * mess up the command line. */
+! if (clear_cmdline || redraw_cmdline)
+ showmode();
+
+ if (no_update)
+--- 790,796 ----
+
+ /* Clear or redraw the command line. Done last, because scrolling may
+ * mess up the command line. */
+! if (clear_cmdline || redraw_cmdline || redraw_mode)
+ showmode();
+
+ if (no_update)
+***************
+*** 857,863 ****
+ static void
+ update_finish(void)
+ {
+! if (redraw_cmdline)
+ showmode();
+
+ # ifdef FEAT_SEARCH_EXTRA
+--- 857,863 ----
+ static void
+ update_finish(void)
+ {
+! if (redraw_cmdline || redraw_mode)
+ showmode();
+
+ # ifdef FEAT_SEARCH_EXTRA
+***************
+*** 10128,10134 ****
+ || !redrawing()
+ || (char_avail() && !KeyTyped))
+ {
+! redraw_cmdline = TRUE; // show mode later
+ return TRUE;
+ }
+ return FALSE;
+--- 10128,10134 ----
+ || !redrawing()
+ || (char_avail() && !KeyTyped))
+ {
+! redraw_mode = TRUE; // show mode later
+ return TRUE;
+ }
+ return FALSE;
+***************
+*** 10140,10145 ****
+--- 10140,10146 ----
+ * If clear_cmdline is TRUE, clear the rest of the cmdline.
+ * If clear_cmdline is FALSE there may be a message there that needs to be
+ * cleared only if a mode is shown.
++ * If redraw_mode is TRUE show or clear the mode.
+ * Return the length of the message (0 if no message).
+ */
+ int
+***************
+*** 10313,10319 ****
+ }
+
+ mode_displayed = TRUE;
+! if (need_clear || clear_cmdline)
+ msg_clr_eos();
+ msg_didout = FALSE; /* overwrite this message */
+ length = msg_col;
+--- 10314,10320 ----
+ }
+
+ mode_displayed = TRUE;
+! if (need_clear || clear_cmdline || redraw_mode)
+ msg_clr_eos();
+ msg_didout = FALSE; /* overwrite this message */
+ length = msg_col;
+***************
+*** 10323,10328 ****
+--- 10324,10334 ----
+ else if (clear_cmdline && msg_silent == 0)
+ /* Clear the whole command line. Will reset "clear_cmdline". */
+ msg_clr_cmdline();
++ else if (redraw_mode)
++ {
++ msg_pos_mode();
++ msg_clr_eos();
++ }
+
+ #ifdef FEAT_CMDL_INFO
+ /* In Visual mode the size of the selected area must be redrawn. */
+***************
+*** 10335,10340 ****
+--- 10341,10347 ----
+ win_redr_ruler(lastwin, TRUE, FALSE);
+ #endif
+ redraw_cmdline = FALSE;
++ redraw_mode = FALSE;
+ clear_cmdline = FALSE;
+
+ return length;
+*** ../vim-8.1.1191/src/testdir/test_messages.vim 2019-04-20 15:10:06.382607095 +0200
+--- src/testdir/test_messages.vim 2019-04-20 22:59:32.707021358 +0200
+***************
+*** 125,127 ****
+--- 125,155 ----
+ exe buf . 'bwipe!'
+ call delete(testfile)
+ endfunc
++
++ func Test_mode_message_at_leaving_insert_with_esc_mapped()
++ if !has('terminal') || has('gui_running')
++ return
++ endif
++
++ " Set custom statusline built by user-defined function.
++ let testfile = 'Xtest.vim'
++ call writefile([
++ \ 'set laststatus=2',
++ \ 'inoremap <Esc> <Esc>00',
++ \ ], testfile)
++
++ let rows = 10
++ let buf = term_start([GetVimProg(), '--clean', '-S', testfile], {'term_rows': rows})
++ call term_wait(buf, 200)
++ call assert_equal('run', job_status(term_getjob(buf)))
++
++ call term_sendkeys(buf, "i")
++ call WaitForAssert({-> assert_match('^-- INSERT --\s*$', term_getline(buf, rows))})
++ call term_sendkeys(buf, "\<Esc>")
++ call WaitForAssert({-> assert_match('^\s*$', term_getline(buf, rows))})
++
++ call term_sendkeys(buf, ":qall!\<CR>")
++ call WaitForAssert({-> assert_equal('dead', job_status(term_getjob(buf)))})
++ exe buf . 'bwipe!'
++ call delete(testfile)
++ endfunc
+*** ../vim-8.1.1191/src/version.c 2019-04-20 22:28:38.961420148 +0200
+--- src/version.c 2019-04-20 23:36:50.069917005 +0200
+***************
+*** 773,774 ****
+--- 773,776 ----
+ { /* Add new patch number below this line */
++ /**/
++ 1192,
+ /**/
+
+--
+ARTHUR: Who are you?
+TALL KNIGHT: We are the Knights Who Say "Ni"!
+BEDEVERE: No! Not the Knights Who Say "Ni"!
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///