luaa: return parsing error right away
Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
bcfdc290db
commit
e81fd419c3
43
luaa.c
43
luaa.c
|
@ -977,27 +977,25 @@ luaA_init(void)
|
||||||
static bool
|
static bool
|
||||||
luaA_loadrc(const char *confpath, bool run)
|
luaA_loadrc(const char *confpath, bool run)
|
||||||
{
|
{
|
||||||
if(confpath)
|
if(!luaL_loadfile(globalconf.L, confpath))
|
||||||
{
|
{
|
||||||
if(!luaL_loadfile(globalconf.L, confpath))
|
if(run)
|
||||||
{
|
{
|
||||||
if(run)
|
if(lua_pcall(globalconf.L, 0, LUA_MULTRET, 0))
|
||||||
{
|
fprintf(stderr, "%s\n", lua_tostring(globalconf.L, -1));
|
||||||
if(lua_pcall(globalconf.L, 0, LUA_MULTRET, 0))
|
|
||||||
fprintf(stderr, "%s\n", lua_tostring(globalconf.L, -1));
|
|
||||||
else
|
|
||||||
{
|
|
||||||
globalconf.conffile = a_strdup(confpath);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
lua_pop(globalconf.L, 1);
|
{
|
||||||
return true;
|
globalconf.conffile = a_strdup(confpath);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
fprintf(stderr, "%s\n", lua_tostring(globalconf.L, -1));
|
lua_pop(globalconf.L, 1);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
fprintf(stderr, "%s\n", lua_tostring(globalconf.L, -1));
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1015,10 +1013,15 @@ luaA_parserc(const char *confpatharg, bool run)
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
|
|
||||||
/* try to load, return if it's ok */
|
/* try to load, return if it's ok */
|
||||||
if(luaA_loadrc(confpatharg, run))
|
if(confpatharg)
|
||||||
{
|
{
|
||||||
ret = true;
|
if(luaA_loadrc(confpatharg, run))
|
||||||
goto bailout;
|
{
|
||||||
|
ret = true;
|
||||||
|
goto bailout;
|
||||||
|
}
|
||||||
|
else if(!run)
|
||||||
|
goto bailout;
|
||||||
}
|
}
|
||||||
|
|
||||||
if((confdir = getenv("XDG_CONFIG_HOME")))
|
if((confdir = getenv("XDG_CONFIG_HOME")))
|
||||||
|
@ -1032,6 +1035,8 @@ luaA_parserc(const char *confpatharg, bool run)
|
||||||
ret = true;
|
ret = true;
|
||||||
goto bailout;
|
goto bailout;
|
||||||
}
|
}
|
||||||
|
else if(!run)
|
||||||
|
goto bailout;
|
||||||
|
|
||||||
p_delete(&confpath);
|
p_delete(&confpath);
|
||||||
|
|
||||||
|
@ -1053,6 +1058,8 @@ luaA_parserc(const char *confpatharg, bool run)
|
||||||
ret = true;
|
ret = true;
|
||||||
goto bailout;
|
goto bailout;
|
||||||
}
|
}
|
||||||
|
else if(!run)
|
||||||
|
goto bailout;
|
||||||
p_delete(&confpath);
|
p_delete(&confpath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue