Argumets stored in RL.arg array.
This commit is contained in:
@@ -1007,18 +1007,32 @@ static void cursorEnterInputEvent( GLFWwindow* window, int enter ) {
|
||||
lua_pop( L, -1 );
|
||||
}
|
||||
|
||||
bool luaInit() {
|
||||
bool luaInit( int argn, const char **argc ) {
|
||||
state->luaState = luaL_newstate();
|
||||
lua_State *L = state->luaState;
|
||||
|
||||
luaL_openlibs( state->luaState );
|
||||
luaL_openlibs( L );
|
||||
|
||||
if ( state->luaState == NULL ) {
|
||||
if ( L == NULL ) {
|
||||
TraceLog( LOG_WARNING, "%s", "Failed to init Lua" );
|
||||
|
||||
return false;
|
||||
}
|
||||
defineGlobals();
|
||||
|
||||
/* Set arguments. */
|
||||
lua_getglobal( L, "RL" );
|
||||
lua_newtable( L );
|
||||
lua_setfield( L, -2, "arg" );
|
||||
lua_getglobal( L, "RL" );
|
||||
lua_getfield( L, -1, "arg" );
|
||||
|
||||
for ( int i = 0; i < argn; i++ ) {
|
||||
lua_pushstring( L, argc[i] );
|
||||
lua_rawseti( L, -2, i + 1 );
|
||||
}
|
||||
lua_pop( L, -1 );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ int main( int argn, const char **argc ) {
|
||||
}
|
||||
|
||||
if ( interpret_mode ) {
|
||||
stateInitInterpret();
|
||||
stateInitInterpret( argn, argc );
|
||||
|
||||
lua_State *L = state->luaState;
|
||||
lua_pushcfunction( L, luaTraceback );
|
||||
@@ -63,7 +63,7 @@ int main( int argn, const char **argc ) {
|
||||
}
|
||||
else {
|
||||
printVersion();
|
||||
stateInit( exePath );
|
||||
stateInit( argn, argc, exePath );
|
||||
luaRegister();
|
||||
state->run = luaCallMain();
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
State *state;
|
||||
|
||||
bool stateInit( const char *exePath ) {
|
||||
bool stateInit( int argn, const char **argc, const char *exePath ) {
|
||||
state = malloc( sizeof( State ) );
|
||||
|
||||
state->exePath = malloc( STRING_LEN * sizeof( char ) );
|
||||
@@ -107,15 +107,15 @@ bool stateInit( const char *exePath ) {
|
||||
}
|
||||
if ( state->run ) {
|
||||
InitAudioDevice();
|
||||
state->run = luaInit();
|
||||
state->run = luaInit( argn, argc );
|
||||
}
|
||||
|
||||
return state->run;
|
||||
}
|
||||
|
||||
void stateInitInterpret() {
|
||||
void stateInitInterpret( int argn, const char **argc ) {
|
||||
state = malloc( sizeof( State ) );
|
||||
luaInit();
|
||||
luaInit( argn, argc );
|
||||
}
|
||||
|
||||
void stateFree() {
|
||||
|
||||
Reference in New Issue
Block a user