diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-11-10 20:20:05 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-11-10 20:20:05 +0100 |
commit | 8a5883b7488e492419dde7e1637cc72f2d566ba4 (patch) | |
tree | 512e019310a24c164eb3d5577fcc873d3df4949b /src | |
parent | 95f096030ed1a8afea028f2ea295d6f6a70f466f (diff) |
patch 8.0.0075v8.0.0075
Problem: Using number for exception type lacks type checking.
Solution: Use an enum.
Diffstat (limited to 'src')
-rw-r--r-- | src/ex_docmd.c | 2 | ||||
-rw-r--r-- | src/ex_eval.c | 6 | ||||
-rw-r--r-- | src/proto/ex_eval.pro | 2 | ||||
-rw-r--r-- | src/structs.h | 19 | ||||
-rw-r--r-- | src/version.c | 2 |
5 files changed, 17 insertions, 14 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c index 9ad7d77c50..6b4e5fb6aa 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -1388,8 +1388,6 @@ do_cmdline( break; case ET_INTERRUPT: break; - default: - p = vim_strsave((char_u *)_(e_internal)); } saved_sourcing_name = sourcing_name; diff --git a/src/ex_eval.c b/src/ex_eval.c index 7589f8e0d1..17e0fdb528 100644 --- a/src/ex_eval.c +++ b/src/ex_eval.c @@ -16,7 +16,7 @@ #if defined(FEAT_EVAL) || defined(PROTO) static void free_msglist(struct msglist *l); -static int throw_exception(void *, int, char_u *); +static int throw_exception(void *, except_type_T, char_u *); static char_u *get_end_emsg(struct condstack *cstack); /* @@ -422,7 +422,7 @@ do_intthrow(struct condstack *cstack) char_u * get_exception_string( void *value, - int type, + except_type_T type, char_u *cmdname, int *should_free) { @@ -503,7 +503,7 @@ get_exception_string( * error exception. */ static int -throw_exception(void *value, int type, char_u *cmdname) +throw_exception(void *value, except_type_T type, char_u *cmdname) { except_T *excp; int should_free; diff --git a/src/proto/ex_eval.pro b/src/proto/ex_eval.pro index 908b785d5b..9274bce59c 100644 --- a/src/proto/ex_eval.pro +++ b/src/proto/ex_eval.pro @@ -7,7 +7,7 @@ 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); -char_u *get_exception_string(void *value, int type, char_u *cmdname, int *should_free); +char_u *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); void report_resume_pending(int pending, void *value); diff --git a/src/structs.h b/src/structs.h index 7a4d7fbe42..31accea050 100644 --- a/src/structs.h +++ b/src/structs.h @@ -815,13 +815,23 @@ struct msglist }; /* + * The exception types. + */ +typedef enum +{ + ET_USER, /* exception caused by ":throw" command */ + ET_ERROR, /* error exception */ + ET_INTERRUPT /* interrupt exception triggered by Ctrl-C */ +} except_type_T; + +/* * Structure describing an exception. * (don't use "struct exception", it's used by the math library). */ typedef struct vim_exception except_T; struct vim_exception { - int type; /* exception type */ + except_type_T type; /* exception type */ char_u *value; /* exception value */ struct msglist *messages; /* message(s) causing error exception */ char_u *throw_name; /* name of the throw point */ @@ -830,13 +840,6 @@ struct vim_exception }; /* - * The exception types. - */ -#define ET_USER 0 /* exception caused by ":throw" command */ -#define ET_ERROR 1 /* error exception */ -#define ET_INTERRUPT 2 /* interrupt exception triggered by Ctrl-C */ - -/* * Structure to save the error/interrupt/exception state between calls to * enter_cleanup() and leave_cleanup(). Must be allocated as an automatic * variable by the (common) caller of these functions. diff --git a/src/version.c b/src/version.c index 80e30dcc69..ce19c0c132 100644 --- a/src/version.c +++ b/src/version.c @@ -765,6 +765,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 75, +/**/ 74, /**/ 73, |