updated for version 7.2.430
Problem:    The ++bad argument is handled wrong, resulting in an invalid
            memory access.
Solution:   Use the bad_char field only for the replacement character, add
            bad_char_idx to store the position. (Dominique Pelle)
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index a5a9e12..eb47297 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -1152,7 +1152,8 @@
     int		force_ff;	/* ++ff= argument (index in cmd[]) */
 #ifdef FEAT_MBYTE
     int		force_enc;	/* ++enc= argument (index in cmd[]) */
-    int		bad_char;	/* ++bad= argument (index in cmd[]) */
+    int		bad_char_idx;	/* ++bad= argument (index in cmd[]) */
+    int		bad_char;	/* BAD_KEEP, BAD_DROP or replacement char */
 #endif
 #ifdef FEAT_USR_CMDS
     int		useridx;	/* user command index */