mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 9.0.0002: map functionality outside of map.c
Problem: Map functionality outside of map.c. Solution: Move f_hasmapto() to map.c. Rename a function. (closes #10611)
This commit is contained in:
@@ -1004,8 +1004,8 @@ free_buffer_stuff(
|
|||||||
#ifdef FEAT_NETBEANS_INTG
|
#ifdef FEAT_NETBEANS_INTG
|
||||||
netbeans_file_killed(buf);
|
netbeans_file_killed(buf);
|
||||||
#endif
|
#endif
|
||||||
map_clear_int(buf, MAP_ALL_MODES, TRUE, FALSE); // clear local mappings
|
map_clear_mode(buf, MAP_ALL_MODES, TRUE, FALSE); // clear local mappings
|
||||||
map_clear_int(buf, MAP_ALL_MODES, TRUE, TRUE); // clear local abbrevs
|
map_clear_mode(buf, MAP_ALL_MODES, TRUE, TRUE); // clear local abbrevs
|
||||||
VIM_CLEAR(buf->b_start_fenc);
|
VIM_CLEAR(buf->b_start_fenc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -75,7 +75,6 @@ static void f_getregtype(typval_T *argvars, typval_T *rettv);
|
|||||||
static void f_gettagstack(typval_T *argvars, typval_T *rettv);
|
static void f_gettagstack(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_gettext(typval_T *argvars, typval_T *rettv);
|
static void f_gettext(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_haslocaldir(typval_T *argvars, typval_T *rettv);
|
static void f_haslocaldir(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_hasmapto(typval_T *argvars, typval_T *rettv);
|
|
||||||
static void f_hlID(typval_T *argvars, typval_T *rettv);
|
static void f_hlID(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_hlexists(typval_T *argvars, typval_T *rettv);
|
static void f_hlexists(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_hostname(typval_T *argvars, typval_T *rettv);
|
static void f_hostname(typval_T *argvars, typval_T *rettv);
|
||||||
@@ -6653,40 +6652,6 @@ f_haslocaldir(typval_T *argvars, typval_T *rettv)
|
|||||||
rettv->vval.v_number = 0;
|
rettv->vval.v_number = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* "hasmapto()" function
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
f_hasmapto(typval_T *argvars, typval_T *rettv)
|
|
||||||
{
|
|
||||||
char_u *name;
|
|
||||||
char_u *mode;
|
|
||||||
char_u buf[NUMBUFLEN];
|
|
||||||
int abbr = FALSE;
|
|
||||||
|
|
||||||
if (in_vim9script()
|
|
||||||
&& (check_for_string_arg(argvars, 0) == FAIL
|
|
||||||
|| check_for_opt_string_arg(argvars, 1) == FAIL
|
|
||||||
|| (argvars[1].v_type != VAR_UNKNOWN
|
|
||||||
&& check_for_opt_bool_arg(argvars, 2) == FAIL)))
|
|
||||||
return;
|
|
||||||
|
|
||||||
name = tv_get_string(&argvars[0]);
|
|
||||||
if (argvars[1].v_type == VAR_UNKNOWN)
|
|
||||||
mode = (char_u *)"nvo";
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mode = tv_get_string_buf(&argvars[1], buf);
|
|
||||||
if (argvars[2].v_type != VAR_UNKNOWN)
|
|
||||||
abbr = (int)tv_get_bool(&argvars[2]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (map_to_exists(name, mode, abbr))
|
|
||||||
rettv->vval.v_number = TRUE;
|
|
||||||
else
|
|
||||||
rettv->vval.v_number = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* "highlightID(name)" function
|
* "highlightID(name)" function
|
||||||
*/
|
*/
|
||||||
|
44
src/map.c
44
src/map.c
@@ -908,13 +908,13 @@ get_map_mode(char_u **cmdp, int forceit)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Clear all mappings or abbreviations.
|
* Clear all mappings (":mapclear") or abbreviations (":abclear").
|
||||||
* 'abbr' should be FALSE for mappings, TRUE for abbreviations.
|
* "abbr" should be FALSE for mappings, TRUE for abbreviations.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
map_clear(
|
map_clear(
|
||||||
char_u *cmdp,
|
char_u *cmdp,
|
||||||
char_u *arg UNUSED,
|
char_u *arg,
|
||||||
int forceit,
|
int forceit,
|
||||||
int abbr)
|
int abbr)
|
||||||
{
|
{
|
||||||
@@ -929,14 +929,14 @@ map_clear(
|
|||||||
}
|
}
|
||||||
|
|
||||||
mode = get_map_mode(&cmdp, forceit);
|
mode = get_map_mode(&cmdp, forceit);
|
||||||
map_clear_int(curbuf, mode, local, abbr);
|
map_clear_mode(curbuf, mode, local, abbr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Clear all mappings in "mode".
|
* Clear all mappings in "mode".
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
map_clear_int(
|
map_clear_mode(
|
||||||
buf_T *buf, // buffer for local mappings
|
buf_T *buf, // buffer for local mappings
|
||||||
int mode, // mode in which to delete
|
int mode, // mode in which to delete
|
||||||
int local, // TRUE for buffer-local mappings
|
int local, // TRUE for buffer-local mappings
|
||||||
@@ -2272,6 +2272,40 @@ check_map(
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* "hasmapto()" function
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
f_hasmapto(typval_T *argvars, typval_T *rettv)
|
||||||
|
{
|
||||||
|
char_u *name;
|
||||||
|
char_u *mode;
|
||||||
|
char_u buf[NUMBUFLEN];
|
||||||
|
int abbr = FALSE;
|
||||||
|
|
||||||
|
if (in_vim9script()
|
||||||
|
&& (check_for_string_arg(argvars, 0) == FAIL
|
||||||
|
|| check_for_opt_string_arg(argvars, 1) == FAIL
|
||||||
|
|| (argvars[1].v_type != VAR_UNKNOWN
|
||||||
|
&& check_for_opt_bool_arg(argvars, 2) == FAIL)))
|
||||||
|
return;
|
||||||
|
|
||||||
|
name = tv_get_string(&argvars[0]);
|
||||||
|
if (argvars[1].v_type == VAR_UNKNOWN)
|
||||||
|
mode = (char_u *)"nvo";
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mode = tv_get_string_buf(&argvars[1], buf);
|
||||||
|
if (argvars[2].v_type != VAR_UNKNOWN)
|
||||||
|
abbr = (int)tv_get_bool(&argvars[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (map_to_exists(name, mode, abbr))
|
||||||
|
rettv->vval.v_number = TRUE;
|
||||||
|
else
|
||||||
|
rettv->vval.v_number = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fill in the empty dictionary with items as defined by maparg builtin.
|
* Fill in the empty dictionary with items as defined by maparg builtin.
|
||||||
*/
|
*/
|
||||||
|
@@ -3,7 +3,7 @@ mapblock_T *get_maphash_list(int state, int c);
|
|||||||
mapblock_T *get_buf_maphash_list(int state, int c);
|
mapblock_T *get_buf_maphash_list(int state, int c);
|
||||||
int is_maphash_valid(void);
|
int is_maphash_valid(void);
|
||||||
int do_map(int maptype, char_u *arg, int mode, int abbrev);
|
int do_map(int maptype, char_u *arg, int mode, int abbrev);
|
||||||
void map_clear_int(buf_T *buf, int mode, int local, int abbr);
|
void map_clear_mode(buf_T *buf, int mode, int local, int abbr);
|
||||||
int mode_str2flags(char_u *modechars);
|
int mode_str2flags(char_u *modechars);
|
||||||
int map_to_exists(char_u *str, char_u *modechars, int abbr);
|
int map_to_exists(char_u *str, char_u *modechars, int abbr);
|
||||||
int map_to_exists_mode(char_u *rhs, int mode, int abbr);
|
int map_to_exists_mode(char_u *rhs, int mode, int abbr);
|
||||||
@@ -17,6 +17,7 @@ int makemap(FILE *fd, buf_T *buf);
|
|||||||
int put_escstr(FILE *fd, char_u *strstart, int what);
|
int put_escstr(FILE *fd, char_u *strstart, int what);
|
||||||
void check_map_keycodes(void);
|
void check_map_keycodes(void);
|
||||||
char_u *check_map(char_u *keys, int mode, int exact, int ign_mod, int abbr, mapblock_T **mp_ptr, int *local_ptr);
|
char_u *check_map(char_u *keys, int mode, int exact, int ign_mod, int abbr, mapblock_T **mp_ptr, int *local_ptr);
|
||||||
|
void f_hasmapto(typval_T *argvars, typval_T *rettv);
|
||||||
void f_maplist(typval_T *argvars, typval_T *rettv);
|
void f_maplist(typval_T *argvars, typval_T *rettv);
|
||||||
void f_maparg(typval_T *argvars, typval_T *rettv);
|
void f_maparg(typval_T *argvars, typval_T *rettv);
|
||||||
void f_mapcheck(typval_T *argvars, typval_T *rettv);
|
void f_mapcheck(typval_T *argvars, typval_T *rettv);
|
||||||
|
@@ -735,6 +735,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
2,
|
||||||
/**/
|
/**/
|
||||||
1,
|
1,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user