SUBROUTINE RESOLVE.PATH(DICT, FILENAME, PATH, ERROR)
****
*
LastUpdated... = "Rev: 09:49 27JUL88 REP REP 32 Z UTILITIES>BP>RESOLVE.PATH.IBAS"
*
****
*
* Description:
*    Given a DICT and FILENAME entry this subroutine will determine to the
* best of it's ability the complete path to that file.  If FILENAME is not
* a file an ERROR will be generated.
*
****
*                           R E V I S I O N   L O G
* PR#     WHEN     WHO        WHY
* ======= ======== ========== ==========================================
* SPAWN   09JUN87  ATM        INITIAL CODING
*
****


     COMMON /DEVSYS/ VOC.FILE

     IF DICT EQ '' THEN
        FIELD = 2
     END ELSE
        FIELD = 3
     END
     READ DESCRIPTOR FROM VOC.FILE,FILENAME ELSE
        STOP 'Unable to read ':FILENAME:' from VOC file.'
     END
     TYPE = DESCRIPTOR<1>[1,1]
     IF TYPE NE 'F' THEN
        ERROR = 'The VOC entry for this object is not of type "F".'
        RETURN
     END
     PATH = DESCRIPTOR<FIELD>
     CURRENT.ATTACH.POINT = ''
     CALL *FULL.PATH(CURRENT.ATTACH.POINT)
     ROOT = FIELD(PATH,'>',1)
     REST = FIELD(PATH,'>',2,LEN(PATH))
     IF REST NE '' THEN
        REST = '>':REST
     END
     IF ROOT MATCH @WHO:@VM:'*' THEN
        PATH = CURRENT.ATTACH.POINT : REST
     END ELSE
        IF REST EQ '' THEN
           PATH = CURRENT.ATTACH.POINT : '>' : ROOT
        END
     END
     RETURN
  END
