changeset 18904:2bdc2e1f6e1f v8.2.0013

patch 8.2.0013: not using a typedef for condstack Commit: https://github.com/vim/vim/commit/ddef129160ff0676e5da482071fb2fdc2988ac34 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Dec 16 17:10:33 2019 +0100 patch 8.2.0013: not using a typedef for condstack Problem: Not using a typedef for condstack. Solution: Add a typedef.
author Bram Moolenaar <Bram@vim.org>
date Mon, 16 Dec 2019 17:15:04 +0100
parents 1974a221b494
children c1b0da0ac838
files src/ex_cmds.h src/ex_docmd.c src/ex_eval.c src/proto/ex_eval.pro src/structs.h src/userfunc.c src/version.c
diffstat 7 files changed, 54 insertions(+), 53 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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;
--- 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, ch
  * 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)
--- 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 : */
--- 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"
--- 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.
--- 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,