Example

The following is a sample of macrospace usage:
Sample macrospace usage

                                       /* first load entire package  */
  RexxLoadMacroSpace(0, NULL, "EDITOR.MAC");
  for (i = 0; i < MACRO_COUNT; i++) {  /* verify each macro          */
                                       /* if not there               */
    if (RexxQueryMacro(macroφi∙, &position))
                                       /* add to list                */
      RexxAddMacro(macroφi∙, macro_filesφi∙,
          RXMACRO_SEARCH_BEFORE);
  }
                                       /* rebuild the macrospace     */
  RexxSaveMacroSpace(0, NULL, "EDITOR.MAC");
.
.
.

                                       /* build the argument string  */
  MAKERXSTRING(argv[0], macro_argument,
      strlen(macro_argument));
                                       /* set up default return      */
  MAKERXSTRING(retstr, return_buffer, sizeof(return_buffer));
                                       /* set up for macrospace call */
  MAKERXSTRING(macrospace[0],NULL, 0);
  MAKERXSTRING(macrospace[1],NULL, 0);
  return_code = RexxStart(1,           /* one argument               */
                          argv,        /* argument array             */
                          macro[pos],  /* REXX procedure name        */
                          macrospace,  /* use macrospace version     */
                          "Editor",    /* default address name       */
                          RXCOMMAND,   /* calling as a subcommand    */
                          NULL,        /* no exits used              */
                          &rc,         /* converted return code      */
                          &retstr);    /* returned result            */


[Back: Macrospace Interface Returns]
[Next: Sample REXX Programs]