forked from aniani/vim
patch 8.1.1310: named function arguments are never optional
Problem: Named function arguments are never optional. Solution: Support optional function arguments with a default value. (Andy Massimino, closes #3952)
This commit is contained in:
@@ -1402,42 +1402,43 @@ typedef struct funccall_S funccall_T;
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
int uf_varargs; /* variable nr of arguments */
|
||||
int uf_varargs; // variable nr of arguments
|
||||
int uf_flags;
|
||||
int uf_calls; /* nr of active calls */
|
||||
int uf_cleared; /* func_clear() was already called */
|
||||
garray_T uf_args; /* arguments */
|
||||
garray_T uf_lines; /* function lines */
|
||||
int uf_calls; // nr of active calls
|
||||
int uf_cleared; // func_clear() was already called
|
||||
garray_T uf_args; // arguments
|
||||
garray_T uf_def_args; // default argument expressions
|
||||
garray_T uf_lines; // function lines
|
||||
# ifdef FEAT_PROFILE
|
||||
int uf_profiling; /* TRUE when func is being profiled */
|
||||
int uf_profiling; // TRUE when func is being profiled
|
||||
int uf_prof_initialized;
|
||||
/* profiling the function as a whole */
|
||||
int uf_tm_count; /* nr of calls */
|
||||
proftime_T uf_tm_total; /* time spent in function + children */
|
||||
proftime_T uf_tm_self; /* time spent in function itself */
|
||||
proftime_T uf_tm_children; /* time spent in children this call */
|
||||
/* profiling the function per line */
|
||||
int *uf_tml_count; /* nr of times line was executed */
|
||||
proftime_T *uf_tml_total; /* time spent in a line + children */
|
||||
proftime_T *uf_tml_self; /* time spent in a line itself */
|
||||
proftime_T uf_tml_start; /* start time for current line */
|
||||
proftime_T uf_tml_children; /* time spent in children for this line */
|
||||
proftime_T uf_tml_wait; /* start wait time for current line */
|
||||
int uf_tml_idx; /* index of line being timed; -1 if none */
|
||||
int uf_tml_execed; /* line being timed was executed */
|
||||
// profiling the function as a whole
|
||||
int uf_tm_count; // nr of calls
|
||||
proftime_T uf_tm_total; // time spent in function + children
|
||||
proftime_T uf_tm_self; // time spent in function itself
|
||||
proftime_T uf_tm_children; // time spent in children this call
|
||||
// profiling the function per line
|
||||
int *uf_tml_count; // nr of times line was executed
|
||||
proftime_T *uf_tml_total; // time spent in a line + children
|
||||
proftime_T *uf_tml_self; // time spent in a line itself
|
||||
proftime_T uf_tml_start; // start time for current line
|
||||
proftime_T uf_tml_children; // time spent in children for this line
|
||||
proftime_T uf_tml_wait; // start wait time for current line
|
||||
int uf_tml_idx; // index of line being timed; -1 if none
|
||||
int uf_tml_execed; // line being timed was executed
|
||||
# endif
|
||||
sctx_T uf_script_ctx; /* SCTX where function was defined,
|
||||
used for s: variables */
|
||||
int uf_refcount; /* reference count, see func_name_refcount() */
|
||||
funccall_T *uf_scoped; /* l: local variables for closure */
|
||||
char_u uf_name[1]; /* name of function (actually longer); can
|
||||
start with <SNR>123_ (<SNR> is K_SPECIAL
|
||||
KS_EXTRA KE_SNR) */
|
||||
sctx_T uf_script_ctx; // SCTX where function was defined,
|
||||
// used for s: variables
|
||||
int uf_refcount; // reference count, see func_name_refcount()
|
||||
funccall_T *uf_scoped; // l: local variables for closure
|
||||
char_u uf_name[1]; // name of function (actually longer); can
|
||||
// start with <SNR>123_ (<SNR> is K_SPECIAL
|
||||
// KS_EXTRA KE_SNR)
|
||||
} ufunc_T;
|
||||
|
||||
#define MAX_FUNC_ARGS 20 /* maximum number of function arguments */
|
||||
#define VAR_SHORT_LEN 20 /* short variable name length */
|
||||
#define FIXVAR_CNT 12 /* number of fixed variables */
|
||||
#define MAX_FUNC_ARGS 20 // maximum number of function arguments
|
||||
#define VAR_SHORT_LEN 20 // short variable name length
|
||||
#define FIXVAR_CNT 12 // number of fixed variables
|
||||
|
||||
/* structure to hold info for a function that is currently being executed. */
|
||||
struct funccall_S
|
||||
|
Reference in New Issue
Block a user