summaryrefslogtreecommitdiffstats
path: root/edify/expr.c
diff options
context:
space:
mode:
Diffstat (limited to 'edify/expr.c')
-rw-r--r--edify/expr.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/edify/expr.c b/edify/expr.c
index f1c555552..72e5100f3 100644
--- a/edify/expr.c
+++ b/edify/expr.c
@@ -417,3 +417,16 @@ char** ReadVarArgs(State* state, int argc, Expr* argv[]) {
}
return args;
}
+
+// Use printf-style arguments to compose an error message to put into
+// *state. Returns NULL.
+char* ErrorAbort(State* state, char* format, ...) {
+ char* buffer = malloc(4096);
+ va_list v;
+ va_start(v, format);
+ vsnprintf(buffer, 4096, format, v);
+ va_end(v);
+ free(state->errmsg);
+ state->errmsg = buffer;
+ return NULL;
+}