Lua: Improved running in build directory.

Load system init.lua from build-directory/epan/wslua
Set Lua datafile_path to source-directory/epan/wslua
Made dofile() search in source-directory/epan/wslua

Change-Id: I009234eb8193c1ed3260455b245c256c9747930f
This commit is contained in:
Stig Bjørlykke 2014-01-29 11:13:47 +01:00
parent 7daae6d214
commit 436fe9c85e
2 changed files with 39 additions and 2 deletions

View File

@ -446,7 +446,13 @@ int wslua_init(register_cb cb, gpointer client_data) {
WSLUA_REG_GLOBAL_NUMBER(L,"DESEGMENT_ONE_MORE_SEGMENT",DESEGMENT_ONE_MORE_SEGMENT);
/* load system's init.lua */
filename = get_datafile_path("init.lua");
if (running_in_build_directory()) {
/* Running from build directory, load generated file */
filename = g_strdup_printf("%s" G_DIR_SEPARATOR_S "epan" G_DIR_SEPARATOR_S "wslua"
G_DIR_SEPARATOR_S "init.lua", get_progfile_dir());
} else {
filename = get_datafile_path("init.lua");
}
if (( file_exists(filename))) {
lua_load_script(filename);

View File

@ -202,6 +202,16 @@ static char* wslua_get_actual_filename(const char* fname) {
}
g_free(filename);
if (running_in_build_directory()) {
/* Running in build directory, try wslua source directory */
filename = g_strdup_printf("%s" G_DIR_SEPARATOR_S "epan" G_DIR_SEPARATOR_S "wslua"
G_DIR_SEPARATOR_S "%s", get_datafile_dir(), fname_clean);
if ( file_exists(filename) ) {
return filename;
}
g_free(filename);
}
return NULL;
}
@ -262,7 +272,15 @@ WSLUA_FUNCTION wslua_persconffile_path(lua_State* L) {
WSLUA_FUNCTION wslua_datafile_path(lua_State* L) {
#define WSLUA_OPTARG_datafile_path_FILENAME 1 /* A filename */
const char *fname = luaL_optstring(L, WSLUA_OPTARG_datafile_path_FILENAME,"");
char* filename = get_datafile_path(fname);
char* filename;
if (running_in_build_directory()) {
/* Running in build directory, set datafile_path to wslua source directory */
filename = g_strdup_printf("%s" G_DIR_SEPARATOR_S "epan" G_DIR_SEPARATOR_S "wslua"
G_DIR_SEPARATOR_S "%s", get_datafile_dir(), fname);
} else {
filename = get_datafile_path(fname);
}
lua_pushstring(L,filename);
g_free(filename);
@ -454,3 +472,16 @@ WSLUA_FUNCTION wslua_register_stat_cmd_arg(lua_State* L) {
register_stat_cmd_arg(arg, statcmd_init, sc);
return 0;
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 4
* tab-width: 4
* indent-tabs-mode: nil
* End:
*
* vi: set shiftwidth=4 tabstop=4 expandtab:
* :indentSize=4:tabSize=4:noTabs=true:
*/