Skip to content

Commit

Permalink
Add built-in functions register_executing() and register_recording()
Browse files Browse the repository at this point in the history
  • Loading branch information
h-east committed Mar 24, 2018
1 parent 850787c commit d895946
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 0 deletions.
9 changes: 9 additions & 0 deletions runtime/doc/eval.txt
Expand Up @@ -6565,6 +6565,15 @@ readfile({fname} [, {binary} [, {max}]])
the result is an empty list.
Also see |writefile()|.

register_executing() *register_executing()*
Returns |TRUE| when the register contents are executing.
See |@|.

register_recording() *register_recording()*
Returns the named register character {0-9a-zA-Z"} when the
register contents are recording. Otherwise, an empty string
is returned. See |q|.

reltime([{start} [, {end}]]) *reltime()*
Return an item that represents a time value. The format of
the item depends on the system. It can be passed to
Expand Down
2 changes: 2 additions & 0 deletions runtime/doc/usr_41.txt
Expand Up @@ -1016,6 +1016,8 @@ Various: *various-functions*
getreg() get contents of a register
getregtype() get type of a register
setreg() set contents and type of a register
regster_executing() return the state of the register executing
regster_recording() return the state of the register recording

shiftwidth() effective value of 'shiftwidth'

Expand Down
25 changes: 25 additions & 0 deletions src/evalfunc.c
Expand Up @@ -306,6 +306,8 @@ static void f_pyxeval(typval_T *argvars, typval_T *rettv);
#endif
static void f_range(typval_T *argvars, typval_T *rettv);
static void f_readfile(typval_T *argvars, typval_T *rettv);
static void f_register_executing(typval_T *argvars, typval_T *rettv);
static void f_register_recording(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);
Expand Down Expand Up @@ -754,6 +756,8 @@ static struct fst
#endif
{"range", 1, 3, f_range},
{"readfile", 1, 3, f_readfile},
{"register_executing", 0, 0, f_register_executing},
{"register_recording", 0, 0, f_register_recording},
{"reltime", 0, 2, f_reltime},
#ifdef FEAT_FLOAT
{"reltimefloat", 1, 1, f_reltimefloat},
Expand Down Expand Up @@ -8678,6 +8682,27 @@ f_readfile(typval_T *argvars, typval_T *rettv)
fclose(fd);
}

/*
* "register_executing()" function
*/
static void
f_register_executing(typval_T *argvars, typval_T *rettv)
{
rettv->vval.v_number = Exec_reg;
}

/*
* "register_recording()" function
*/
static void
f_register_recording(typval_T *argvars, typval_T *rettv)
{
char_u regname[2] = {0, 0};
regname[0] = (char_u)Recording;
rettv->v_type = VAR_STRING;
rettv->vval.v_string = vim_strsave(regname);
}

#if defined(FEAT_RELTIME)
static int list2proftime(typval_T *arg, proftime_T *tm);

Expand Down

0 comments on commit d895946

Please sign in to comment.