diff src/evalfunc.c @ 11105:7c7e496e625d v8.0.0440

patch 8.0.0440: not enough test coverage in Insert mode commit https://github.com/vim/vim/commit/eb992cb90fd79c77ad2743459ac898e6ac3de939 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Mar 9 18:20:16 2017 +0100 patch 8.0.0440: not enough test coverage in Insert mode Problem: Not enough test coverage in Insert mode. Solution: Add lots of tests. Add test_override(). (Christian Brabandt, closes #1521)
author Christian Brabandt <cb@256bit.org>
date Thu, 09 Mar 2017 18:30:07 +0100
parents 50f3e37bc210
children 778c10516955
line wrap: on
line diff
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -390,7 +390,7 @@ static void f_tagfiles(typval_T *argvars
 static void f_tempname(typval_T *argvars, typval_T *rettv);
 static void f_test_alloc_fail(typval_T *argvars, typval_T *rettv);
 static void f_test_autochdir(typval_T *argvars, typval_T *rettv);
-static void f_test_disable_char_avail(typval_T *argvars, typval_T *rettv);
+static void f_test_override(typval_T *argvars, typval_T *rettv);
 static void f_test_garbagecollect_now(typval_T *argvars, typval_T *rettv);
 static void f_test_ignore_error(typval_T *argvars, typval_T *rettv);
 #ifdef FEAT_JOB_CHANNEL
@@ -828,7 +828,6 @@ static struct fst
     {"tempname",	0, 0, f_tempname},
     {"test_alloc_fail",	3, 3, f_test_alloc_fail},
     {"test_autochdir",	0, 0, f_test_autochdir},
-    {"test_disable_char_avail", 1, 1, f_test_disable_char_avail},
     {"test_garbagecollect_now",	0, 0, f_test_garbagecollect_now},
     {"test_ignore_error",	1, 1, f_test_ignore_error},
 #ifdef FEAT_JOB_CHANNEL
@@ -841,6 +840,7 @@ static struct fst
     {"test_null_list",	0, 0, f_test_null_list},
     {"test_null_partial", 0, 0, f_test_null_partial},
     {"test_null_string", 0, 0, f_test_null_string},
+    {"test_override",    2, 2, f_test_override},
     {"test_settime",	1, 1, f_test_settime},
 #ifdef FEAT_TIMERS
     {"timer_info",	0, 1, f_timer_info},
@@ -12326,12 +12326,34 @@ f_test_autochdir(typval_T *argvars UNUSE
 }
 
 /*
- * "test_disable_char_avail({expr})" function
- */
-    static void
-f_test_disable_char_avail(typval_T *argvars, typval_T *rettv UNUSED)
-{
-    disable_char_avail_for_testing = (int)get_tv_number(&argvars[0]);
+ * "test_disable({name}, {val})" function
+ */
+    static void
+f_test_override(typval_T *argvars, typval_T *rettv UNUSED)
+{
+    char_u *name = (char_u *)"";
+    int     val;
+
+    if (argvars[0].v_type != VAR_STRING
+	    || (argvars[1].v_type) != VAR_NUMBER)
+	EMSG(_(e_invarg));
+    else
+    {
+	name = get_tv_string_chk(&argvars[0]);
+	val = (int)get_tv_number(&argvars[1]);
+
+	if (STRCMP(name, (char_u *)"redraw") == 0)
+	    disable_redraw_for_testing = val;
+	else if (STRCMP(name, (char_u *)"char_avail") == 0)
+	    disable_char_avail_for_testing = val;
+	else if (STRCMP(name, (char_u *)"ALL") == 0)
+	{
+	    disable_char_avail_for_testing = FALSE;
+	    disable_redraw_for_testing = FALSE;
+	}
+	else
+	    EMSG2(_(e_invarg2), name);
+    }
 }
 
 /*