diff options
Diffstat (limited to 'lbaselib.c')
| -rw-r--r-- | lbaselib.c | 22 |
1 files changed, 21 insertions, 1 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lbaselib.c,v 1.100 2002/10/22 19:41:08 roberto Exp roberto $ | 2 | ** $Id: lbaselib.c,v 1.101 2002/10/25 20:05:28 roberto Exp roberto $ |
| 3 | ** Basic library | 3 | ** Basic library |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -271,6 +271,25 @@ static int luaB_loadstring (lua_State *L) { | |||
| 271 | } | 271 | } |
| 272 | 272 | ||
| 273 | 273 | ||
| 274 | static int writer (lua_State *L, const void* b, size_t size, void* B) { | ||
| 275 | (void)L; | ||
| 276 | luaL_addlstring((luaL_Buffer*) B, b, size); | ||
| 277 | return 1; | ||
| 278 | } | ||
| 279 | |||
| 280 | |||
| 281 | static int luaB_stringdump (lua_State *L) { | ||
| 282 | luaL_Buffer b; | ||
| 283 | luaL_check_type(L, 1, LUA_TFUNCTION); | ||
| 284 | luaL_buffinit(L,&b); | ||
| 285 | if (!lua_dump(L, writer, &b)) | ||
| 286 | luaL_error(L, "unable to dump given function"); | ||
| 287 | luaL_pushresult(&b); | ||
| 288 | return 1; | ||
| 289 | } | ||
| 290 | |||
| 291 | |||
| 292 | |||
| 274 | static int luaB_loadfile (lua_State *L) { | 293 | static int luaB_loadfile (lua_State *L) { |
| 275 | const char *fname = luaL_opt_string(L, 1, NULL); | 294 | const char *fname = luaL_opt_string(L, 1, NULL); |
| 276 | return passresults(L, luaL_loadfile(L, fname)); | 295 | return passresults(L, luaL_loadfile(L, fname)); |
| @@ -524,6 +543,7 @@ static const luaL_reg base_funcs[] = { | |||
| 524 | {"collectgarbage", luaB_collectgarbage}, | 543 | {"collectgarbage", luaB_collectgarbage}, |
| 525 | {"gcinfo", luaB_gcinfo}, | 544 | {"gcinfo", luaB_gcinfo}, |
| 526 | {"loadfile", luaB_loadfile}, | 545 | {"loadfile", luaB_loadfile}, |
| 546 | {"stringdump", luaB_stringdump}, | ||
| 527 | {"dofile", luaB_dofile}, | 547 | {"dofile", luaB_dofile}, |
| 528 | {"loadstring", luaB_loadstring}, | 548 | {"loadstring", luaB_loadstring}, |
| 529 | {"require", luaB_require}, | 549 | {"require", luaB_require}, |
