Guardian Programmer's Guide

Table Of Contents
Using DEFINEs
Guardian Programmer’s Guide 421922-014
7 - 4
Example of a CLASS SEARCH DEFINE
FILENUM);
IF ERROR <> 0 THEN ...
Example of a CLASS SEARCH DEFINE
The following example sets up attributes for a DEFINE named
=_PROGRAM_SEARCH using procedures DEFINESETATTR and DEFINEADD.
Later, the program calls the FILENAME_RESOLVE_ procedure to find the name within
the search paths set up by the search DEFINE. FILENAME_RESOLVE_ returns the
fully qualified file name.
ATTRIBUTE^NAME ':=' "CLASS ";
ATTRIBUTE^VALUE ':=' "SEARCH";
ATTRIBUTE^LENGTH := 6;
ERROR := DEFINESETATTR(ATTRIBUTE^NAME,
ATTRIBUTE^VALUE,
ATTRIBUTE^LENGTH,
DEFAULT^NAMES);
IF ERROR <> 0 THEN ...
ATTRIBUTE^NAME ':=' "SUBVOL0 ";
ATTRIBUTE^VALUE ':=' "=_DEFAULTS";
ATTRIBUTE^LENGTH := 10;
ERROR := DEFINESETATTR(ATTRIBUTE^NAME,
ATTRIBUTE^VALUE,
ATTRIBUTE^LENGTH,
DEFAULT^NAMES);
IF ERROR <> 0 THEN ...
ATTRIBUTE^NAME ':=' "SUBVOL1 ";
ATTRIBUTE^VALUE ':=' "$APPPROG.MYPROGS,$APPPROG.YOURPGS";
ATTRIBUTE^LENGTH := 33;
ERROR := DEFINESETATTR(ATTRIBUTE^NAME,
ATTRIBUTE^VALUE,
ATTRIBUTE^LENGTH,
DEFAULT^NAMES);
IF ERROR <> 0 THEN ...
DEFINE^NAME ':=' "=_PROGRAM_SEARCH "
LENGTH := 16;
ERROR := DEFINEADD(DEFINE^NAME);
IF ERROR <> 0 THEN ...
.
.
.
CALL FILENAME_RESOLVE_(OBJFILE:P^LEN,
FULL^NAME:MAX^LEN,
FULL^LEN,
!options!,
!override^name:length!,
DEFINE^NAME:LENGTH);
Refer to Section 13, Manipulating File Names, for details of the
FILENAME_RESOLVE_ procedure and other procedures that manipulate file names.