From b4d6485cfc39987ffcb7e6f23ec2b23fb073dfe0 Mon Sep 17 00:00:00 2001 From: mfranz Date: Wed, 12 Nov 2008 14:39:08 +0000 Subject: [PATCH] add alias() and unalias() functions --- src/Scripting/nasal-props.cxx | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/Scripting/nasal-props.cxx b/src/Scripting/nasal-props.cxx index 4e1777b2e..359eb9131 100644 --- a/src/Scripting/nasal-props.cxx +++ b/src/Scripting/nasal-props.cxx @@ -301,6 +301,26 @@ static naRef f_removeChildren(naContext c, naRef me, int argc, naRef* args) return result; } +static naRef f_alias(naContext c, naRef me, int argc, naRef* args) +{ + NODEARG(); + SGPropertyNode* al; + naRef prop = naVec_get(argv, 0); + if(naIsString(prop)) al = globals->get_props()->getNode(naStr_data(prop), true); + else if(naIsGhost(prop)) al = *(SGPropertyNode_ptr*)naGhost_ptr(prop); + else { + naRuntimeError(c, "props.alias() with bad argument"); + return naNil(); + } + return naNum((*node)->alias(al)); +} + +static naRef f_unalias(naContext c, naRef me, int argc, naRef* args) +{ + NODEARG(); + return naNum((*node)->unalias()); +} + static naRef f_getNode(naContext c, naRef me, int argc, naRef* args) { NODEARG(); @@ -346,6 +366,8 @@ static struct { { f_getChildren, "_getChildren" }, { f_removeChild, "_removeChild" }, { f_removeChildren, "_removeChildren" }, + { f_alias, "_alias" }, + { f_unalias, "_unalias" }, { f_getNode, "_getNode" }, { f_new, "_new" }, { f_globals, "_globals" }, -- 2.39.5