evstr() gives traceback for invalid arguments
Reported by Ross Piltz
BUG DESCRIPTION:
----------------
evstr() with one output gives traceback instead of handling invalid arguments cleanly
ERROR LOG:
----------
HOW TO REPRODUCE THE BUG:
-------------------------
// Do a valid evstr (works as expected)
clear a b
a = 1;
[H, ierr] = evstr(list(['a','%(1)'],'40+2'))
ierr =
0.
H =
1. 42.
// Do an invalid evstr (works as expected)
[H, ierr] = evstr(list(['b','%(1)'],'40+2'))
ierr =
999.
H =
[]
// Repeat invalid evstr with only 1 output (get traceback)
H = evstr(list(['b','%(1)'],'40+2'))
at line 1 of executed string
at line 49 of function evstr ( C:\Program Files\scilab-6.0.1\modules\string\macros\evstr.sci line 64 )
at line 71 of function evstr ( C:\Program Files\scilab-6.0.1\modules\string\macros\evstr.sci line 86 )
Undefined variable: b
// Leave out the sub-expression but keep the list (get traceback)
H = evstr(list(['b','a']))
at line 54 of function evstr ( C:\Program Files\scilab-6.0.1\modules\string\macros\evstr.sci line 69 )
Invalid index.
// Use a string vector with "b" undefined (get traceback)
H = evstr(['a','b'])
at line 1 of executed string
at line 49 of function evstr ( C:\Program Files\scilab-6.0.1\modules\string\macros\evstr.sci line 64 )
Undefined variable: b
// Repeat with two outputs (works as expected)
[H, ierr] = evstr(['a','b'])
ierr =
999.
H =
[]
OTHER INFORMATION:
------------------