diff options
Diffstat (limited to 'lcode.c')
-rw-r--r-- | lcode.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -40,7 +40,14 @@ static int codesJ (FuncState *fs, OpCode o, int sj, int k); | |||
40 | 40 | ||
41 | 41 | ||
42 | /* semantic error */ | 42 | /* semantic error */ |
43 | l_noret luaK_semerror (LexState *ls, const char *msg) { | 43 | l_noret luaK_semerror (LexState *ls, const char *fmt, ...) { |
44 | const char *msg; | ||
45 | va_list argp; | ||
46 | va_start(argp, fmt); | ||
47 | msg = luaO_pushvfstring(ls->L, fmt, argp); | ||
48 | va_end(argp); | ||
49 | if (msg == NULL) /* error? */ | ||
50 | luaD_throw(ls->L, LUA_ERRMEM); | ||
44 | ls->t.token = 0; /* remove "near <token>" from final message */ | 51 | ls->t.token = 0; /* remove "near <token>" from final message */ |
45 | luaX_syntaxerror(ls, msg); | 52 | luaX_syntaxerror(ls, msg); |
46 | } | 53 | } |