Hi,
I've noticed that in a lot of hansl code many lines are spent on copying
stuff into bundles, and I wonder if that could be made easier. What I
have in mind is something like the function below, which would be called
for example like this:
copy2bundle(b, defbundle("m", mymatrix, "s", mystring, "m2",
anothermatrix))
However, perhaps a built-in gretl function would be better and less
clumsy. For example, the input wouldn't have to be wrapped in a
transitory bundle and still the number of arguments to copy would be
flexible.
(BTW: 'getkeys' is not syntax-colored.)
Opinions, endorsements?
Thanks,
sven
-----
<hansl>
function void copy2bundle(bundle *btarget, bundle bin)
n = nelem(btarget)
strings oldkeys = getkeys(btarget)
# easy approach first:
btarget = btarget + bin
# check if we missed something
if nelem(btarget) != n + nelem(bin)
# need to go into detail
matrix match = {}
strings inkeys = getkeys(bin)
loop i=1..nelem(inkeys) -q
loop j=1..nelem(oldkeys) -q
if inkeys[i] = oldkeys[j]
match |= i
break
endif
endloop
endloop
# process what we found (copy with overwrite)
loop k=1..nelem(match) -q
string s = inkeys[match[k]]
btarget["@s"] = bin["@s"]
endloop
endif
endloop
</hansl>