diff --git a/tdi/treeshr/TreeDecompileRecord.fun b/tdi/treeshr/TreeDecompileRecord.fun new file mode 100644 index 0000000000..0358849676 --- /dev/null +++ b/tdi/treeshr/TreeDecompileRecord.fun @@ -0,0 +1,7 @@ +/* FOR INTERNAL USE ONLY */ +public fun TreeDecompileRecord(in _nid) +{ + _out = 1; + _status = TreeShr->TreeGetRecord(val(_nid), xd(_out)); + return(execute("decompile(`_out)")); +}; diff --git a/tdi/treeshr/TreeFindNodeWildRelative.fun b/tdi/treeshr/TreeFindNodeWildRelative.fun new file mode 100644 index 0000000000..55be624cc4 --- /dev/null +++ b/tdi/treeshr/TreeFindNodeWildRelative.fun @@ -0,0 +1,17 @@ +/* FOR INTERNAL USE ONLY */ +public fun TreeFindNodeWildRelative(in _path, in _startnid, optional _usagemask) +{ + _ctx = 0q; + _nid = 0; + _nids = []; + if (!present(_usagemask)) _usagemask = -1; + while (TreeShr->TreeFindNodeWildRelative(_path, val(_startnid), ref(_nid), ref(_ctx), val(_usagemask)) & 1) { + if (size(_nids) > 0) { + _nids = [_nids, _nid]; + } else { + _nids = [_nid]; + } + }; + TreeShr->TreeFindNodeEnd(_ctx); + return(_nids); +}; \ No newline at end of file diff --git a/tdi/treeshr/TreeGetRecordSerialized.fun b/tdi/treeshr/TreeGetRecordSerialized.fun new file mode 100644 index 0000000000..c153027fdf --- /dev/null +++ b/tdi/treeshr/TreeGetRecordSerialized.fun @@ -0,0 +1,7 @@ +/* FOR INTERNAL USE ONLY */ +public fun TreeGetRecordSerialized(in _nid) +{ + _out = 1; + _status = TreeShr->TreeGetRecord(val(_nid), xd(_out)); + return(execute("SerializeOut(`_out)")); +};