Mercurial > vim
diff src/map.c @ 17946:ec4248c4b92c v8.1.1969
patch 8.1.1969: popup window filter is used in all modes
Commit: https://github.com/vim/vim/commit/581ba39aefe837298a9943b04a1dab13a7ec6772
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Sep 3 22:08:33 2019 +0200
patch 8.1.1969: popup window filter is used in all modes
Problem: Popup window filter is used in all modes.
Solution: Add the "filtermode" property.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 03 Sep 2019 22:15:03 +0200 |
parents | 079e10a49ea1 |
children | 506bf60a30a0 |
line wrap: on
line diff
--- a/src/map.c +++ b/src/map.c @@ -897,20 +897,10 @@ map_clear_int( } #if defined(FEAT_EVAL) || defined(PROTO) -/* - * Return TRUE if a map exists that has "str" in the rhs for mode "modechars". - * Recognize termcap codes in "str". - * Also checks mappings local to the current buffer. - */ int -map_to_exists(char_u *str, char_u *modechars, int abbr) +mode_str2flags(char_u *modechars) { int mode = 0; - char_u *rhs; - char_u *buf; - int retval; - - rhs = replace_termcodes(str, &buf, FALSE, TRUE, FALSE); if (vim_strchr(modechars, 'n') != NULL) mode |= NORMAL; @@ -929,7 +919,24 @@ map_to_exists(char_u *str, char_u *modec if (vim_strchr(modechars, 'c') != NULL) mode |= CMDLINE; - retval = map_to_exists_mode(rhs, mode, abbr); + return mode; +} + +/* + * Return TRUE if a map exists that has "str" in the rhs for mode "modechars". + * Recognize termcap codes in "str". + * Also checks mappings local to the current buffer. + */ + int +map_to_exists(char_u *str, char_u *modechars, int abbr) +{ + char_u *rhs; + char_u *buf; + int retval; + + rhs = replace_termcodes(str, &buf, FALSE, TRUE, FALSE); + + retval = map_to_exists_mode(rhs, mode_str2flags(modechars), abbr); vim_free(buf); return retval;