if (open) {
const char *s = open->getStringValue();
FGNasalSys *nas = (FGNasalSys *)globals->get_subsystem("nasal");
- nas->createModule(_module.c_str(), _module.c_str(), s, strlen(s));
+ nas->createModule(_module.c_str(), _module.c_str(), s, strlen(s), props);
}
}
display(props);
FGNasalSys *nas = (FGNasalSys *)globals->get_subsystem("nasal");
if (_nasal_close) {
const char *s = _nasal_close->getStringValue();
- nas->createModule(_module.c_str(), _module.c_str(), s, strlen(s));
+ nas->createModule(_module.c_str(), _module.c_str(), s, strlen(s), _props);
}
nas->deleteModule(_module.c_str());
// Parse and run. Save the local variables namespace, as it will
// become a sub-object of globals.
void FGNasalSys::createModule(const char* moduleName, const char* fileName,
- const char* src, int len)
+ const char* src, int len, const SGPropertyNode* arg)
{
naRef code = parse(fileName, src, len);
if(naIsNil(code))
if(!naHash_get(_globals, modname, &locals))
locals = naNewHash(_context);
+ _cmdArg = (SGPropertyNode*)arg;
+
naCall(_context, code, 0, 0, naNil(), locals);
if(naGetError(_context)) {
logError(_context);
virtual bool handleCommand(const SGPropertyNode* arg);
void createModule(const char* moduleName, const char* fileName,
- const char* src, int len);
+ const char* src, int len, const SGPropertyNode* arg=0);
void deleteModule(const char* moduleName);