1
0
forked from aniani/vim

patch 8.2.4911: the mode #defines are not clearly named

Problem:    The mode #defines are not clearly named.
Solution:   Prepend MODE_.  Renumber them to put the mapped modes first.
This commit is contained in:
Bram Moolenaar
2022-05-07 20:01:16 +01:00
parent 9ff7d717aa
commit 249591057b
49 changed files with 514 additions and 490 deletions

189
src/map.c
View File

@@ -31,7 +31,7 @@ static int maphash_valid = FALSE;
* Returns a value between 0 and 255, index in maphash.
* Put Normal/Visual mode mappings mostly separately from Insert/Cmdline mode.
*/
#define MAP_HASH(mode, c1) (((mode) & (NORMAL + VISUAL + SELECTMODE + OP_PENDING + TERMINAL)) ? (c1) : ((c1) ^ 0x80))
#define MAP_HASH(mode, c1) (((mode) & (MODE_NORMAL | MODE_VISUAL | MODE_SELECT | MODE_OP_PENDING | MODE_TERMINAL)) ? (c1) : ((c1) ^ 0x80))
/*
* Get the start of the hashed map list for "state" and first character "c".
@@ -101,32 +101,33 @@ map_mode_to_chars(int mode)
ga_init2(&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 & TERMINAL)
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
}
}
@@ -297,21 +298,21 @@ map_add(
* arg is pointer to any arguments. Note: arg cannot be a read-only string,
* it will be modified.
*
* 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 TERMINAL
* 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
*
* Return 0 for success
* 1 for invalid arguments
@@ -872,30 +873,31 @@ get_map_mode(char_u **cmdp, int forceit)
p = *cmdp;
modec = *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 = TERMINAL; // :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
}
*cmdp = p;
@@ -1002,21 +1004,21 @@ mode_str2flags(char_u *modechars)
int mode = 0;
if (vim_strchr(modechars, 'n') != NULL)
mode |= NORMAL;
mode |= MODE_NORMAL;
if (vim_strchr(modechars, 'v') != NULL)
mode |= VISUAL + SELECTMODE;
mode |= MODE_VISUAL | MODE_SELECT;
if (vim_strchr(modechars, 'x') != NULL)
mode |= VISUAL;
mode |= MODE_VISUAL;
if (vim_strchr(modechars, 's') != NULL)
mode |= SELECTMODE;
mode |= MODE_SELECT;
if (vim_strchr(modechars, 'o') != NULL)
mode |= OP_PENDING;
mode |= MODE_OP_PENDING;
if (vim_strchr(modechars, 'i') != NULL)
mode |= INSERT;
mode |= MODE_INSERT;
if (vim_strchr(modechars, 'l') != NULL)
mode |= LANGMAP;
mode |= MODE_LANGMAP;
if (vim_strchr(modechars, 'c') != NULL)
mode |= CMDLINE;
mode |= MODE_CMDLINE;
return mode;
}
@@ -1192,9 +1194,10 @@ set_context_in_map_cmd(
expand_mapmodes = get_map_mode(&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;
xp->xp_context = EXPAND_MAPPINGS;
@@ -1864,75 +1867,76 @@ makemap(
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 TERMINAL:
case MODE_TERMINAL:
c1 = 't';
break;
default:
@@ -2495,9 +2499,10 @@ get_map_mode_string(char_u *mode_string, int abbr)
int mode = 0;
int tmode;
int modec;
const int MASK_V = VISUAL + SELECTMODE;
const int MASK_MAP = VISUAL + SELECTMODE + NORMAL + OP_PENDING;
const int MASK_BANG = INSERT + CMDLINE;
const int MASK_V = MODE_VISUAL | MODE_SELECT;
const int MASK_MAP = MODE_VISUAL | MODE_SELECT | MODE_NORMAL
| MODE_OP_PENDING;
const int MASK_BANG = MODE_INSERT | MODE_CMDLINE;
if (*p == NUL)
p = (char_u *)" "; // compatibility
@@ -2505,14 +2510,14 @@ get_map_mode_string(char_u *mode_string, int abbr)
{
switch (modec)
{
case 'i': tmode = INSERT; break;
case 'l': tmode = LANGMAP; break;
case 'c': tmode = CMDLINE; break;
case 'n': tmode = NORMAL; break;
case 'x': tmode = VISUAL; break;
case 's': tmode = SELECTMODE; break;
case 'o': tmode = OP_PENDING; break;
case 't': tmode = TERMINAL; break;
case 'i': tmode = MODE_INSERT; break;
case 'l': tmode = MODE_LANGMAP; break;
case 'c': tmode = MODE_CMDLINE; break;
case 'n': tmode = MODE_NORMAL; break;
case 'x': tmode = MODE_VISUAL; break;
case 's': tmode = MODE_SELECT; break;
case 'o': tmode = MODE_OP_PENDING; break;
case 't': tmode = MODE_TERMINAL; break;
case 'v': tmode = MASK_V; break;
case '!': tmode = MASK_BANG; break;
case ' ': tmode = MASK_MAP; break;
@@ -2672,7 +2677,7 @@ f_mapset(typval_T *argvars, typval_T *rettv UNUSED)
#if defined(MSWIN) || defined(MACOS_X)
# define VIS_SEL (VISUAL+SELECTMODE) // abbreviation
# define VIS_SEL (MODE_VISUAL | MODE_SELECT) // abbreviation
/*
* Default mappings for some often used keys.
@@ -2688,9 +2693,9 @@ struct initmap
static struct initmap initmappings[] =
{
// paste, copy and cut
{(char_u *)"<S-Insert> \"*P", NORMAL},
{(char_u *)"<S-Insert> \"*P", MODE_NORMAL},
{(char_u *)"<S-Insert> \"-d\"*P", VIS_SEL},
{(char_u *)"<S-Insert> <C-R><C-O>*", INSERT+CMDLINE},
{(char_u *)"<S-Insert> <C-R><C-O>*", MODE_INSERT | MODE_CMDLINE},
{(char_u *)"<C-Insert> \"*y", VIS_SEL},
{(char_u *)"<S-Del> \"*d", VIS_SEL},
{(char_u *)"<C-Del> \"*d", VIS_SEL},
@@ -2703,24 +2708,24 @@ static struct initmap initmappings[] =
// Use the Windows (CUA) keybindings. (Console)
static struct initmap cinitmappings[] =
{
{(char_u *)"\316w <C-Home>", NORMAL+VIS_SEL},
{(char_u *)"\316w <C-Home>", INSERT+CMDLINE},
{(char_u *)"\316u <C-End>", NORMAL+VIS_SEL},
{(char_u *)"\316u <C-End>", INSERT+CMDLINE},
{(char_u *)"\316w <C-Home>", MODE_NORMAL | VIS_SEL},
{(char_u *)"\316w <C-Home>", MODE_INSERT | MODE_CMDLINE},
{(char_u *)"\316u <C-End>", MODE_NORMAL | VIS_SEL},
{(char_u *)"\316u <C-End>", MODE_INSERT | MODE_CMDLINE},
// paste, copy and cut
# ifdef FEAT_CLIPBOARD
{(char_u *)"\316\324 \"*P", NORMAL}, // SHIFT-Insert is "*P
{(char_u *)"\316\324 \"*P", MODE_NORMAL}, // SHIFT-Insert is "*P
{(char_u *)"\316\324 \"-d\"*P", VIS_SEL}, // SHIFT-Insert is "-d"*P
{(char_u *)"\316\324 \022\017*", INSERT}, // SHIFT-Insert is ^R^O*
{(char_u *)"\316\324 \022\017*", MODE_INSERT}, // SHIFT-Insert is ^R^O*
{(char_u *)"\316\325 \"*y", VIS_SEL}, // CTRL-Insert is "*y
{(char_u *)"\316\327 \"*d", VIS_SEL}, // SHIFT-Del is "*d
{(char_u *)"\316\330 \"*d", VIS_SEL}, // CTRL-Del is "*d
{(char_u *)"\030 \"*d", VIS_SEL}, // CTRL-X is "*d
# else
{(char_u *)"\316\324 P", NORMAL}, // SHIFT-Insert is P
{(char_u *)"\316\324 P", MODE_NORMAL}, // SHIFT-Insert is P
{(char_u *)"\316\324 \"-dP", VIS_SEL}, // SHIFT-Insert is "-dP
{(char_u *)"\316\324 \022\017\"", INSERT}, // SHIFT-Insert is ^R^O"
{(char_u *)"\316\324 \022\017\"", MODE_INSERT}, // SHIFT-Insert is ^R^O"
{(char_u *)"\316\325 y", VIS_SEL}, // CTRL-Insert is y
{(char_u *)"\316\327 d", VIS_SEL}, // SHIFT-Del is d
{(char_u *)"\316\330 d", VIS_SEL}, // CTRL-Del is d
@@ -2733,9 +2738,9 @@ static struct initmap initmappings[] =
{
// Use the Standard MacOS binding.
// paste, copy and cut
{(char_u *)"<D-v> \"*P", NORMAL},
{(char_u *)"<D-v> \"*P", MODE_NORMAL},
{(char_u *)"<D-v> \"-d\"*P", VIS_SEL},
{(char_u *)"<D-v> <C-R>*", INSERT+CMDLINE},
{(char_u *)"<D-v> <C-R>*", MODE_INSERT | MODE_CMDLINE},
{(char_u *)"<D-c> \"*y", VIS_SEL},
{(char_u *)"<D-x> \"*d", VIS_SEL},
{(char_u *)"<Backspace> \"-d", VIS_SEL},