diff options
-rw-r--r-- | runtime/doc/eval.txt | 6 | ||||
-rw-r--r-- | src/buffer.c | 9 | ||||
-rw-r--r-- | src/evalfunc.c | 21 | ||||
-rw-r--r-- | src/testdir/test_options.vim | 6 | ||||
-rw-r--r-- | src/version.c | 2 |
5 files changed, 41 insertions, 3 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index eb7a8211f..e43f57bc0 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -2701,6 +2701,7 @@ test_alloc_fail({id}, {countdown}, {repeat}) test_autochdir() none enable 'autochdir' during startup test_feedinput({string}) none add key sequence to input buffer test_garbagecollect_now() none free memory right now for testing +test_getvalue({string}) any get value of an internal variable test_ignore_error({expr}) none ignore a specific error test_null_blob() Blob null value for testing test_null_channel() Channel null value for testing @@ -9894,6 +9895,11 @@ test_garbagecollect_now() *test_garbagecollect_now()* internally, and |v:testing| must have been set before calling any function. +test_getvalue({name}) *test_getvalue()* + Get the value of an internal variable. These values for + {name} are supported: + need_fileinfo + test_ignore_error({expr}) *test_ignore_error()* Ignore any error containing {expr}. A normal message is given instead. diff --git a/src/buffer.c b/src/buffer.c index e825a99a4..e10368483 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1742,9 +1742,12 @@ enter_buffer(buf_T *buf) } else { - if (!msg_silent) - need_fileinfo = TRUE; /* display file info after redraw */ - (void)buf_check_timestamp(curbuf, FALSE); /* check if file changed */ + if (!msg_silent && !shortmess(SHM_FILEINFO)) + need_fileinfo = TRUE; // display file info after redraw + + // check if file changed + (void)buf_check_timestamp(curbuf, FALSE); + curwin->w_topline = 1; #ifdef FEAT_DIFF curwin->w_topfill = 0; diff --git a/src/evalfunc.c b/src/evalfunc.c index 0dbd6514e..b5a6d685c 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -442,6 +442,7 @@ 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_feedinput(typval_T *argvars, typval_T *rettv); +static void f_test_getvalue(typval_T *argvars, typval_T *rettv); static void f_test_option_not_set(typval_T *argvars, typval_T *rettv); static void f_test_override(typval_T *argvars, typval_T *rettv); static void f_test_refcount(typval_T *argvars, typval_T *rettv); @@ -991,6 +992,7 @@ static struct fst {"test_autochdir", 0, 0, f_test_autochdir}, {"test_feedinput", 1, 1, f_test_feedinput}, {"test_garbagecollect_now", 0, 0, f_test_garbagecollect_now}, + {"test_getvalue", 1, 1, f_test_getvalue}, {"test_ignore_error", 1, 1, f_test_ignore_error}, {"test_null_blob", 0, 0, f_test_null_blob}, #ifdef FEAT_JOB_CHANNEL @@ -14413,6 +14415,25 @@ f_test_feedinput(typval_T *argvars, typval_T *rettv UNUSED) } /* + * "test_getvalue({name})" function + */ + static void +f_test_getvalue(typval_T *argvars, typval_T *rettv) +{ + if (argvars[0].v_type != VAR_STRING) + emsg(_(e_invarg)); + else + { + char_u *name = tv_get_string(&argvars[0]); + + if (STRCMP(name, (char_u *)"need_fileinfo") == 0) + rettv->vval.v_number = need_fileinfo; + else + semsg(_(e_invarg2), name); + } +} + +/* * "test_option_not_set({name})" function */ static void diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim index 6cc0c1a18..c5dbb9f4c 100644 --- a/src/testdir/test_options.vim +++ b/src/testdir/test_options.vim @@ -470,13 +470,19 @@ func Test_shortmess_F2() call assert_match('file2', execute('bn', '')) set shortmess+=F call assert_true(empty(execute('bn', ''))) + call assert_false(test_getvalue('need_fileinfo')) call assert_true(empty(execute('bn', ''))) + call assert_false(test_getvalue('need_fileinfo')) set hidden call assert_true(empty(execute('bn', ''))) + call assert_false(test_getvalue('need_fileinfo')) call assert_true(empty(execute('bn', ''))) + call assert_false(test_getvalue('need_fileinfo')) set nohidden call assert_true(empty(execute('bn', ''))) + call assert_false(test_getvalue('need_fileinfo')) call assert_true(empty(execute('bn', ''))) + call assert_false(test_getvalue('need_fileinfo')) set shortmess& call assert_match('file1', execute('bn', '')) call assert_match('file2', execute('bn', '')) diff --git a/src/version.c b/src/version.c index 3a6c0c008..ad16cd570 100644 --- a/src/version.c +++ b/src/version.c @@ -768,6 +768,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1334, +/**/ 1333, /**/ 1332, |