mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
patch 8.2.0013: not using a typedef for condstack
Problem: Not using a typedef for condstack. Solution: Add a typedef.
This commit is contained in:
@@ -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
|
||||
|
@@ -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,
|
||||
cstack_T *cstack,
|
||||
#endif
|
||||
char_u *(*fgetline)(int, void *, int, int),
|
||||
void *cookie) // argument for fgetline()
|
||||
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;
|
||||
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;
|
||||
|
@@ -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)
|
||||
|
@@ -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 : */
|
||||
|
@@ -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"
|
||||
|
@@ -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.
|
||||
|
@@ -742,6 +742,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
13,
|
||||
/**/
|
||||
12,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user