diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-08-06 22:05:07 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-08-06 22:05:07 +0200 |
commit | 8e97bd74b5377753597e3d98e7123d8985c7fffd (patch) | |
tree | 25d909a542f5a015aa92d00512e46f1fb72f1ab4 /src/evalfunc.c | |
parent | 446cce6d537b036467033975a86729dbdc83f860 (diff) | |
download | vim-git-8e97bd74b5377753597e3d98e7123d8985c7fffd.tar.gz |
patch 7.4.2170v7.4.2170
Problem: Cannot get information about timers.
Solution: Add timer_info().
Diffstat (limited to 'src/evalfunc.c')
-rw-r--r-- | src/evalfunc.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c index 375453446..50fa3bf72 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -396,6 +396,7 @@ static void f_tan(typval_T *argvars, typval_T *rettv); static void f_tanh(typval_T *argvars, typval_T *rettv); #endif #ifdef FEAT_TIMERS +static void f_timer_info(typval_T *argvars, typval_T *rettv); static void f_timer_start(typval_T *argvars, typval_T *rettv); static void f_timer_stop(typval_T *argvars, typval_T *rettv); #endif @@ -815,6 +816,7 @@ static struct fst {"test_null_string", 0, 0, f_test_null_string}, {"test_settime", 1, 1, f_test_settime}, #ifdef FEAT_TIMERS + {"timer_info", 0, 1, f_timer_info}, {"timer_start", 2, 3, f_timer_start}, {"timer_stop", 1, 1, f_timer_stop}, #endif @@ -11961,6 +11963,31 @@ free_callback(char_u *callback, partial_T *partial) #ifdef FEAT_TIMERS /* + * "timer_info([timer])" function + */ + static void +f_timer_info(typval_T *argvars, typval_T *rettv) +{ + timer_T *timer = NULL; + + if (rettv_list_alloc(rettv) != OK) + return; + if (argvars[0].v_type != VAR_UNKNOWN) + { + if (argvars[0].v_type != VAR_NUMBER) + EMSG(_(e_number_exp)); + else + { + timer = find_timer((int)get_tv_number(&argvars[0])); + if (timer != NULL) + add_timer_info(rettv, timer); + } + } + else + add_timer_info_all(rettv); +} + +/* * "timer_start(time, callback [, options])" function */ static void |