*DECK DB$SR57 
USETEXT MD10CTX 
USETEXT SCANTXT 
      PROC DB$SR57; 
      BEGIN 
 #
* *   DB$SR57 - STORE LFN INTO FILENAM           PAGE  1
* *   J. G. SERPA                                DATE  10/13/80 
* 
* DC  PURPOSE 
* 
*     VERIFY THAT LFN IS LEGAL AND STORE IT INTO FILENAM
* 
* DC  ENTRY CONDITIONS
* 
*     CURWORD CONTAINS THE LFN
*     DB$CLNG CONTAINS THE LENGTH IN CHARACTERS OF THE LFN
* 
* DC  EXIT CONDITIONS 
* 
*     IF THE LFN IS LEGAL, IT IS STORED INTO CELL FILENAM AND EXIT IS 
*     TO DB$YES. OTHERWISE, EXIT IS TO DB$NO. 
* 
* DC  CALLING ROUTINES
* 
*     DB$SNTX - SYNTAX CRACKER (SYNGEN) 
* 
* DC  CALLED ROUTINES 
* 
# 
      XREF FUNC DB$CPFN B;         # CHECK IF CURWORD IS LEGAL PFN     #
      XREF PROC DB$NO;             # SYNTAX TABLE DRIVER -NO- RETURN   #
      XREF PROC DB$YES;            # SYNTAX TABLE DRIVER -YES- RETURN  #
# 
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     FILENAM IN (1,0) COMMON 
* 
* DC  DESCRIPTION 
* 
*     CALL DB$CPFN TO CHECK IF CURWORD CONTAINS A VALID LFN. IF THE 
*     CONTENTS OF CURWORD ARE NOT A VALID LFN (DB$CPFN = FALSE), OR 
*     THE FILE NAME HAS ALREADY BEEN SPECIFIED, EXIT TO DB$NO.
*     OTHERWISE, STORE CURWORD INTO FILENAM AND EXIT TO DB$YES. 
* 
 #
      CONTROL EJECT;
  
      IF NOT DB$CPFN               # IF LFN IS NOT VALID               #
        OR (FILENAM NQ 0)          # OR HAS ALREADY BEEN SPECIFIED     #
      THEN
        BEGIN 
        DB$NO;                     # EXIT TO NO SIDE                   #
  
        END 
      C<0,DB$CLNG>FILENAM = C<0,DB$CLNG>CURWORD[0];  # STORE LFN       #
      DB$YES; 
      END 
      TERM
