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 */