diff options
Diffstat (limited to 'loadlib.c')
-rw-r--r-- | loadlib.c | 19 |
1 files changed, 8 insertions, 11 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: loadlib.c,v 1.115 2014/07/28 17:47:53 roberto Exp roberto $ | 2 | ** $Id: loadlib.c,v 1.116 2014/07/29 16:01:00 roberto Exp roberto $ |
3 | ** Dynamic library loader for Lua | 3 | ** Dynamic library loader for Lua |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | ** | 5 | ** |
@@ -396,7 +396,7 @@ static const char *searchpath (lua_State *L, const char *name, | |||
396 | lua_remove(L, -2); /* remove path template */ | 396 | lua_remove(L, -2); /* remove path template */ |
397 | if (readable(filename)) /* does file exist and is readable? */ | 397 | if (readable(filename)) /* does file exist and is readable? */ |
398 | return filename; /* return that file name */ | 398 | return filename; /* return that file name */ |
399 | lua_pushfstring(L, "\n\tno file " LUA_QS, filename); | 399 | lua_pushfstring(L, "\n\tno file '%s'", filename); |
400 | lua_remove(L, -2); /* remove file name */ | 400 | lua_remove(L, -2); /* remove file name */ |
401 | luaL_addvalue(&msg); /* concatenate error msg. entry */ | 401 | luaL_addvalue(&msg); /* concatenate error msg. entry */ |
402 | } | 402 | } |
@@ -426,7 +426,7 @@ static const char *findfile (lua_State *L, const char *name, | |||
426 | lua_getfield(L, lua_upvalueindex(1), pname); | 426 | lua_getfield(L, lua_upvalueindex(1), pname); |
427 | path = lua_tostring(L, -1); | 427 | path = lua_tostring(L, -1); |
428 | if (path == NULL) | 428 | if (path == NULL) |
429 | luaL_error(L, LUA_QL("package.%s") " must be a string", pname); | 429 | luaL_error(L, "'package.%s' must be a string", pname); |
430 | return searchpath(L, name, path, ".", dirsep); | 430 | return searchpath(L, name, path, ".", dirsep); |
431 | } | 431 | } |
432 | 432 | ||
@@ -437,8 +437,7 @@ static int checkload (lua_State *L, int stat, const char *filename) { | |||
437 | return 2; /* return open function and file name */ | 437 | return 2; /* return open function and file name */ |
438 | } | 438 | } |
439 | else | 439 | else |
440 | return luaL_error(L, "error loading module " LUA_QS | 440 | return luaL_error(L, "error loading module '%s' from file '%s':\n\t%s", |
441 | " from file " LUA_QS ":\n\t%s", | ||
442 | lua_tostring(L, 1), filename, lua_tostring(L, -1)); | 441 | lua_tostring(L, 1), filename, lua_tostring(L, -1)); |
443 | } | 442 | } |
444 | 443 | ||
@@ -499,8 +498,7 @@ static int searcher_Croot (lua_State *L) { | |||
499 | if (stat != ERRFUNC) | 498 | if (stat != ERRFUNC) |
500 | return checkload(L, 0, filename); /* real error */ | 499 | return checkload(L, 0, filename); /* real error */ |
501 | else { /* open function not found */ | 500 | else { /* open function not found */ |
502 | lua_pushfstring(L, "\n\tno module " LUA_QS " in file " LUA_QS, | 501 | lua_pushfstring(L, "\n\tno module '%s' in file '%s'", name, filename); |
503 | name, filename); | ||
504 | return 1; | 502 | return 1; |
505 | } | 503 | } |
506 | } | 504 | } |
@@ -524,14 +522,13 @@ static void findloader (lua_State *L, const char *name) { | |||
524 | luaL_buffinit(L, &msg); | 522 | luaL_buffinit(L, &msg); |
525 | lua_getfield(L, lua_upvalueindex(1), "searchers"); /* will be at index 3 */ | 523 | lua_getfield(L, lua_upvalueindex(1), "searchers"); /* will be at index 3 */ |
526 | if (!lua_istable(L, 3)) | 524 | if (!lua_istable(L, 3)) |
527 | luaL_error(L, LUA_QL("package.searchers") " must be a table"); | 525 | luaL_error(L, "'package.searchers' must be a table"); |
528 | /* iterate over available searchers to find a loader */ | 526 | /* iterate over available searchers to find a loader */ |
529 | for (i = 1; ; i++) { | 527 | for (i = 1; ; i++) { |
530 | if (lua_rawgeti(L, 3, i) == LUA_TNIL) { /* no more searchers? */ | 528 | if (lua_rawgeti(L, 3, i) == LUA_TNIL) { /* no more searchers? */ |
531 | lua_pop(L, 1); /* remove nil */ | 529 | lua_pop(L, 1); /* remove nil */ |
532 | luaL_pushresult(&msg); /* create error message */ | 530 | luaL_pushresult(&msg); /* create error message */ |
533 | luaL_error(L, "module " LUA_QS " not found:%s", | 531 | luaL_error(L, "module '%s' not found:%s", name, lua_tostring(L, -1)); |
534 | name, lua_tostring(L, -1)); | ||
535 | } | 532 | } |
536 | lua_pushstring(L, name); | 533 | lua_pushstring(L, name); |
537 | lua_call(L, 1, 2); /* call it */ | 534 | lua_call(L, 1, 2); /* call it */ |
@@ -589,7 +586,7 @@ static void set_env (lua_State *L) { | |||
589 | if (lua_getstack(L, 1, &ar) == 0 || | 586 | if (lua_getstack(L, 1, &ar) == 0 || |
590 | lua_getinfo(L, "f", &ar) == 0 || /* get calling function */ | 587 | lua_getinfo(L, "f", &ar) == 0 || /* get calling function */ |
591 | lua_iscfunction(L, -1)) | 588 | lua_iscfunction(L, -1)) |
592 | luaL_error(L, LUA_QL("module") " not called from a Lua function"); | 589 | luaL_error(L, "'module' not called from a Lua function"); |
593 | lua_pushvalue(L, -2); /* copy new environment table to top */ | 590 | lua_pushvalue(L, -2); /* copy new environment table to top */ |
594 | lua_setupvalue(L, -2, 1); | 591 | lua_setupvalue(L, -2, 1); |
595 | lua_pop(L, 1); /* remove function */ | 592 | lua_pop(L, 1); /* remove function */ |