Patch 9.0.0234
Problem: Cannot make difference between the end of :normal and a character
in its argument.
Solution: Add the "typebuf_was_empty" flag. (closes #10950)
Files: src/getchar.c, src/globals.h, src/normal.c
*** ../vim-9.0.0233/src/getchar.c 2022-08-14 14:16:07.987582278 +0100
--- src/getchar.c 2022-08-21 10:28:59.269042696 +0100
***************
*** 3056,3062 ****
--- 3056,3065 ----
++vgetc_busy;
if (advance)
+ {
KeyStuffed = FALSE;
+ typebuf_was_empty = FALSE;
+ }
init_typebuf();
start_stuff();
***************
*** 3361,3366 ****
--- 3364,3373 ----
#ifdef FEAT_CMDWIN
tc = c;
#endif
+ // set a flag to indicate this wasn't a normal char
+ if (advance)
+ typebuf_was_empty = TRUE;
+
// return from main_loop()
if (pending_exmode_active)
exmode_active = EXMODE_NORMAL;
*** ../vim-9.0.0233/src/globals.h 2022-08-16 17:50:33.959764427 +0100
--- src/globals.h 2022-08-21 10:07:27.814771247 +0100
***************
*** 1206,1211 ****
--- 1206,1215 ----
= {NULL, NULL, 0, 0, 0, 0, 0, 0, 0}
#endif
;
+ // Flag used to indicate that vgetorpeek() returned a char like Esc when the
+ // :normal argument was exhausted.
+ EXTERN int typebuf_was_empty INIT(= FALSE);
+
EXTERN int ex_normal_busy INIT(= 0); // recursiveness of ex_normal()
#ifdef FEAT_EVAL
EXTERN int in_feedkeys INIT(= 0); // ex_normal_busy set in feedkeys()
*** ../vim-9.0.0233/src/normal.c 2022-08-16 20:23:57.398232761 +0100
--- src/normal.c 2022-08-21 10:38:57.723990505 +0100
***************
*** 6808,6818 ****
#endif
}
#ifdef FEAT_CMDWIN
! else if (cmdwin_type != 0 && ex_normal_busy)
{
// When :normal runs out of characters while in the command line window
! // vgetorpeek() will return ESC. Exit the cmdline window to break the
! // loop.
cmdwin_result = K_IGNORE;
return;
}
--- 6808,6818 ----
#endif
}
#ifdef FEAT_CMDWIN
! else if (cmdwin_type != 0 && ex_normal_busy && typebuf_was_empty)
{
// When :normal runs out of characters while in the command line window
! // vgetorpeek() will repeatedly return ESC. Exit the cmdline window to
! // break the loop.
cmdwin_result = K_IGNORE;
return;
}
*** ../vim-9.0.0233/src/version.c 2022-08-20 20:54:44.262968041 +0100
--- src/version.c 2022-08-21 10:39:35.935939560 +0100
***************
*** 733,734 ****
--- 733,736 ----
{ /* Add new patch number below this line */
+ /**/
+ 234,
/**/
--
Life is a gift, living is an art. (Bram Moolenaar)
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// \\\
\\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/20220821094049.727241C0B17%40moolenaar.net.