patch 8.0.0074
Problem: Cannot make Vim fail on an internal error.
Solution: Add IEMSG() and IEMSG2(). (Domenique Pelle) Avoid reporting an
internal error without mentioning where.
diff --git a/src/eval.c b/src/eval.c
index 18eb879..e92a97f 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -839,7 +839,7 @@
{
hi = hash_find(&vimvarht, vimvars[idx].vv_di.di_key);
if (HASHITEM_EMPTY(hi))
- EMSG2(_(e_intern2), "restore_vimvar()");
+ internal_error("restore_vimvar()");
else
hash_remove(&vimvarht, hi);
}
@@ -1308,7 +1308,7 @@
}
else if (*arg != ',' && *arg != ']')
{
- EMSG2(_(e_intern2), "ex_let_vars()");
+ internal_error("ex_let_vars()");
return FAIL;
}
}
@@ -2830,7 +2830,7 @@
}
if (d == NULL)
{
- EMSG2(_(e_intern2), "do_unlet()");
+ internal_error("do_unlet()");
return FAIL;
}
}
@@ -5678,7 +5678,7 @@
case VVAL_NONE: return "v:none";
case VVAL_NULL: return "v:null";
}
- EMSG2(_(e_intern2), "get_var_special_name()");
+ internal_error("get_var_special_name()");
return "42";
}
@@ -7152,7 +7152,7 @@
break;
#endif
case VAR_UNKNOWN:
- EMSG2(_(e_intern2), "get_tv_number(UNKNOWN)");
+ internal_error("get_tv_number(UNKNOWN)");
break;
}
if (denote == NULL) /* useful for values that must be unsigned */
@@ -7199,7 +7199,7 @@
break;
# endif
case VAR_UNKNOWN:
- EMSG2(_(e_intern2), "get_tv_float(UNKNOWN)");
+ internal_error("get_tv_float(UNKNOWN)");
break;
}
return 0;
@@ -7733,7 +7733,7 @@
return;
}
else if (v->di_tv.v_type != tv->v_type)
- EMSG2(_(e_intern2), "set_var()");
+ internal_error("set_var()");
}
clear_tv(&v->di_tv);
@@ -7962,7 +7962,7 @@
}
break;
case VAR_UNKNOWN:
- EMSG2(_(e_intern2), "copy_tv(UNKNOWN)");
+ internal_error("copy_tv(UNKNOWN)");
break;
}
}
@@ -8036,7 +8036,7 @@
ret = FAIL;
break;
case VAR_UNKNOWN:
- EMSG2(_(e_intern2), "item_copy(UNKNOWN)");
+ internal_error("item_copy(UNKNOWN)");
ret = FAIL;
}
--recurse;