diff options
Diffstat (limited to 'edify/expr.c')
-rw-r--r-- | edify/expr.c | 13 |
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; +} |