diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-04-26 15:05:56 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-04-29 15:51:04 +0800 |
commit | abe91e1efec84c47c03a69ab8a998bb16f628084 (patch) | |
tree | 59814a0125ad7ece7476d9473e25e867e8099339 /src/nvim/eval.c | |
parent | 6832b626ea1b3413c445dfc23f4d921335dfeaf3 (diff) | |
download | rneovim-abe91e1efec84c47c03a69ab8a998bb16f628084.tar.gz rneovim-abe91e1efec84c47c03a69ab8a998bb16f628084.tar.bz2 rneovim-abe91e1efec84c47c03a69ab8a998bb16f628084.zip |
vim-patch:8.2.0855: GUI tests fail because the test doesn't use a modifier
Problem: GUI tests fail because the test doesn't use a modifier.
Solution: Add "\{xxx}" to be able to encode a modifier.
https://github.com/vim/vim/commit/ebe9d34aa07037cff2188a8dd424ee1f59cbb0bf
Change macros to enums to use them in unit tests.
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r-- | src/nvim/eval.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index af6e7e470d..4427179633 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -4963,9 +4963,17 @@ static int get_string_tv(char_u **arg, typval_T *rettv, int evaluate) ++name; break; - // Special key, e.g.: "\<C-W>" + // Special key, e.g.: "\<C-W>" or "\{C-W}" case '<': - extra = trans_special((const char_u **)&p, STRLEN(p), name, true, true, true, NULL); + case '{': { + int flags = FSK_KEYCODE | FSK_IN_STRING; + + if (*p == '<') { + flags |= FSK_SIMPLIFY; + } else { + flags |= FSK_CURLY; + } + extra = trans_special((const char_u **)&p, STRLEN(p), name, flags, NULL); if (extra != 0) { name += extra; if (name >= rettv->vval.v_string + len) { @@ -4973,6 +4981,7 @@ static int get_string_tv(char_u **arg, typval_T *rettv, int evaluate) } break; } + } FALLTHROUGH; default: |