mirror of https://github.com/lua/lua
_ALERT is a private afair of lua.c
This commit is contained in:
parent
955def0348
commit
f53fd8d5f5
14
lbaselib.c
14
lbaselib.c
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
** $Id: lbaselib.c,v 1.73 2002/05/13 13:10:58 roberto Exp roberto $
|
||||
** $Id: lbaselib.c,v 1.74 2002/05/16 18:39:46 roberto Exp roberto $
|
||||
** Basic library
|
||||
** See Copyright Notice in lua.h
|
||||
*/
|
||||
|
@ -20,17 +20,6 @@
|
|||
|
||||
|
||||
|
||||
/*
|
||||
** If your system does not support `stderr', redefine this function, or
|
||||
** redefine _ERRORMESSAGE so that it won't need _ALERT.
|
||||
*/
|
||||
static int luaB__ALERT (lua_State *L) {
|
||||
fputs(luaL_check_string(L, 1), stderr);
|
||||
putc('\n', stderr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
** If your system does not support `stdout', you can just remove this function.
|
||||
** If you need, you can define your own `print' function, following this
|
||||
|
@ -385,7 +374,6 @@ static int luaB_require (lua_State *L) {
|
|||
|
||||
|
||||
static const luaL_reg base_funcs[] = {
|
||||
{LUA_ALERT, luaB__ALERT},
|
||||
{"error", luaB_error},
|
||||
{"metatable", luaB_metatable},
|
||||
{"globals", luaB_globals},
|
||||
|
|
20
lua.c
20
lua.c
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
** $Id: lua.c,v 1.85 2002/05/01 20:40:42 roberto Exp roberto $
|
||||
** $Id: lua.c,v 1.86 2002/05/15 18:57:44 roberto Exp roberto $
|
||||
** Lua stand-alone interpreter
|
||||
** See Copyright Notice in lua.h
|
||||
*/
|
||||
|
@ -69,9 +69,9 @@ static void laction (int i) {
|
|||
static void report (int status) {
|
||||
if (status == 0) return;
|
||||
else {
|
||||
const char *msg = lua_tostring(L, -1);
|
||||
if (msg == NULL) msg = "(no message)";
|
||||
fprintf(stderr, "%s\n", msg);
|
||||
lua_getglobal(L, "_ALERT");
|
||||
lua_pushvalue(L, -2);
|
||||
lua_pcall(L, 1, 0, 0);
|
||||
lua_pop(L, 1);
|
||||
}
|
||||
}
|
||||
|
@ -137,6 +137,13 @@ static void getargs (char *argv[]) {
|
|||
}
|
||||
|
||||
|
||||
static int l_alert (lua_State *l) {
|
||||
fputs(luaL_check_string(l, 1), stderr);
|
||||
putc('\n', stderr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int l_getargs (lua_State *l) {
|
||||
char **argv = (char **)lua_touserdata(l, lua_upvalueindex(1));
|
||||
getargs(argv);
|
||||
|
@ -323,10 +330,11 @@ static int handle_argv (char *argv[], int *toclose) {
|
|||
}
|
||||
|
||||
|
||||
static void register_getargs (char *argv[]) {
|
||||
static void register_own (char *argv[]) {
|
||||
lua_pushudataval(L, argv);
|
||||
lua_pushcclosure(L, l_getargs, 1);
|
||||
lua_setglobal(L, "getargs");
|
||||
lua_register(L, "_ALERT", l_alert);
|
||||
}
|
||||
|
||||
|
||||
|
@ -356,7 +364,7 @@ int main (int argc, char *argv[]) {
|
|||
(void)argc; /* to avoid warnings */
|
||||
L = lua_open(); /* create state */
|
||||
LUA_USERINIT(L); /* open libraries */
|
||||
register_getargs(argv); /* create `getargs' function */
|
||||
register_own(argv); /* create own function */
|
||||
status = handle_luainit();
|
||||
if (status != 0) return status;
|
||||
status = handle_argv(argv+1, &toclose);
|
||||
|
|
Loading…
Reference in New Issue