mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
patch 7.4.1285
Problem: Cannot measure elapsed time. Solution: Add reltimefloat().
This commit is contained in:
24
src/eval.c
24
src/eval.c
@@ -690,6 +690,9 @@ static void f_pyeval(typval_T *argvars, typval_T *rettv);
|
|||||||
static void f_range(typval_T *argvars, typval_T *rettv);
|
static void f_range(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_readfile(typval_T *argvars, typval_T *rettv);
|
static void f_readfile(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_reltime(typval_T *argvars, typval_T *rettv);
|
static void f_reltime(typval_T *argvars, typval_T *rettv);
|
||||||
|
#ifdef FEAT_FLOAT
|
||||||
|
static void f_reltimefloat(typval_T *argvars, typval_T *rettv);
|
||||||
|
#endif
|
||||||
static void f_reltimestr(typval_T *argvars, typval_T *rettv);
|
static void f_reltimestr(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_remote_expr(typval_T *argvars, typval_T *rettv);
|
static void f_remote_expr(typval_T *argvars, typval_T *rettv);
|
||||||
static void f_remote_foreground(typval_T *argvars, typval_T *rettv);
|
static void f_remote_foreground(typval_T *argvars, typval_T *rettv);
|
||||||
@@ -8270,6 +8273,7 @@ static struct fst
|
|||||||
{"range", 1, 3, f_range},
|
{"range", 1, 3, f_range},
|
||||||
{"readfile", 1, 3, f_readfile},
|
{"readfile", 1, 3, f_readfile},
|
||||||
{"reltime", 0, 2, f_reltime},
|
{"reltime", 0, 2, f_reltime},
|
||||||
|
{"reltimefloat", 1, 1, f_reltimefloat},
|
||||||
{"reltimestr", 1, 1, f_reltimestr},
|
{"reltimestr", 1, 1, f_reltimestr},
|
||||||
{"remote_expr", 2, 3, f_remote_expr},
|
{"remote_expr", 2, 3, f_remote_expr},
|
||||||
{"remote_foreground", 1, 1, f_remote_foreground},
|
{"remote_foreground", 1, 1, f_remote_foreground},
|
||||||
@@ -16010,6 +16014,26 @@ f_reltime(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef FEAT_FLOAT
|
||||||
|
/*
|
||||||
|
* "reltimefloat()" function
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
f_reltimefloat(typval_T *argvars UNUSED, typval_T *rettv)
|
||||||
|
{
|
||||||
|
# ifdef FEAT_RELTIME
|
||||||
|
proftime_T tm;
|
||||||
|
# endif
|
||||||
|
|
||||||
|
rettv->v_type = VAR_FLOAT;
|
||||||
|
rettv->vval.v_float = 0;
|
||||||
|
# ifdef FEAT_RELTIME
|
||||||
|
if (list2proftime(&argvars[0], &tm) == OK)
|
||||||
|
rettv->vval.v_float = profile_float(&tm);
|
||||||
|
# endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* "reltimestr()" function
|
* "reltimestr()" function
|
||||||
*/
|
*/
|
||||||
|
@@ -1010,6 +1010,24 @@ profile_msg(proftime_T *tm)
|
|||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# if defined(FEAT_FLOAT) || defined(PROTO)
|
||||||
|
/*
|
||||||
|
* Return a float that represents the time in "tm".
|
||||||
|
*/
|
||||||
|
float_T
|
||||||
|
profile_float(proftime_T *tm)
|
||||||
|
{
|
||||||
|
# ifdef WIN3264
|
||||||
|
LARGE_INTEGER fr;
|
||||||
|
|
||||||
|
QueryPerformanceFrequency(&fr);
|
||||||
|
return (float_T)tm->QuadPart / (float_T)fr.QuadPart;
|
||||||
|
# else
|
||||||
|
return (float_T)tm->tv_sec + (float_T)tm->tv_usec / 1000000.0;
|
||||||
|
# endif
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Put the time "msec" past now in "tm".
|
* Put the time "msec" past now in "tm".
|
||||||
*/
|
*/
|
||||||
|
@@ -14,6 +14,7 @@ void profile_start(proftime_T *tm);
|
|||||||
void profile_end(proftime_T *tm);
|
void profile_end(proftime_T *tm);
|
||||||
void profile_sub(proftime_T *tm, proftime_T *tm2);
|
void profile_sub(proftime_T *tm, proftime_T *tm2);
|
||||||
char *profile_msg(proftime_T *tm);
|
char *profile_msg(proftime_T *tm);
|
||||||
|
float_T profile_float(proftime_T *tm);
|
||||||
void profile_setlimit(long msec, proftime_T *tm);
|
void profile_setlimit(long msec, proftime_T *tm);
|
||||||
int profile_passed_limit(proftime_T *tm);
|
int profile_passed_limit(proftime_T *tm);
|
||||||
void profile_zero(proftime_T *tm);
|
void profile_zero(proftime_T *tm);
|
||||||
|
@@ -9,6 +9,7 @@ source test_glob2regpat.vim
|
|||||||
source test_json.vim
|
source test_json.vim
|
||||||
source test_lispwords.vim
|
source test_lispwords.vim
|
||||||
source test_menu.vim
|
source test_menu.vim
|
||||||
|
source test_reltime.vim
|
||||||
source test_searchpos.vim
|
source test_searchpos.vim
|
||||||
source test_set.vim
|
source test_set.vim
|
||||||
source test_sort.vim
|
source test_sort.vim
|
||||||
|
@@ -747,6 +747,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1285,
|
||||||
/**/
|
/**/
|
||||||
1284,
|
1284,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user