@@ -97,6 +97,7 @@ static void f_getreg(typval_T *argvars, typval_T *rettv);
9797static void f_getreginfo (typval_T * argvars , typval_T * rettv );
9898static void f_getregtype (typval_T * argvars , typval_T * rettv );
9999static void f_gettagstack (typval_T * argvars , typval_T * rettv );
100+ static void f_gettext (typval_T * argvars , typval_T * rettv );
100101static void f_haslocaldir (typval_T * argvars , typval_T * rettv );
101102static void f_hasmapto (typval_T * argvars , typval_T * rettv );
102103static void f_hlID (typval_T * argvars , typval_T * rettv );
@@ -667,6 +668,7 @@ static funcentry_T global_functions[] =
667668 {"gettabvar" , 2 , 3 , FEARG_1 , ret_any , f_gettabvar },
668669 {"gettabwinvar" , 3 , 4 , FEARG_1 , ret_any , f_gettabwinvar },
669670 {"gettagstack" , 0 , 1 , FEARG_1 , ret_dict_any , f_gettagstack },
671+ {"gettext" , 1 , 1 , FEARG_1 , ret_string , f_gettext },
670672 {"getwininfo" , 0 , 1 , FEARG_1 , ret_list_dict_any , f_getwininfo },
671673 {"getwinpos" , 0 , 1 , FEARG_1 , ret_list_number , f_getwinpos },
672674 {"getwinposx" , 0 , 0 , 0 , ret_number , f_getwinposx },
@@ -3437,6 +3439,26 @@ f_gettagstack(typval_T *argvars, typval_T *rettv)
34373439 get_tagstack (wp , rettv -> vval .v_dict );
34383440}
34393441
3442+ /*
3443+ * "gettext()" function
3444+ */
3445+ static void
3446+ f_gettext (typval_T * argvars , typval_T * rettv )
3447+ {
3448+ if (argvars [0 ].v_type != VAR_STRING
3449+ || argvars [0 ].vval .v_string == NULL
3450+ || * argvars [0 ].vval .v_string == NUL )
3451+ {
3452+ semsg (_ (e_invarg2 ), tv_get_string (& argvars [0 ]));
3453+ }
3454+ else
3455+ {
3456+ rettv -> v_type = VAR_STRING ;
3457+ rettv -> vval .v_string = vim_strsave (
3458+ (char_u * )_ (argvars [0 ].vval .v_string ));
3459+ }
3460+ }
3461+
34403462// for VIM_VERSION_ defines
34413463#include "version.h"
34423464
0 commit comments