diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2002-05-15 15:57:44 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2002-05-15 15:57:44 -0300 |
commit | b7a0503c1d72603b8f7e480f2abecbc05348cb69 (patch) | |
tree | bfac646fea320f73abec2ee57a0c96a704452884 /lauxlib.c | |
parent | 1c328a191a8b86b7ad601cb9a935f1da5373fdf7 (diff) | |
download | lua-b7a0503c1d72603b8f7e480f2abecbc05348cb69.tar.gz lua-b7a0503c1d72603b8f7e480f2abecbc05348cb69.tar.bz2 lua-b7a0503c1d72603b8f7e480f2abecbc05348cb69.zip |
new format for error messages
Diffstat (limited to 'lauxlib.c')
-rw-r--r-- | lauxlib.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lauxlib.c,v 1.68 2002/05/06 19:05:10 roberto Exp roberto $ | 2 | ** $Id: lauxlib.c,v 1.69 2002/05/07 17:36:56 roberto Exp roberto $ |
3 | ** Auxiliary functions for building Lua libraries | 3 | ** Auxiliary functions for building Lua libraries |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -151,10 +151,17 @@ LUALIB_API void luaL_vstr (lua_State *L, const char *fmt, ...) { | |||
151 | 151 | ||
152 | 152 | ||
153 | LUALIB_API int luaL_verror (lua_State *L, const char *fmt, ...) { | 153 | LUALIB_API int luaL_verror (lua_State *L, const char *fmt, ...) { |
154 | lua_Debug ar; | ||
154 | va_list argp; | 155 | va_list argp; |
155 | va_start(argp, fmt); | 156 | va_start(argp, fmt); |
156 | lua_vpushstr(L, fmt, argp); | 157 | lua_vpushstr(L, fmt, argp); |
157 | va_end(argp); | 158 | va_end(argp); |
159 | if (lua_getstack(L, 1, &ar)) { /* check calling function */ | ||
160 | lua_getinfo(L, "Snl", &ar); | ||
161 | if (ar.currentline > 0) | ||
162 | luaL_vstr(L, "%s:%d: %s", | ||
163 | ar.short_src, ar.currentline, lua_tostring(L, -1)); | ||
164 | } | ||
158 | return lua_errorobj(L); | 165 | return lua_errorobj(L); |
159 | } | 166 | } |
160 | 167 | ||