Google
 

Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_SRC_1_19910112 - 7/language-sources/nxtf20.b36
There are 21 other files named nxtf20.b36 in the archive. Click here to see a list.
MODULE NXTF20(                          ! Get next file in list of local files
              IDENT='1',
              ENTRY(RL$NEXTFILE)
              )=
BEGIN
!  COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1981, 1986.
!  ALL RIGHTS RESERVED.
!  
!  THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY  BE  USED  AND
!  COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH
!  THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE.   THIS  SOFTWARE  OR
!  ANY  OTHER  COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE
!  AVAILABLE TO ANY OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE
!  SOFTWARE IS HEREBY TRANSFERRED.
!  
!  THE INFORMATION IN THIS SOFTWARE IS  SUBJECT  TO  CHANGE  WITHOUT
!  NOTICE  AND  SHOULD  NOT  BE CONSTRUED AS A COMMITMENT BY DIGITAL
!  EQUIPMENT CORPORATION.
!  
!  DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF
!  ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL.


!++
! FACILITY:  DAP
!
! ABSTRACT:  Routines to transfer records or blocks of file data.
!
!
! ENVIRONMENT:  RMS, BLISSNET, XPORT, Transportable code.
!
! AUTHOR:	Andrew Nourse, CREATION DATE:  14-Sep-82
!
! 01	- Write code to handle multiple local input filespecs
!--
!
! INCLUDE FILES:
!

!LIBRARY 'BLI:XPORT';
 LIBRARY 'RMS';
 LIBRARY 'BLISSNET';
 LIBRARY 'CONDIT';
 LIBRARY 'DAP';
%BLISS36(
LIBRARY 'TWENTY';
! LIBRARY 'BLI:TENDEF';
! LIBRARY 'BLI:MONSYM';
)
REQUIRE 'JSYSDEF';

!
! Table of Contents
!

FORWARD ROUTINE
RL$NEXTFILE;

!
! Externals
!
EXTERNAL ROUTINE RL$MERGE;
GLOBAL ROUTINE RL$NEXTFILE(FAB: REF $FAB_DECL, ERR)=
BEGIN
BIND NAM=.FAB[FAB$A_NAM]: $NAM_DECL;
BIND ROUTINE $$ERRRTN=.ERR: RMS_ERCAL;
LOCAL BEGPTR;

 JSYS_RLJFN(.FAB[FAB$H_JFN]);       ! Flush old JFN
 FAB[FAB$H_JFN]=0;                  ! 

IF NAM EQL 0 THEN RETURN 0;             ! Cannot do without name block

BEGPTR=CH$PLUS(.FAB[FAB$A_FNA],.NAM[NAM$H_WCC_NEXT]); ! Point to spec delimiter
SELECT CH$RCHAR_A(BEGPTR) OF
SET
[%C',', %C'+']:
     BEGIN
     NAM[NAM$H_WCC_COUNT]=0;            ! No files on this spec yet
     NAM[NAM$H_WCC_NEXT]=.NAM[NAM$H_WCC_NEXT]+1; ! Point to next filespec
     RL$MERGE(FAB[$],MERGE$M_EXPANDED+MERGE$M_POINT,.ERR);  ! Merge & get JFN
     (.FAB[FAB$H_STS] EQL RMS$_SUC)
     END;
[OTHERWISE]:
     BEGIN
     FAB[FAB$H_STS]=RMS$_NMF;
     $$ERROR(OPEN,FAB[$]);
     END;
TES
END;
END ELUDOM