]> granicus.if.org Git - vim/commitdiff
patch 8.0.0075 v8.0.0075
authorBram Moolenaar <Bram@vim.org>
Thu, 10 Nov 2016 19:20:05 +0000 (20:20 +0100)
committerBram Moolenaar <Bram@vim.org>
Thu, 10 Nov 2016 19:20:05 +0000 (20:20 +0100)
Problem:    Using number for exception type lacks type checking.
Solution:   Use an enum.

src/ex_docmd.c
src/ex_eval.c
src/proto/ex_eval.pro
src/structs.h
src/version.c

index 9ad7d77c50fc2bd97706b7a718659815f78b1afb..6b4e5fb6aad9c065778f8fef3352d02a9dd59fdf 100644 (file)
@@ -1388,8 +1388,6 @@ do_cmdline(
                    break;
                case ET_INTERRUPT:
                    break;
-               default:
-                   p = vim_strsave((char_u *)_(e_internal));
            }
 
            saved_sourcing_name = sourcing_name;
index 7589f8e0d1bf59ce915b167d55f568c605e5f6fa..17e0fdb528359bbd0a6f9db85dfe3ebd20c15f3a 100644 (file)
@@ -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;
index 908b785d5bcf8e16aea976e51c424aae0cbce7ae..9274bce59c8646028da3653a4a45cffd199fea14 100644 (file)
@@ -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);
index 7a4d7fbe42742d639b05c62d398a47777e9da78a..31accea0509ba46ead69cd0ed464d6de244d86ec 100644 (file)
@@ -814,6 +814,16 @@ struct msglist
     struct msglist     *next;          /* next of several messages in a row */
 };
 
+/*
+ * 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).
@@ -821,7 +831,7 @@ struct msglist
 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 */
@@ -829,13 +839,6 @@ struct vim_exception
     except_T           *caught;        /* next exception on the caught stack */
 };
 
-/*
- * 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
index 80e30dcc69ac878bb2d483e82a006d6504eeef8e..ce19c0c1321ed8c7f175a52978bd1cba6edaea66 100644 (file)
@@ -764,6 +764,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    75,
 /**/
     74,
 /**/