summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-12-16 17:10:33 +0100
committerBram Moolenaar <Bram@vim.org>2019-12-16 17:10:33 +0100
commitddef129160ff0676e5da482071fb2fdc2988ac34 (patch)
tree8a7e0327a604dda5257739139ef271b587a345e9
parent559b9c68fe550f3af63d42e0838622aab1ceb1b3 (diff)
downloadvim-git-ddef129160ff0676e5da482071fb2fdc2988ac34.tar.gz
patch 8.2.0013: not using a typedef for condstackv8.2.0013
Problem: Not using a typedef for condstack. Solution: Add a typedef.
-rw-r--r--src/ex_cmds.h2
-rw-r--r--src/ex_docmd.c42
-rw-r--r--src/ex_eval.c42
-rw-r--r--src/proto/ex_eval.pro10
-rw-r--r--src/structs.h7
-rw-r--r--src/userfunc.c2
-rw-r--r--src/version.c2
7 files changed, 54 insertions, 53 deletions
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index 983378ccc..14b43bda4 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -1841,7 +1841,7 @@ struct exarg
char_u *(*getline)(int, void *, int, int);
void *cookie; // argument for getline()
#ifdef FEAT_EVAL
- struct condstack *cstack; // condition stack for ":if" etc.
+ cstack_T *cstack; // condition stack for ":if" etc.
#endif
long verbose_save; // saved value of p_verbose
int save_msg_silent; // saved value of msg_silent
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index fb07450f8..ba5164066 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -20,7 +20,7 @@ static int ex_pressedreturn = FALSE;
#endif
#ifdef FEAT_EVAL
-static char_u *do_one_cmd(char_u **, int, struct condstack *, char_u *(*fgetline)(int, void *, int, int), void *cookie);
+static char_u *do_one_cmd(char_u **, int, cstack_T *, char_u *(*fgetline)(int, void *, int, int), void *cookie);
#else
static char_u *do_one_cmd(char_u **, int, char_u *(*fgetline)(int, void *, int, int), void *cookie);
static int if_level = 0; // depth in :if
@@ -623,7 +623,7 @@ do_cmdline(
int did_inc = FALSE; // incremented RedrawingDisabled
int retval = OK;
#ifdef FEAT_EVAL
- struct condstack cstack; // conditional stack
+ cstack_T cstack; // conditional stack
garray_T lines_ga; // keep lines for ":while"/":for"
int current_line = 0; // active line in lines_ga
char_u *fname = NULL; // function or script name
@@ -671,7 +671,7 @@ do_cmdline(
#ifdef FEAT_EVAL
// When converting to an exception, we do not include the command name
// since this is not an error of the specific command.
- do_errthrow((struct condstack *)NULL, (char_u *)NULL);
+ do_errthrow((cstack_T *)NULL, (char_u *)NULL);
msg_list = saved_msg_list;
#endif
return FAIL;
@@ -1628,25 +1628,25 @@ current_tab_nr(tabpage_T *tab)
#endif
static char_u *
do_one_cmd(
- char_u **cmdlinep,
- int sourcing,
+ char_u **cmdlinep,
+ int sourcing,
#ifdef FEAT_EVAL
- struct condstack *cstack,
-#endif
- char_u *(*fgetline)(int, void *, int, int),
- void *cookie) // argument for fgetline()
-{
- char_u *p;
- linenr_T lnum;
- long n;
- char *errormsg = NULL; // error message
- char_u *after_modifier = NULL;
- exarg_T ea; // Ex command arguments
- int save_msg_scroll = msg_scroll;
- cmdmod_T save_cmdmod;
- int save_reg_executing = reg_executing;
- int ni; // set when Not Implemented
- char_u *cmd;
+ cstack_T *cstack,
+#endif
+ char_u *(*fgetline)(int, void *, int, int),
+ void *cookie) // argument for fgetline()
+{
+ char_u *p;
+ linenr_T lnum;
+ long n;
+ char *errormsg = NULL; // error message
+ char_u *after_modifier = NULL;
+ exarg_T ea; // Ex command arguments
+ int save_msg_scroll = msg_scroll;
+ cmdmod_T save_cmdmod;
+ int save_reg_executing = reg_executing;
+ int ni; // set when Not Implemented
+ char_u *cmd;
vim_memset(&ea, 0, sizeof(ea));
ea.line1 = 1;
diff --git a/src/ex_eval.c b/src/ex_eval.c
index 645b27d8c..4d76572dc 100644
--- a/src/ex_eval.c
+++ b/src/ex_eval.c
@@ -16,7 +16,7 @@
#if defined(FEAT_EVAL) || defined(PROTO)
static int throw_exception(void *, except_type_T, char_u *);
-static char *get_end_emsg(struct condstack *cstack);
+static char *get_end_emsg(cstack_T *cstack);
/*
* Exception handling terms:
@@ -330,7 +330,7 @@ free_global_msglist(void)
* has returned (see do_one_cmd()).
*/
void
-do_errthrow(struct condstack *cstack, char_u *cmdname)
+do_errthrow(cstack_T *cstack, char_u *cmdname)
{
/*
* Ensure that all commands in nested function calls and sourced files
@@ -365,7 +365,7 @@ do_errthrow(struct condstack *cstack, char_u *cmdname)
* FALSE otherwise.
*/
int
-do_intthrow(struct condstack *cstack)
+do_intthrow(cstack_T *cstack)
{
/*
* If no interrupt occurred or no try conditional is active and no exception
@@ -892,7 +892,7 @@ ex_if(exarg_T *eap)
int error;
int skip;
int result;
- struct condstack *cstack = eap->cstack;
+ cstack_T *cstack = eap->cstack;
if (cstack->cs_idx == CSTACK_LEN - 1)
eap->errmsg = N_("E579: :if nesting too deep");
@@ -960,7 +960,7 @@ ex_else(exarg_T *eap)
int error;
int skip;
int result;
- struct condstack *cstack = eap->cstack;
+ cstack_T *cstack = eap->cstack;
/*
* Don't do something after an error, interrupt, or throw, or when there is
@@ -1051,7 +1051,7 @@ ex_while(exarg_T *eap)
int error;
int skip;
int result;
- struct condstack *cstack = eap->cstack;
+ cstack_T *cstack = eap->cstack;
if (cstack->cs_idx == CSTACK_LEN - 1)
eap->errmsg = N_("E585: :while/:for nesting too deep");
@@ -1148,7 +1148,7 @@ ex_while(exarg_T *eap)
ex_continue(exarg_T *eap)
{
int idx;
- struct condstack *cstack = eap->cstack;
+ cstack_T *cstack = eap->cstack;
if (cstack->cs_looplevel <= 0 || cstack->cs_idx < 0)
eap->errmsg = N_("E586: :continue without :while or :for");
@@ -1186,7 +1186,7 @@ ex_continue(exarg_T *eap)
ex_break(exarg_T *eap)
{
int idx;
- struct condstack *cstack = eap->cstack;
+ cstack_T *cstack = eap->cstack;
if (cstack->cs_looplevel <= 0 || cstack->cs_idx < 0)
eap->errmsg = N_("E587: :break without :while or :for");
@@ -1211,11 +1211,11 @@ ex_break(exarg_T *eap)
void
ex_endwhile(exarg_T *eap)
{
- struct condstack *cstack = eap->cstack;
- int idx;
- char *err;
- int csf;
- int fl;
+ cstack_T *cstack = eap->cstack;
+ int idx;
+ char *err;
+ int csf;
+ int fl;
if (eap->cmdidx == CMD_endwhile)
{
@@ -1325,7 +1325,7 @@ ex_throw(exarg_T *eap)
* used for rethrowing an uncaught exception.
*/
void
-do_throw(struct condstack *cstack)
+do_throw(cstack_T *cstack)
{
int idx;
int inactivate_try = FALSE;
@@ -1409,7 +1409,7 @@ do_throw(struct condstack *cstack)
ex_try(exarg_T *eap)
{
int skip;
- struct condstack *cstack = eap->cstack;
+ cstack_T *cstack = eap->cstack;
if (cstack->cs_idx == CSTACK_LEN - 1)
eap->errmsg = N_("E601: :try nesting too deep");
@@ -1486,7 +1486,7 @@ ex_catch(exarg_T *eap)
char_u *save_cpo;
regmatch_T regmatch;
int prev_got_int;
- struct condstack *cstack = eap->cstack;
+ cstack_T *cstack = eap->cstack;
char_u *pat;
if (cstack->cs_trylevel <= 0 || cstack->cs_idx < 0)
@@ -1644,7 +1644,7 @@ ex_finally(exarg_T *eap)
int idx;
int skip = FALSE;
int pending = CSTP_NONE;
- struct condstack *cstack = eap->cstack;
+ cstack_T *cstack = eap->cstack;
if (cstack->cs_trylevel <= 0 || cstack->cs_idx < 0)
eap->errmsg = N_("E606: :finally without :try");
@@ -1773,7 +1773,7 @@ ex_endtry(exarg_T *eap)
int rethrow = FALSE;
int pending = CSTP_NONE;
void *rettv = NULL;
- struct condstack *cstack = eap->cstack;
+ cstack_T *cstack = eap->cstack;
if (cstack->cs_trylevel <= 0 || cstack->cs_idx < 0)
eap->errmsg = N_("E602: :endtry without :try");
@@ -2113,7 +2113,7 @@ leave_cleanup(cleanup_T *csp)
*/
int
cleanup_conditionals(
- struct condstack *cstack,
+ cstack_T *cstack,
int searched_cond,
int inclusive)
{
@@ -2235,7 +2235,7 @@ cleanup_conditionals(
* Return an appropriate error message for a missing endwhile/endfor/endif.
*/
static char *
-get_end_emsg(struct condstack *cstack)
+get_end_emsg(cstack_T *cstack)
{
if (cstack->cs_flags[cstack->cs_idx] & CSF_WHILE)
return e_endwhile;
@@ -2254,7 +2254,7 @@ get_end_emsg(struct condstack *cstack)
*/
void
rewind_conditionals(
- struct condstack *cstack,
+ cstack_T *cstack,
int idx,
int cond_type,
int *cond_level)
diff --git a/src/proto/ex_eval.pro b/src/proto/ex_eval.pro
index 2b6bdc6b4..bd68eeaba 100644
--- a/src/proto/ex_eval.pro
+++ b/src/proto/ex_eval.pro
@@ -5,8 +5,8 @@ int should_abort(int retcode);
int aborted_in_try(void);
int cause_errthrow(char_u *mesg, int severe, int *ignore);
void free_global_msglist(void);
-void do_errthrow(struct condstack *cstack, char_u *cmdname);
-int do_intthrow(struct condstack *cstack);
+void do_errthrow(cstack_T *cstack, char_u *cmdname);
+int do_intthrow(cstack_T *cstack);
char *get_exception_string(void *value, except_type_T type, char_u *cmdname, int *should_free);
void discard_current_exception(void);
void report_make_pending(int pending, void *value);
@@ -19,15 +19,15 @@ void ex_continue(exarg_T *eap);
void ex_break(exarg_T *eap);
void ex_endwhile(exarg_T *eap);
void ex_throw(exarg_T *eap);
-void do_throw(struct condstack *cstack);
+void do_throw(cstack_T *cstack);
void ex_try(exarg_T *eap);
void ex_catch(exarg_T *eap);
void ex_finally(exarg_T *eap);
void ex_endtry(exarg_T *eap);
void enter_cleanup(cleanup_T *csp);
void leave_cleanup(cleanup_T *csp);
-int cleanup_conditionals(struct condstack *cstack, int searched_cond, int inclusive);
-void rewind_conditionals(struct condstack *cstack, int idx, int cond_type, int *cond_level);
+int cleanup_conditionals(cstack_T *cstack, int searched_cond, int inclusive);
+void rewind_conditionals(cstack_T *cstack, int idx, int cond_type, int *cond_level);
void ex_endfunction(exarg_T *eap);
int has_loop_cmd(char_u *p);
/* vim: set ft=c : */
diff --git a/src/structs.h b/src/structs.h
index 3e5be6911..71b5c6141 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -863,8 +863,7 @@ struct eslist_elem
*/
#define CSTACK_LEN 50
-struct condstack
-{
+typedef struct {
short cs_flags[CSTACK_LEN]; // CSF_ flags
char cs_pending[CSTACK_LEN]; // CSTP_: what's pending in ":finally"
union {
@@ -878,7 +877,7 @@ struct condstack
int cs_trylevel; // nr of nested ":try"s
eslist_T *cs_emsg_silent_list; // saved values of "emsg_silent"
char cs_lflags; // loop flags: CSL_ flags
-};
+} cstack_T;
# define cs_rettv cs_pend.csp_rv
# define cs_exception cs_pend.csp_ex
@@ -912,7 +911,7 @@ struct condstack
# define CSTP_FINISH 32 // ":finish" is pending
/*
- * Flags for the cs_lflags item in struct condstack.
+ * Flags for the cs_lflags item in cstack_T.
*/
# define CSL_HAD_LOOP 1 // just found ":while" or ":for"
# define CSL_HAD_ENDLOOP 2 // just found ":endwhile" or ":endfor"
diff --git a/src/userfunc.c b/src/userfunc.c
index 020098d45..948c5f1c6 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -3234,7 +3234,7 @@ do_return(
void *rettv)
{
int idx;
- struct condstack *cstack = eap->cstack;
+ cstack_T *cstack = eap->cstack;
if (reanimate)
// Undo the return.
diff --git a/src/version.c b/src/version.c
index 27a42e05e..fec1465cc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 13,
+/**/
12,
/**/
11,