Argumets stored in RL.arg array.

This commit is contained in:
jussi
2023-10-15 22:31:17 +03:00
parent 7af7e70031
commit 95be0403e6
9 changed files with 40 additions and 14 deletions

View File

@@ -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;
}

View File

@@ -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();

View File

@@ -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() {