Mercurial > vim
comparison src/getchar.c @ 22361:00f2eebe74d9 v8.2.1729
patch 8.2.1729: endless loop when ":normal" feeds popup window filter
Commit: https://github.com/vim/vim/commit/189832bf661168df7ebd428e4088737718775fbd
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Sep 23 12:29:11 2020 +0200
patch 8.2.1729: endless loop when ":normal" feeds popup window filter
Problem: Endless loop when ":normal" feeds popup window filter.
Solution: Add the ex_normal_busy_done flag.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 23 Sep 2020 12:30:04 +0200 |
parents | 3ea773da9c4f |
children | 73be82f278c0 |
comparison
equal
deleted
inserted
replaced
22360:d55224e63208 | 22361:00f2eebe74d9 |
---|---|
1886 bevalexpr_due_set = FALSE; | 1886 bevalexpr_due_set = FALSE; |
1887 ui_remove_balloon(); | 1887 ui_remove_balloon(); |
1888 } | 1888 } |
1889 #endif | 1889 #endif |
1890 #ifdef FEAT_PROP_POPUP | 1890 #ifdef FEAT_PROP_POPUP |
1891 if (popup_do_filter(c)) | 1891 if (!ex_normal_busy_done && popup_do_filter(c)) |
1892 { | 1892 { |
1893 if (c == Ctrl_C) | 1893 if (c == Ctrl_C) |
1894 got_int = FALSE; // avoid looping | 1894 got_int = FALSE; // avoid looping |
1895 c = K_IGNORE; | 1895 c = K_IGNORE; |
1896 } | 1896 } |
3166 if (typebuf.tb_len > 0) | 3166 if (typebuf.tb_len > 0) |
3167 { | 3167 { |
3168 timedout = TRUE; | 3168 timedout = TRUE; |
3169 continue; | 3169 continue; |
3170 } | 3170 } |
3171 #ifdef FEAT_PROP_POPUP | |
3172 ex_normal_busy_done = TRUE; | |
3173 #endif | |
3174 | |
3171 // When 'insertmode' is set, ESC just beeps in Insert | 3175 // When 'insertmode' is set, ESC just beeps in Insert |
3172 // mode. Use CTRL-L to make edit() return. | 3176 // mode. Use CTRL-L to make edit() return. |
3173 // For the command line only CTRL-C always breaks it. | 3177 // For the command line only CTRL-C always breaks it. |
3174 // For the cmdline window: Alternate between ESC and | 3178 // For the cmdline window: Alternate between ESC and |
3175 // CTRL-C: ESC for most situations and CTRL-C to close the | 3179 // CTRL-C: ESC for most situations and CTRL-C to close the |