Problem: Passing a null string as a command (which is not a valid command) to the CMD interpreter will return the SYS0008 error message after the 32nd iteration.
Example:
/* example for the SYS0008 bug */ do i=1 to 33 /* the next stmt returns a */ /* null string to the CMD */ /* which leads to the */ /* SYS0008 error after the */ /* 32nd execution. */ Beep(220,250) say "i is " || i || ", rc is " || RC end /* do i=1 to 33 */
Note that you can replace the statement Beep(220,250) with every other statement returning a null string -- even with a function defined in your REXX program!
This seems to be an OS/2 interpreter bug. Note that 4OS2 does handle this situation correctly.
Hint: Do not use a function returning a null string this way (see also SYS0008).
This bug seems to be fixed in WARP 4 Fixpack #5.