The following is an example of a sample call to the REXX interpreter:
Sample call to the REXX interpreter
LONG return_code; /* interpreter return code */
RXSTRING argv[1]; /* program argument string */
RXSTRING retstr; /* program return value */
SHORT rc; /* converted return code */
CHAR return_buffer[250]; /* returned buffer */
/* build the argument string */
MAKERXSTRING(argv[0], macro_argument,
strlen(macro_argument));
/* set up default return */
MAKERXSTRING(retstr, return_buffer, sizeof(return_buffer));
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 */
/* process return value */
.
.
.
/* need to return storage? */
if (RXSTRPTR(retval) != return_buffer)
DosFreeMem(RXSTRPTR(retval)); /* release the RXSTRING */