Program macro examples

These examples show three different methods of coding a FIND command for a program macro. They are typed using PL/I syntax:
  • CALL ISPLINK ('ISREDIT',LEN0,'¢FIND XYZ¢')
  • CALL ISPLINK ('ISREDIT',LEN8,'FIND XYZ')
  • CALL ISPEXEC (LEN16,'ISREDIT FIND XYZ')
where:
  • LEN0
    A fullword program variable with a value of 0.
    LEN8
    A fullword program variable with a value of 8.
    LEN16
    A fullword program variable with a value of 16.
In each of these examples, the rest of the command is typed as a literal value.

The first two examples use the ISPLINK syntax. In the ISPLINK call, ISREDIT is passed as the first parameter and is omitted from the command buffer.

The first example uses a special interface. A zero length can be passed, but only when the command is delimited by a special character. A special character cannot be an alphanumeric character. If the length is zero and if a valid delimiter is the first character in the command buffer, a scan of the command is done to find the next occurrence of that character. The command length is the number of characters between the two delimiters. Here, the cent sign (¢) is used as a delimiter. When a zero length is passed, the maximum buffer length is 255 bytes.

In the second example, an explicit length of 8 is used and the command buffer contains the command without delimiters.

The third example uses the ISPEXEC syntax. This syntax always requires the length of the command buffer to be passed. The command buffer includes the ISREDIT prefix, and is typed the same way as a CLIST or REXX command.