Resources

indsav(what,where) bug?

0

Try that:

indsav("1"$|"2"$|"3","1");

it returns a vector:

  .
  1
  1

 

instead of returning the correct:

 1
 .
 .

 

Why?

 

Thanks

Tags: asked December 1, 2012
MV
0

4 Answers

0

It appears to be a bug limited to the case of the first input being a string array and the second being just a string. It has been posted on the bug list for development to look at.

0

Thanks. Actually in the case you mentioned it returns 1 instead of . and . instead of 1. There should be a typo in the "underline" code. Do you know I can modify he underline code of this command manually?

MV
0
0

Unfortunately, the code for this command cannot be modified by the user, but here is a procedure (with an example) that you can use as a workaround until a patch is released with this bug fixed:

what = "1"$|"2"$|"3";
where = "1";
print indsav(what, where);
print "---------------";
print indsavtmp(what, where);

proc (1) = indsavtmp(what, where);
//If where is a string, force it
//to be a string array as workaround
 if type(where) == 13;
    where = where$|where;
 endif;
retp(indsav(what, where));
endp;

type is a command that returns the type of a variable. The number 13 means a string.

0

This fix has been implemented in version 13.0.6 and is now available for download.