aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/getchar.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/getchar.c')
-rw-r--r--src/nvim/getchar.c236
1 files changed, 120 insertions, 116 deletions
diff --git a/src/nvim/getchar.c b/src/nvim/getchar.c
index 05ee4cbafd..8881263d1c 100644
--- a/src/nvim/getchar.c
+++ b/src/nvim/getchar.c
@@ -31,7 +31,7 @@
#include "nvim/garray.h"
#include "nvim/getchar.h"
#include "nvim/input.h"
-#include "nvim/keymap.h"
+#include "nvim/keycodes.h"
#include "nvim/lua/executor.h"
#include "nvim/main.h"
#include "nvim/mbyte.h"
@@ -99,8 +99,8 @@ static int block_redo = FALSE;
// Put Normal/Visual mode mappings mostly separately from Insert/Cmdline mode.
#define MAP_HASH(mode, \
c1) (((mode) & \
- (NORMAL + VISUAL + SELECTMODE + \
- OP_PENDING + TERM_FOCUS)) ? (c1) : ((c1) ^ 0x80))
+ (MODE_NORMAL | MODE_VISUAL | MODE_SELECT | \
+ MODE_OP_PENDING | MODE_TERMINAL)) ? (c1) : ((c1) ^ 0x80))
// Each mapping is put in one of the MAX_MAPHASH hash lists,
// to speed up finding it.
@@ -802,7 +802,7 @@ int start_redo_ins(void)
// skip the count and the command character
while ((c = read_redo(false, false)) != NUL) {
- if (vim_strchr((char_u *)"AaIiRrOo", c) != NULL) {
+ if (vim_strchr("AaIiRrOo", c) != NULL) {
if (c == 'O' || c == 'o') {
add_buff(&readbuf2, NL_STR, -1L);
}
@@ -840,13 +840,16 @@ static void init_typebuf(void)
void init_default_mappings(void)
{
- add_map((char_u *)"Y y$", NORMAL, true);
+ add_map((char_u *)"Y y$", MODE_NORMAL, true);
// Use normal! <C-L> to prevent inserting raw <C-L> when using i_<C-O>
// See https://github.com/neovim/neovim/issues/17473
- add_map((char_u *)"<C-L> <Cmd>nohlsearch<Bar>diffupdate<Bar>normal! <C-L><CR>", NORMAL, true);
- add_map((char_u *)"<C-U> <C-G>u<C-U>", INSERT, true);
- add_map((char_u *)"<C-W> <C-G>u<C-W>", INSERT, true);
+ add_map((char_u *)"<C-L> <Cmd>nohlsearch<Bar>diffupdate<Bar>normal! <C-L><CR>",
+ MODE_NORMAL, true);
+ add_map((char_u *)"<C-U> <C-G>u<C-U>", MODE_INSERT, true);
+ add_map((char_u *)"<C-W> <C-G>u<C-W>", MODE_INSERT, true);
+ add_map((char_u *)"* y/\\\\V<C-R>\"<CR>", MODE_VISUAL, true);
+ add_map((char_u *)"# y?\\\\V<C-R>\"<CR>", MODE_VISUAL, true);
}
// Insert a string in position 'offset' in the typeahead buffer (for "@r"
@@ -1195,7 +1198,7 @@ void ungetchars(int len)
*/
void may_sync_undo(void)
{
- if ((!(State & (INSERT + CMDLINE)) || arrow_used)
+ if ((!(State & (MODE_INSERT | MODE_CMDLINE)) || arrow_used)
&& scriptin[curscript] == NULL) {
u_sync(false);
}
@@ -1353,7 +1356,7 @@ void openscript(char_u *name, bool directly)
int save_finish_op = finish_op;
int save_msg_scroll = msg_scroll;
- State = NORMAL;
+ State = MODE_NORMAL;
msg_scroll = false; // no msg scrolling in Normal mode
restart_edit = 0; // don't go to Insert mode
p_im = false; // don't use 'insertmode'
@@ -1636,7 +1639,7 @@ int vgetc(void)
// something with a meta- or alt- modifier that was not mapped, interpret
// <M-x> as <Esc>x rather than as an unbound meta keypress. #8213
// In Terminal mode, however, this is not desirable. #16220
- if (!no_mapping && KeyTyped && !(State & TERM_FOCUS)
+ if (!no_mapping && KeyTyped && !(State & MODE_TERMINAL)
&& (mod_mask == MOD_MASK_ALT || mod_mask == MOD_MASK_META)) {
mod_mask = 0;
int len = ins_char_typebuf(c, 0);
@@ -1878,17 +1881,17 @@ static int handle_mapping(int *keylenp, bool *timedout, int *mapdepth)
if (no_mapping == 0 && maphash_valid
&& (no_zero_mapping == 0 || tb_c1 != '0')
&& (typebuf.tb_maplen == 0 || is_plug_map
- || (p_remap
- && !(typebuf.tb_noremap[typebuf.tb_off] & (RM_NONE|RM_ABBR))))
- && !(p_paste && (State & (INSERT + CMDLINE)))
- && !(State == HITRETURN && (tb_c1 == CAR || tb_c1 == ' '))
- && State != ASKMORE
- && State != CONFIRM
+ || (!(typebuf.tb_noremap[typebuf.tb_off] & (RM_NONE|RM_ABBR))))
+ && !(p_paste && (State & (MODE_INSERT | MODE_CMDLINE)))
+ && !(State == MODE_HITRETURN && (tb_c1 == CAR || tb_c1 == ' '))
+ && State != MODE_ASKMORE
+ && State != MODE_CONFIRM
&& !at_ins_compl_key()) {
if (tb_c1 == K_SPECIAL) {
nolmaplen = 2;
} else {
- LANGMAP_ADJUST(tb_c1, !(State & (CMDLINE | INSERT)) && get_real_state() != SELECTMODE);
+ LANGMAP_ADJUST(tb_c1, ((State & (MODE_CMDLINE | MODE_INSERT)) == 0
+ && get_real_state() != MODE_SELECT));
nolmaplen = 0;
}
// First try buffer-local mappings.
@@ -1911,7 +1914,7 @@ static int handle_mapping(int *keylenp, bool *timedout, int *mapdepth)
// for the current state.
// Skip ":lmap" mappings if keys were mapped.
if (mp->m_keys[0] == tb_c1 && (mp->m_mode & local_State)
- && ((mp->m_mode & LANGMAP) == 0 || typebuf.tb_maplen == 0)) {
+ && ((mp->m_mode & MODE_LANGMAP) == 0 || typebuf.tb_maplen == 0)) {
int nomap = nolmaplen;
int c2;
// find the match length of this mapping
@@ -1976,8 +1979,8 @@ static int handle_mapping(int *keylenp, bool *timedout, int *mapdepth)
} else if (keylen > mp_match_len
|| (keylen == mp_match_len
&& mp_match != NULL
- && (mp_match->m_mode & LANGMAP) == 0
- && (mp->m_mode & LANGMAP) != 0)) {
+ && (mp_match->m_mode & MODE_LANGMAP) == 0
+ && (mp->m_mode & MODE_LANGMAP) != 0)) {
// found a longer match
mp_match = mp;
mp_match_len = keylen;
@@ -1999,7 +2002,7 @@ static int handle_mapping(int *keylenp, bool *timedout, int *mapdepth)
}
// Check for match with 'pastetoggle'
- if (*p_pt != NUL && mp == NULL && (State & (INSERT|NORMAL))) {
+ if (*p_pt != NUL && mp == NULL && (State & (MODE_INSERT | MODE_NORMAL))) {
bool match = typebuf_match_len(p_pt, &mlen);
if (match) {
// write chars to script file(s)
@@ -2010,7 +2013,7 @@ static int handle_mapping(int *keylenp, bool *timedout, int *mapdepth)
del_typebuf(mlen, 0); // remove the chars
set_option_value("paste", !p_paste, NULL, 0);
- if (!(State & INSERT)) {
+ if (!(State & MODE_INSERT)) {
msg_col = 0;
msg_row = Rows - 1;
msg_clr_eos(); // clear ruler
@@ -2089,7 +2092,7 @@ static int handle_mapping(int *keylenp, bool *timedout, int *mapdepth)
// Write chars to script file(s).
// Note: :lmap mappings are written *after* being applied. #5658
- if (keylen > typebuf.tb_maplen && (mp->m_mode & LANGMAP) == 0) {
+ if (keylen > typebuf.tb_maplen && (mp->m_mode & MODE_LANGMAP) == 0) {
gotchars(typebuf.tb_buf + typebuf.tb_off + typebuf.tb_maplen,
(size_t)(keylen - typebuf.tb_maplen));
}
@@ -2101,7 +2104,7 @@ static int handle_mapping(int *keylenp, bool *timedout, int *mapdepth)
// The depth check catches ":map x y" and ":map y x".
if (++*mapdepth >= p_mmd) {
emsg(_("E223: recursive mapping"));
- if (State & CMDLINE) {
+ if (State & MODE_CMDLINE) {
redrawcmdline();
} else {
setcursor();
@@ -2114,7 +2117,7 @@ static int handle_mapping(int *keylenp, bool *timedout, int *mapdepth)
// In Select mode and a Visual mode mapping is used: Switch to Visual
// mode temporarily. Append K_SELECT to switch back to Select mode.
- if (VIsual_active && VIsual_select && (mp->m_mode & VISUAL)) {
+ if (VIsual_active && VIsual_select && (mp->m_mode & MODE_VISUAL)) {
VIsual_select = false;
(void)ins_typebuf((char *)K_SELECT_STRING, REMAP_NONE, 0, true, false);
}
@@ -2163,7 +2166,7 @@ static int handle_mapping(int *keylenp, bool *timedout, int *mapdepth)
buf[2] = KE_IGNORE;
buf[3] = NUL;
map_str = vim_strsave(buf);
- if (State & CMDLINE) {
+ if (State & MODE_CMDLINE) {
// redraw the command below the error
msg_didout = true;
if (msg_row < cmdline_row) {
@@ -2190,7 +2193,7 @@ static int handle_mapping(int *keylenp, bool *timedout, int *mapdepth)
// If this is a LANGMAP mapping, then we didn't record the keys
// at the start of the function and have to record them now.
- if (keylen > typebuf.tb_maplen && (mp->m_mode & LANGMAP) != 0) {
+ if (keylen > typebuf.tb_maplen && (mp->m_mode & MODE_LANGMAP) != 0) {
gotchars(map_str, STRLEN(map_str));
}
@@ -2353,7 +2356,7 @@ static int vgetorpeek(bool advance)
// As a result typing CTRL-C in insert mode will
// really insert a CTRL-C.
if ((c || typebuf.tb_maplen)
- && (State & (INSERT + CMDLINE))) {
+ && (State & (MODE_INSERT | MODE_CMDLINE))) {
c = ESC;
} else {
c = Ctrl_C;
@@ -2422,7 +2425,7 @@ static int vgetorpeek(bool advance)
&& !no_mapping
&& ex_normal_busy == 0
&& typebuf.tb_maplen == 0
- && (State & INSERT)
+ && (State & MODE_INSERT)
&& (p_timeout || (keylen == KEYLEN_PART_KEY && p_ttimeout))
&& (c = inchar(typebuf.tb_buf + typebuf.tb_off + typebuf.tb_len, 3, 25L)) == 0) {
colnr_T col = 0, vcol;
@@ -2517,9 +2520,9 @@ static int vgetorpeek(bool advance)
// For the cmdline window: Alternate between ESC and
// CTRL-C: ESC for most situations and CTRL-C to close the
// cmdline window.
- if (p_im && (State & INSERT)) {
+ if (p_im && (State & MODE_INSERT)) {
c = Ctrl_L;
- } else if ((State & CMDLINE) || (cmdwin_type > 0 && tc == ESC)) {
+ } else if ((State & MODE_CMDLINE) || (cmdwin_type > 0 && tc == ESC)) {
c = Ctrl_C;
} else {
c = ESC;
@@ -2541,7 +2544,7 @@ static int vgetorpeek(bool advance)
// changed text so far. Also for when 'lazyredraw' is set and
// redrawing was postponed because there was something in the
// input buffer (e.g., termresponse).
- if (((State & INSERT) != 0 || p_lz) && (State & CMDLINE) == 0
+ if (((State & MODE_INSERT) != 0 || p_lz) && (State & MODE_CMDLINE) == 0
&& advance && must_redraw != 0 && !need_wait_return) {
update_screen(0);
setcursor(); // put cursor back where it belongs
@@ -2553,9 +2556,10 @@ static int vgetorpeek(bool advance)
int showcmd_idx = 0;
c1 = 0;
if (typebuf.tb_len > 0 && advance && !exmode_active) {
- if (((State & (NORMAL | INSERT)) || State == LANGMAP) && State != HITRETURN) {
+ if (((State & (MODE_NORMAL | MODE_INSERT)) || State == MODE_LANGMAP)
+ && State != MODE_HITRETURN) {
// this looks nice when typing a dead character map
- if (State & INSERT
+ if (State & MODE_INSERT
&& ptr2cells(typebuf.tb_buf + typebuf.tb_off + typebuf.tb_len - 1) == 1) {
edit_putchar(typebuf.tb_buf[typebuf.tb_off + typebuf.tb_len - 1], false);
setcursor(); // put cursor back where it belongs
@@ -2578,7 +2582,7 @@ static int vgetorpeek(bool advance)
}
// this looks nice when typing a dead character map
- if ((State & CMDLINE) && cmdline_star == 0) {
+ if ((State & MODE_CMDLINE) && cmdline_star == 0) {
char_u *p = typebuf.tb_buf + typebuf.tb_off + typebuf.tb_len - 1;
if (ptr2cells(p) == 1 && *p < 128) {
putcmdline((char)(*p), false);
@@ -2616,10 +2620,10 @@ static int vgetorpeek(bool advance)
pop_showcmd();
}
if (c1 == 1) {
- if (State & INSERT) {
+ if (State & MODE_INSERT) {
edit_unputchar();
}
- if (State & CMDLINE) {
+ if (State & MODE_CMDLINE) {
unputcmdline();
} else {
setcursor(); // put cursor back where it belongs
@@ -2651,7 +2655,7 @@ static int vgetorpeek(bool advance)
// The "INSERT" message is taken care of here:
// if we return an ESC to exit insert mode, the message is deleted
// if we don't return an ESC but deleted the message before, redisplay it
- if (advance && p_smd && msg_silent == 0 && (State & INSERT)) {
+ if (advance && p_smd && msg_silent == 0 && (State & MODE_INSERT)) {
if (c == ESC && !mode_deleted && !no_mapping && mode_displayed) {
if (typebuf.tb_len && !KeyTyped) {
redraw_cmdline = true; // delete mode later
@@ -2722,7 +2726,7 @@ int inchar(char_u *buf, int maxlen, long wait_time)
* recursive loop may result (write error in swapfile, hit-return, timeout
* on char wait, flush swapfile, write error....).
*/
- if (State != HITRETURN) {
+ if (State != MODE_HITRETURN) {
did_outofmem_msg = false; // display out of memory message (again)
did_swapwrite_msg = false; // display swap file write error again
}
@@ -2899,8 +2903,8 @@ void set_maparg_lhs_rhs(const char *const orig_lhs, const size_t orig_lhs_len,
mapargs->rhs_len = 0;
mapargs->rhs_is_noop = true;
} else {
- replaced = replace_termcodes(orig_rhs, orig_rhs_len, &rhs_buf,
- REPTERM_DO_LT | REPTERM_NO_SIMPLIFY, NULL, cpo_flags);
+ replaced = replace_termcodes(orig_rhs, orig_rhs_len, &rhs_buf, REPTERM_DO_LT, NULL,
+ cpo_flags);
mapargs->rhs_len = STRLEN(replaced);
// XXX: even when orig_rhs is non-empty, replace_termcodes may produce an empty string.
mapargs->rhs_is_noop = orig_rhs[0] != NUL && mapargs->rhs_len == 0;
@@ -3006,7 +3010,7 @@ int str_to_mapargs(const char_u *strargs, bool is_unmap, MapArguments *mapargs)
//
// With :unmap, literal white space is included in the {lhs}; there is no
// separate {rhs}.
- const char_u *lhs_end = to_parse;
+ const char *lhs_end = (char *)to_parse;
bool do_backslash = (vim_strchr(p_cpo, CPO_BSLASH) == NULL);
while (*lhs_end && (is_unmap || !ascii_iswhite(*lhs_end))) {
if ((lhs_end[0] == Ctrl_V || (do_backslash && lhs_end[0] == '\\'))
@@ -3022,7 +3026,7 @@ int str_to_mapargs(const char_u *strargs, bool is_unmap, MapArguments *mapargs)
// Given {lhs} might be larger than MAXMAPLEN before replace_termcodes
// (e.g. "<Space>" is longer than ' '), so first copy into a buffer.
- size_t orig_lhs_len = (size_t)(lhs_end - to_parse);
+ size_t orig_lhs_len = (size_t)((char_u *)lhs_end - to_parse);
char_u *lhs_to_replace = xcalloc(orig_lhs_len + 1, sizeof(char_u));
STRLCPY(lhs_to_replace, to_parse, orig_lhs_len + 1);
@@ -3452,21 +3456,21 @@ theend:
/// noreabbr {lhs} {rhs} " same, but no remapping for {rhs}
/// unabbr {lhs} " remove abbreviation for {lhs}
///
-/// for :map mode is NORMAL + VISUAL + SELECTMODE + OP_PENDING
-/// for :map! mode is INSERT + CMDLINE
-/// for :cmap mode is CMDLINE
-/// for :imap mode is INSERT
-/// for :lmap mode is LANGMAP
-/// for :nmap mode is NORMAL
-/// for :vmap mode is VISUAL + SELECTMODE
-/// for :xmap mode is VISUAL
-/// for :smap mode is SELECTMODE
-/// for :omap mode is OP_PENDING
-/// for :tmap mode is TERM_FOCUS
+/// for :map mode is MODE_NORMAL | MODE_VISUAL | MODE_SELECT | MODE_OP_PENDING
+/// for :map! mode is MODE_INSERT | MODE_CMDLINE
+/// for :cmap mode is MODE_CMDLINE
+/// for :imap mode is MODE_INSERT
+/// for :lmap mode is MODE_LANGMAP
+/// for :nmap mode is MODE_NORMAL
+/// for :vmap mode is MODE_VISUAL | MODE_SELECT
+/// for :xmap mode is MODE_VISUAL
+/// for :smap mode is MODE_SELECT
+/// for :omap mode is MODE_OP_PENDING
+/// for :tmap mode is MODE_TERMINAL
///
-/// for :abbr mode is INSERT + CMDLINE
-/// for :iabbr mode is INSERT
-/// for :cabbr mode is CMDLINE
+/// for :abbr mode is MODE_INSERT | MODE_CMDLINE
+/// for :iabbr mode is MODE_INSERT
+/// for :cabbr mode is MODE_CMDLINE
/// ```
///
/// @param maptype 0 for |:map|, 1 for |:unmap|, 2 for |noremap|.
@@ -3550,29 +3554,29 @@ int get_map_mode(char **cmdp, bool forceit)
p = *cmdp;
modec = (uint8_t)(*p++);
if (modec == 'i') {
- mode = INSERT; // :imap
+ mode = MODE_INSERT; // :imap
} else if (modec == 'l') {
- mode = LANGMAP; // :lmap
+ mode = MODE_LANGMAP; // :lmap
} else if (modec == 'c') {
- mode = CMDLINE; // :cmap
+ mode = MODE_CMDLINE; // :cmap
} else if (modec == 'n' && *p != 'o') { // avoid :noremap
- mode = NORMAL; // :nmap
+ mode = MODE_NORMAL; // :nmap
} else if (modec == 'v') {
- mode = VISUAL + SELECTMODE; // :vmap
+ mode = MODE_VISUAL | MODE_SELECT; // :vmap
} else if (modec == 'x') {
- mode = VISUAL; // :xmap
+ mode = MODE_VISUAL; // :xmap
} else if (modec == 's') {
- mode = SELECTMODE; // :smap
+ mode = MODE_SELECT; // :smap
} else if (modec == 'o') {
- mode = OP_PENDING; // :omap
+ mode = MODE_OP_PENDING; // :omap
} else if (modec == 't') {
- mode = TERM_FOCUS; // :tmap
+ mode = MODE_TERMINAL; // :tmap
} else {
p--;
if (forceit) {
- mode = INSERT + CMDLINE; // :map !
+ mode = MODE_INSERT | MODE_CMDLINE; // :map !
} else {
- mode = VISUAL + SELECTMODE + NORMAL + OP_PENDING; // :map
+ mode = MODE_VISUAL | MODE_SELECT | MODE_NORMAL | MODE_OP_PENDING; // :map
}
}
@@ -3671,34 +3675,34 @@ char *map_mode_to_chars(int mode)
ga_init(&mapmode, 1, 7);
- if ((mode & (INSERT + CMDLINE)) == INSERT + CMDLINE) {
+ if ((mode & (MODE_INSERT | MODE_CMDLINE)) == (MODE_INSERT | MODE_CMDLINE)) {
ga_append(&mapmode, '!'); // :map!
- } else if (mode & INSERT) {
+ } else if (mode & MODE_INSERT) {
ga_append(&mapmode, 'i'); // :imap
- } else if (mode & LANGMAP) {
+ } else if (mode & MODE_LANGMAP) {
ga_append(&mapmode, 'l'); // :lmap
- } else if (mode & CMDLINE) {
+ } else if (mode & MODE_CMDLINE) {
ga_append(&mapmode, 'c'); // :cmap
- } else if ((mode & (NORMAL + VISUAL + SELECTMODE + OP_PENDING))
- == NORMAL + VISUAL + SELECTMODE + OP_PENDING) {
+ } else if ((mode & (MODE_NORMAL | MODE_VISUAL | MODE_SELECT | MODE_OP_PENDING))
+ == (MODE_NORMAL | MODE_VISUAL | MODE_SELECT | MODE_OP_PENDING)) {
ga_append(&mapmode, ' '); // :map
} else {
- if (mode & NORMAL) {
+ if (mode & MODE_NORMAL) {
ga_append(&mapmode, 'n'); // :nmap
}
- if (mode & OP_PENDING) {
+ if (mode & MODE_OP_PENDING) {
ga_append(&mapmode, 'o'); // :omap
}
- if (mode & TERM_FOCUS) {
+ if (mode & MODE_TERMINAL) {
ga_append(&mapmode, 't'); // :tmap
}
- if ((mode & (VISUAL + SELECTMODE)) == VISUAL + SELECTMODE) {
+ if ((mode & (MODE_VISUAL | MODE_SELECT)) == (MODE_VISUAL | MODE_SELECT)) {
ga_append(&mapmode, 'v'); // :vmap
} else {
- if (mode & VISUAL) {
+ if (mode & MODE_VISUAL) {
ga_append(&mapmode, 'x'); // :xmap
}
- if (mode & SELECTMODE) {
+ if (mode & MODE_SELECT) {
ga_append(&mapmode, 's'); // :smap
}
}
@@ -3807,17 +3811,17 @@ bool map_to_exists(const char *const str, const char *const modechars, const boo
mode |= modeflags; \
} \
} while (0)
- MAPMODE(mode, modechars, 'n', NORMAL);
- MAPMODE(mode, modechars, 'v', VISUAL|SELECTMODE);
- MAPMODE(mode, modechars, 'x', VISUAL);
- MAPMODE(mode, modechars, 's', SELECTMODE);
- MAPMODE(mode, modechars, 'o', OP_PENDING);
- MAPMODE(mode, modechars, 'i', INSERT);
- MAPMODE(mode, modechars, 'l', LANGMAP);
- MAPMODE(mode, modechars, 'c', CMDLINE);
+ MAPMODE(mode, modechars, 'n', MODE_NORMAL);
+ MAPMODE(mode, modechars, 'v', MODE_VISUAL | MODE_SELECT);
+ MAPMODE(mode, modechars, 'x', MODE_VISUAL);
+ MAPMODE(mode, modechars, 's', MODE_SELECT);
+ MAPMODE(mode, modechars, 'o', MODE_OP_PENDING);
+ MAPMODE(mode, modechars, 'i', MODE_INSERT);
+ MAPMODE(mode, modechars, 'l', MODE_LANGMAP);
+ MAPMODE(mode, modechars, 'c', MODE_CMDLINE);
#undef MAPMODE
- retval = map_to_exists_mode((const char *)rhs, mode, abbr);
+ retval = map_to_exists_mode((char *)rhs, mode, abbr);
xfree(buf);
return retval;
@@ -3895,9 +3899,9 @@ char_u *set_context_in_map_cmd(expand_T *xp, char_u *cmd, char_u *arg, bool forc
if (isunmap) {
expand_mapmodes = get_map_mode((char **)&cmd, forceit || isabbrev);
} else {
- expand_mapmodes = INSERT + CMDLINE;
+ expand_mapmodes = MODE_INSERT | MODE_CMDLINE;
if (!isabbrev) {
- expand_mapmodes += VISUAL + SELECTMODE + NORMAL + OP_PENDING;
+ expand_mapmodes |= MODE_VISUAL | MODE_SELECT | MODE_NORMAL | MODE_OP_PENDING;
}
}
expand_isabbrev = isabbrev;
@@ -4405,76 +4409,76 @@ int makemap(FILE *fd, buf_T *buf)
cmd = "map";
}
switch (mp->m_mode) {
- case NORMAL + VISUAL + SELECTMODE + OP_PENDING:
+ case MODE_NORMAL | MODE_VISUAL | MODE_SELECT | MODE_OP_PENDING:
break;
- case NORMAL:
+ case MODE_NORMAL:
c1 = 'n';
break;
- case VISUAL:
+ case MODE_VISUAL:
c1 = 'x';
break;
- case SELECTMODE:
+ case MODE_SELECT:
c1 = 's';
break;
- case OP_PENDING:
+ case MODE_OP_PENDING:
c1 = 'o';
break;
- case NORMAL + VISUAL:
+ case MODE_NORMAL | MODE_VISUAL:
c1 = 'n';
c2 = 'x';
break;
- case NORMAL + SELECTMODE:
+ case MODE_NORMAL | MODE_SELECT:
c1 = 'n';
c2 = 's';
break;
- case NORMAL + OP_PENDING:
+ case MODE_NORMAL | MODE_OP_PENDING:
c1 = 'n';
c2 = 'o';
break;
- case VISUAL + SELECTMODE:
+ case MODE_VISUAL | MODE_SELECT:
c1 = 'v';
break;
- case VISUAL + OP_PENDING:
+ case MODE_VISUAL | MODE_OP_PENDING:
c1 = 'x';
c2 = 'o';
break;
- case SELECTMODE + OP_PENDING:
+ case MODE_SELECT | MODE_OP_PENDING:
c1 = 's';
c2 = 'o';
break;
- case NORMAL + VISUAL + SELECTMODE:
+ case MODE_NORMAL | MODE_VISUAL | MODE_SELECT:
c1 = 'n';
c2 = 'v';
break;
- case NORMAL + VISUAL + OP_PENDING:
+ case MODE_NORMAL | MODE_VISUAL | MODE_OP_PENDING:
c1 = 'n';
c2 = 'x';
c3 = 'o';
break;
- case NORMAL + SELECTMODE + OP_PENDING:
+ case MODE_NORMAL | MODE_SELECT | MODE_OP_PENDING:
c1 = 'n';
c2 = 's';
c3 = 'o';
break;
- case VISUAL + SELECTMODE + OP_PENDING:
+ case MODE_VISUAL | MODE_SELECT | MODE_OP_PENDING:
c1 = 'v';
c2 = 'o';
break;
- case CMDLINE + INSERT:
+ case MODE_CMDLINE | MODE_INSERT:
if (!abbr) {
cmd = "map!";
}
break;
- case CMDLINE:
+ case MODE_CMDLINE:
c1 = 'c';
break;
- case INSERT:
+ case MODE_INSERT:
c1 = 'i';
break;
- case LANGMAP:
+ case MODE_LANGMAP:
c1 = 'l';
break;
- case TERM_FOCUS:
+ case MODE_TERMINAL:
c1 = 't';
break;
default:
@@ -4731,9 +4735,9 @@ char_u *check_map(char_u *keys, int mode, int exact, int ign_mod, int abbr, mapb
void add_map(char_u *map, int mode, bool nore)
{
char_u *s;
- char_u *cpo_save = p_cpo;
+ char *cpo_save = p_cpo;
- p_cpo = (char_u *)""; // Allow <> notation
+ p_cpo = ""; // Allow <> notation
// Need to put string in allocated memory, because do_map() will modify it.
s = vim_strsave(map);
(void)do_map(nore ? 2 : 0, s, mode, false);
@@ -4825,7 +4829,7 @@ mapblock_T *get_maphash(int index, buf_T *buf)
}
/// Get command argument for <Cmd> key
-char_u *getcmdkeycmd(int promptc, void *cookie, int indent, bool do_concat)
+char *getcmdkeycmd(int promptc, void *cookie, int indent, bool do_concat)
{
garray_T line_ga;
int c1 = -1, c2;
@@ -4898,7 +4902,7 @@ char_u *getcmdkeycmd(int promptc, void *cookie, int indent, bool do_concat)
ga_clear(&line_ga);
}
- return (char_u *)line_ga.ga_data;
+ return line_ga.ga_data;
}
bool map_execute_lua(void)