On Thu, 2 May 2019, Allin Cottrell wrote:

> On Thu, 2 May 2019, Allin Cottrell wrote:
>
>> On Thu, 2 May 2019, Sven Schreiber wrote:
>> 
>>> not sure why the following fails, given the documentation of 'argname':
>>> 
>>> <hansl>
>>> function void ch(matrix m[null], string s[null])
>>>  if exists(m)
>>>    eval argname(m)
>>>  elif exists(s)
>>>    eval argname(s)
>>>  endif
>>> end function
>>> 
>>> string s_in = "hey"
>>> ch(, s_in) # error, expect "s_in"
>> 
>> This is due to an ambivalence specific to string variables.
>
> Well, I now think this (mis)behavior is new, fallout from my recent addition 
> of an optional second argument to argname(). I'll work on a fix.

Now fixed in git and snapshots. Here's the test script that I'm 
adding to my test set so this won't go wrong again unnoticed.

<hansl>
function void strcheck (string s[null])
   if exists(s)
     eval argname(s, "defaultname")
   else
     print "no arg, OK"
   endif
end function

function void matcheck (matrix m[null])
   if exists(m)
     eval argname(m, "defaultname")
   else
     print "no arg, OK"
   endif
end function

string main_s = "hey"
strcheck(main_s)
strcheck("lucky")
strcheck()

matrix main_m = I(3)
matcheck(main_m)
matcheck(I(2))
matcheck()
</hansl>

Allin

Reply via email to