comparison src/evalfunc.c @ 29318:fcf524e1e97e v9.0.0002

patch 9.0.0002: map functionality outside of map.c Commit: https://github.com/vim/vim/commit/c207fd2535717030d78f9b92839e5f2ac004cc78 Author: zeertzjq <zeertzjq@outlook.com> Date: Wed Jun 29 10:37:40 2022 +0100 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 https://github.com/vim/vim/issues/10611)
author Bram Moolenaar <Bram@vim.org>
date Wed, 29 Jun 2022 11:45:04 +0200
parents fb375f0c6ea7
children 60977de70684
comparison
equal deleted inserted replaced
29317:01ef523fec06 29318:fcf524e1e97e
73 static void f_getreginfo(typval_T *argvars, typval_T *rettv); 73 static void f_getreginfo(typval_T *argvars, typval_T *rettv);
74 static void f_getregtype(typval_T *argvars, typval_T *rettv); 74 static void f_getregtype(typval_T *argvars, typval_T *rettv);
75 static void f_gettagstack(typval_T *argvars, typval_T *rettv); 75 static void f_gettagstack(typval_T *argvars, typval_T *rettv);
76 static void f_gettext(typval_T *argvars, typval_T *rettv); 76 static void f_gettext(typval_T *argvars, typval_T *rettv);
77 static void f_haslocaldir(typval_T *argvars, typval_T *rettv); 77 static void f_haslocaldir(typval_T *argvars, typval_T *rettv);
78 static void f_hasmapto(typval_T *argvars, typval_T *rettv);
79 static void f_hlID(typval_T *argvars, typval_T *rettv); 78 static void f_hlID(typval_T *argvars, typval_T *rettv);
80 static void f_hlexists(typval_T *argvars, typval_T *rettv); 79 static void f_hlexists(typval_T *argvars, typval_T *rettv);
81 static void f_hostname(typval_T *argvars, typval_T *rettv); 80 static void f_hostname(typval_T *argvars, typval_T *rettv);
82 static void f_index(typval_T *argvars, typval_T *rettv); 81 static void f_index(typval_T *argvars, typval_T *rettv);
83 static void f_input(typval_T *argvars, typval_T *rettv); 82 static void f_input(typval_T *argvars, typval_T *rettv);
6652 else 6651 else
6653 rettv->vval.v_number = 0; 6652 rettv->vval.v_number = 0;
6654 } 6653 }
6655 6654
6656 /* 6655 /*
6657 * "hasmapto()" function
6658 */
6659 static void
6660 f_hasmapto(typval_T *argvars, typval_T *rettv)
6661 {
6662 char_u *name;
6663 char_u *mode;
6664 char_u buf[NUMBUFLEN];
6665 int abbr = FALSE;
6666
6667 if (in_vim9script()
6668 && (check_for_string_arg(argvars, 0) == FAIL
6669 || check_for_opt_string_arg(argvars, 1) == FAIL
6670 || (argvars[1].v_type != VAR_UNKNOWN
6671 && check_for_opt_bool_arg(argvars, 2) == FAIL)))
6672 return;
6673
6674 name = tv_get_string(&argvars[0]);
6675 if (argvars[1].v_type == VAR_UNKNOWN)
6676 mode = (char_u *)"nvo";
6677 else
6678 {
6679 mode = tv_get_string_buf(&argvars[1], buf);
6680 if (argvars[2].v_type != VAR_UNKNOWN)
6681 abbr = (int)tv_get_bool(&argvars[2]);
6682 }
6683
6684 if (map_to_exists(name, mode, abbr))
6685 rettv->vval.v_number = TRUE;
6686 else
6687 rettv->vval.v_number = FALSE;
6688 }
6689
6690 /*
6691 * "highlightID(name)" function 6656 * "highlightID(name)" function
6692 */ 6657 */
6693 static void 6658 static void
6694 f_hlID(typval_T *argvars, typval_T *rettv) 6659 f_hlID(typval_T *argvars, typval_T *rettv)
6695 { 6660 {