@@ -45,6 +45,7 @@ static void f_did_filetype(typval_T *argvars, typval_T *rettv);
4545static void f_echoraw (typval_T * argvars , typval_T * rettv );
4646static void f_empty (typval_T * argvars , typval_T * rettv );
4747static void f_environ (typval_T * argvars , typval_T * rettv );
48+ static void f_err_teapot (typval_T * argvars , typval_T * rettv );
4849static void f_escape (typval_T * argvars , typval_T * rettv );
4950static void f_eval (typval_T * argvars , typval_T * rettv );
5051static void f_eventhandler (typval_T * argvars , typval_T * rettv );
@@ -1881,6 +1882,8 @@ static funcentry_T global_functions[] =
18811882 ret_number_bool , f_empty },
18821883 {"environ" , 0 , 0 , 0 , NULL ,
18831884 ret_dict_string , f_environ },
1885+ {"err_teapot" , 0 , 1 , 0 , NULL ,
1886+ ret_number_bool , f_err_teapot },
18841887 {"escape" , 2 , 2 , FEARG_1 , arg2_string ,
18851888 ret_string , f_escape },
18861889 {"eval" , 1 , 1 , FEARG_1 , arg1_string ,
@@ -3922,6 +3925,33 @@ f_environ(typval_T *argvars UNUSED, typval_T *rettv)
39223925#endif
39233926}
39243927
3928+ /*
3929+ * "err_teapot()" function
3930+ */
3931+ static void
3932+ f_err_teapot (typval_T * argvars , typval_T * rettv UNUSED )
3933+ {
3934+ if (argvars [0 ].v_type != VAR_UNKNOWN )
3935+ {
3936+ if (argvars [0 ].v_type == VAR_STRING )
3937+ {
3938+ char_u * s = tv_get_string_strict (& argvars [0 ]);
3939+ if (s == NULL || * skipwhite (s ) == NUL )
3940+ return ;
3941+ }
3942+
3943+ int err = FALSE;
3944+ int do_503 = eval_expr_to_bool (& argvars [0 ], & err );
3945+ if (!err && do_503 )
3946+ {
3947+ emsg (_ (e_coffee_currently_not_available ));
3948+ return ;
3949+ }
3950+ }
3951+
3952+ emsg (_ (e_im_a_teapot ));
3953+ }
3954+
39253955/*
39263956 * "escape({string}, {chars})" function
39273957 */
@@ -6456,6 +6486,14 @@ f_has(typval_T *argvars, typval_T *rettv)
64566486 1
64576487#else
64586488 0
6489+ #endif
6490+ },
6491+ {":tearoff" ,
6492+ // same #ifdef as used for ex_tearoff().
6493+ #if defined(FEAT_GUI_MSWIN ) && defined (FEAT_MENU ) && defined (FEAT_TEAROFF )
6494+ 1
6495+ #else
6496+ 0
64596497#endif
64606498 },
64616499 {NULL , 0 }
0 commit comments