diff options
| author | zeertzjq <zeertzjq@outlook.com> | 2023-02-11 19:28:26 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-11 19:28:26 +0800 |
| commit | 414ff7742faad10f407f141534d5314acda0ec70 (patch) | |
| tree | 80f6093861b080847287a6a8c94c5007926f412c /src/nvim/ex_getln.c | |
| parent | 7d58de11f49c574a8a305e28e96b9ff810493012 (diff) | |
| parent | f1fcdcc2c43839b037517d1dd7b1a4570eb970a8 (diff) | |
| download | rneovim-414ff7742faad10f407f141534d5314acda0ec70.tar.gz rneovim-414ff7742faad10f407f141534d5314acda0ec70.tar.bz2 rneovim-414ff7742faad10f407f141534d5314acda0ec70.zip | |
Merge pull request #22217 from zeertzjq/vim-9.0.1298
vim-patch:9.0.{1298,1299}: c_CTRL-R_CTRL-R doesn't trigger incsearch
Diffstat (limited to 'src/nvim/ex_getln.c')
| -rw-r--r-- | src/nvim/ex_getln.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c index 6926a36366..af26fe8a1c 100644 --- a/src/nvim/ex_getln.c +++ b/src/nvim/ex_getln.c @@ -1598,8 +1598,10 @@ static int command_line_insert_reg(CommandLineState *s) } } + bool literally = false; if (s->c != ESC) { // use ESC to cancel inserting register - cmdline_paste(s->c, i == Ctrl_R, false); + literally = i == Ctrl_R; + cmdline_paste(s->c, literally, false); // When there was a serious error abort getting the // command line. @@ -1624,8 +1626,9 @@ static int command_line_insert_reg(CommandLineState *s) ccline.special_char = NUL; redrawcmd(); - // The text has been stuffed, the command line didn't change yet. - return CMDLINE_NOT_CHANGED; + // With "literally": the command line has already changed. + // Else: the text has been stuffed, but the command line didn't change yet. + return literally ? CMDLINE_CHANGED : CMDLINE_NOT_CHANGED; } /// Handle the Left and Right mouse clicks in the command-line mode. @@ -1857,12 +1860,12 @@ static int command_line_handle_key(CommandLineState *s) case Ctrl_R: // insert register switch (command_line_insert_reg(s)) { - case CMDLINE_NOT_CHANGED: - return command_line_not_changed(s); case GOTO_NORMAL_MODE: return 0; // back to cmd mode - default: + case CMDLINE_CHANGED: return command_line_changed(s); + default: + return command_line_not_changed(s); } case Ctrl_D: |