Last on my list for today Rick.  <grin>

As far as I can tell the return from RexxStart() is the same as that
in the converted return code parameter.  In other words, in the
following, return_code and rc are always the same.

return_code = RexxStart(1,                      /* one argument */
                                    argv,                  /* argument array */
                                    "CHANGE.ED",  /* Rexx procedure name */
                                    NULL,                /* use disk version */
                                    "Editor",             /* default
address name */
                                    RXCOMMAND,   /* calling as a subcommand */
                                    NULL,                /* no exits used */
                                    &rc,                   /*
converted return code */
                                    &retstr);             /* returned result */

In the above, if CHANGE.ED returns 54, then return_code is also 54.
The current docs indicate that any positive return is an error with
RexxStart() and imply the error number is an operating system error
number.  54 is, on Windows, The network is busy.

I think the doc should be changed to just state that return_code and
rc (converted return code) are the same. (I'll do the rewirite.)

But, I can't seem to track down, even using the debugger, where
arguments.rc gets updated.  Are there any cases where return_code
would not equal rc?

These 3 Rexx programs show what I mean, when run through RexxStart()

/* Rexx */
use arg i; return i

C:\work.ooRexx\other\examples\4.0.examples>rxstart echoArg.rex
Invoke RexxStart() with program: echoArg.rex argument: 1
... RexxStart() return code=[1] | returned result value=[1] |
converted return code=[1]
---
Invoke RexxStart() with program: echoArg.rex argument: 2
... RexxStart() return code=[2] | returned result value=[2] |
converted return code=[2]
---
Invoke RexxStart() with program: echoArg.rex argument: 3
... RexxStart() return code=[3] | returned result value=[3] |
converted return code=[3]
---
Invoke RexxStart() with program: echoArg.rex argument: 4
... RexxStart() return code=[4] | returned result value=[4] |
converted return code=[4]
---
Invoke RexxStart() with program: echoArg.rex argument: 5
... RexxStart() return code=[5] | returned result value=[5] |
converted return code=[5]

/* Rexx */
use arg i; return i - 10

C:\work.ooRexx\other\examples\4.0.examples>rxstart echoArg.rex
Invoke RexxStart() with program: echoArg.rex argument: 1
... RexxStart() return code=[-9] | returned result value=[-9] |
converted return code=[-9]
---
Invoke RexxStart() with program: echoArg.rex argument: 2
... RexxStart() return code=[-8] | returned result value=[-8] |
converted return code=[-8]
---
Invoke RexxStart() with program: echoArg.rex argument: 3
... RexxStart() return code=[-7] | returned result value=[-7] |
converted return code=[-7]
---
Invoke RexxStart() with program: echoArg.rex argument: 4
... RexxStart() return code=[-6] | returned result value=[-6] |
converted return code=[-6]
---
Invoke RexxStart() with program: echoArg.rex argument: 5
... RexxStart() return code=[-5] | returned result value=[-5] |
converted return code=[-5]
---

/* Rexx */
use arg i

  x = 3 / 0

return i - 10

C:\work.ooRexx\other\examples\4.0.examples>rxstart echoArg.rex
Invoke RexxStart() with program: echoArg.rex argument: 1
     3 *-* x = 3 / 0
Error 42 running C:\work.ooRexx\other\examples\4.0.examples\echoArg.rex
line 3:  Arithmetic overflow/underflow
Error 42.3:  Arithmetic overflow; divisor must not be zero
... RexxStart() return code=[-42] | returned result value=[null
string] | converted return code=[-42]
---
Invoke RexxStart() with program: echoArg.rex argument: 2
     3 *-* x = 3 / 0
Error 42 running C:\work.ooRexx\other\examples\4.0.examples\echoArg.rex
line 3:  Arithmetic overflow/underflow
Error 42.3:  Arithmetic overflow; divisor must not be zero
... RexxStart() return code=[-42] | returned result value=[null
string] | converted return code=[-42]
---
Invoke RexxStart() with program: echoArg.rex argument: 3
     3 *-* x = 3 / 0
Error 42 running C:\work.ooRexx\other\examples\4.0.examples\echoArg.rex
line 3:  Arithmetic overflow/underflow
Error 42.3:  Arithmetic overflow; divisor must not be zero
... RexxStart() return code=[-42] | returned result value=[null
string] | converted return code=[-42]
---
Invoke RexxStart() with program: echoArg.rex argument: 4
     3 *-* x = 3 / 0
Error 42 running C:\work.ooRexx\other\examples\4.0.examples\echoArg.rex
line 3:  Arithmetic overflow/underflow
Error 42.3:  Arithmetic overflow; divisor must not be zero
... RexxStart() return code=[-42] | returned result value=[null
string] | converted return code=[-42]
---
Invoke RexxStart() with program: echoArg.rex argument: 5
     3 *-* x = 3 / 0
Error 42 running C:\work.ooRexx\other\examples\4.0.examples\echoArg.rex
line 3:  Arithmetic overflow/underflow
Error 42.3:  Arithmetic overflow; divisor must not be zero
... RexxStart() return code=[-42] | returned result value=[null
string] | converted return code=[-42]
---

------------------------------------------------------------------------------
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to