From: James Turner Date: Sun, 15 Aug 2010 10:02:27 +0000 (+0100) Subject: Expose path resolver to Nasal. X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=2e69930c7d3ca006cdd5b775de0acc9f1103a82c;p=flightgear.git Expose path resolver to Nasal. --- diff --git a/src/Scripting/NasalSys.cxx b/src/Scripting/NasalSys.cxx index 055ad879d..0a221fc6e 100644 --- a/src/Scripting/NasalSys.cxx +++ b/src/Scripting/NasalSys.cxx @@ -374,6 +374,19 @@ static naRef f_directory(naContext c, naRef me, int argc, naRef* args) return result; } +/** + * Given a data path, resolve it in FG_ROOT or an FG_AIRCRFT directory + */ +static naRef f_resolveDataPath(naContext c, naRef me, int argc, naRef* args) +{ + if(argc != 1 || !naIsString(args[0])) + naRuntimeError(c, "bad arguments to resolveDataPath()"); + + SGPath p = globals->resolve_maybe_aircraft_path(naStr_data(args[0])); + const char* pdata = p.c_str(); + return naStr_fromdata(naNewString(c), const_cast(pdata), strlen(pdata)); +} + // Parse XML file. // parsexml( [, [, [, [, ]]]]); // @@ -635,6 +648,7 @@ static struct { const char* name; naCFunction func; } funcs[] = { { "srand", f_srand }, { "abort", f_abort }, { "directory", f_directory }, + { "resolvepath", f_resolveDataPath }, { "parsexml", f_parsexml }, { "systime", f_systime }, { "carttogeod", f_carttogeod },