Google
 

Trailing-Edge - PDP-10 Archives - bb-r775e-bm_tops20_ks_upd_5 - sources/edt/final.bli
There are 11 other files named final.bli in the archive. Click here to see a list.
 %TITLE 'FINAL - end of EDT processing'
MODULE FINAL (				! End of EDT processing
		IDENT = '3-003'			! File: FINAL.BLI Edit: GB3003
		) =
BEGIN
!
!			  COPYRIGHT (c) 1981, 1985 BY
!	      DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
!		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 WHICH IS NOT SUPPLIED BY DIGITAL.
!

!++
! FACILITY:	EDT -- The DEC Standard Editor
!
! ABSTRACT:
!
!	End of EDT processing.
!
! ENVIRONMENT:	Runs at any access mode - AST reentrant
!
! AUTHOR: Bob Kushlis, CREATION DATE: August 6, 1979
!
! MODIFIED BY:
!
! 1-001	- Original.  DJS 18-FEB-1981.  This module was created by
!	extracting routine EDT$$TERMIN  from module TINPUT.
! 1-002	- Regularize headers and call EDT$$WF_CLS  to close the work file.
!	   JBS 19-Feb-1981
! 1-003	- Fix module name and file name.  JBS 04-Mar-1981
! 1-004	- Fix the file name.  JBS 11-Mar-1981
! 1-005	- Change SY_EXIT to EDT$$SYS_EXI .  JBS 31-Mar-1981
! 1-006 - Change the handling of deleting the journal file. STS 18-Jan-1982
! 1-007 - Use routine EDT$WORKIO to close workfile. STS 08-Feb-1982
! 1-008 - Deallocate workfile descriptor, WF_DESC. STS 15-Feb-1982
! 1-009 - Add literals for callable parameters. STS 08-Mar-1982
! 1-010	- Don't reference JOU.  JBS 23-Mar-1982
! 1-011 - Check for open files and close them. STS 07-Apr-1982
! 1-012	- Print messages on CLOSE errors.  JBS 12-Apr-1982
! 1-013 - Add a close of the help file for VMS.  SMB 28-May-1982
! 1-014	- Print a better message if the work file fails to close.  JBS 01-Jun-1982
! 1-015 - Restore the original terminal width if changed. STS 08-Jul-1982
! 1-016	- Fix the PDP-11 external declarations for edit 1-015.  JBS 10-Jul-1982
! 1-017 - Call a routine to reset the screen width.  SMB 29-Jul-1982
! 1-018 - Make use of the bit masks in the options word. STS 17-Aug-1982
! 1-019	- Fix up references to EDT$M_ symbols.  JBS 23-Aug-1982
! 1-020 - Make sure everything is put to journal file. STS 08-Oct-1982
! 1-021 - Remove the deallocation of edt$$z_wf_desc. STS 11-Nov-1982
! 1-022 - Only set the screen width back if it has changed.  SMB 17-Feb-1982
! 3-001 - Modify for TOPS-20. CJG 19-Apr-1983
! 3-002 - Add updates from V3 source kit.  GB 27-Apr-1983
! 3-003 - Remove call to EDT$$CALLFIO, and EDT$$CALLWIO. CJG 10-Jun-1983
!--

%SBTTL 'Declarations'
!
! TABLE OF CONTENTS:
!

REQUIRE 'EDTSRC:TRAROUNAM';

FORWARD ROUTINE
    EDT$$TERMIN;

!
! INCLUDE FILES:
!

REQUIRE 'EDTSRC:EDTREQ';

REQUIRE 'SYS:JSYS';

!
! MACROS:
!
!	NONE
!
! EQUATED SYMBOLS:
!

EXTERNAL LITERAL
    EDT$M_NOJOURNAL,
    EDT$K_INPUT_FILE,
    EDT$K_COMMAND_FILE,
    EDT$K_JOURNAL_FILE,
    EDT$K_CLOSE,
    EDT$K_CLOSE_DEL;

!
! OWN STORAGE:
!
!	NONE
!
! EXTERNAL REFERENCES:
!
!	In the routine
%SBTTL 'EDT$$TERMIN  - end of EDT processing'

GLOBAL ROUTINE EDT$$TERMIN 			! End of EDT processing
    =

!++
! FUNCTIONAL DESCRIPTION:
!
!	Terminate EDT processing by cleaning things up.
!
! FORMAL PARAMETERS:
!
!	NONE
!
! IMPLICIT INPUTS:
!
!	EXITD
!	OPTIONS
!
! IMPLICIT OUTPUTS:
!
!	NONE
!
! ROUTINE VALUE:
!
!	Same as EDT$$SYS_EXI
!
! SIDE EFFECTS:
!
!	Calls EDT$$SYS_EXI
!
!--

    BEGIN

    EXTERNAL ROUTINE
	EDT$FILEIO,
	EDT$$WF_CLS,
	EDT$$TI_RES,
	EDT$$OUT_FMTBUF,
	EDT$$SC_SETWID,
    	EDT$$TI_FLUSHJOUFI,
	EDT$$SYS_EXI,
	EDT$$FMT_MSG : NOVALUE,
	EDT$$FATAL_IOERR : NOVALUE;

    EXTERNAL
	HELP_SET,			! Help file JFN
	CMD_OPN,			! command file open flag
	EXITD,				! Editor exit flag.
	OPTIONS : BITVECTOR [32],	! Various flags
	TI_WID,				! Terminal's current width
	TI_RESET,			! Has the terminal been reset
	INPUT_OPN,			! main input file open flag
	SAV_TIWID,			! original terminal width
	TI_TYP;				! terminal type

    MESSAGES ((INPFILCLO, JOUFILCLO, COMFILCLO, HLPFILCLO));
!+
! Close the work file.  On VMS deallocate the record descriptor and
! close the Help File
!-

    IF (.HELP_SET NEQ 0)
    THEN
	IF ( NOT _RLJFN(.HELP_SET)) THEN EDT$$FMT_MSG (EDT$_HLPFILCLO);

!+
! Close the work file. If this fails, then EDT$WORKIO does not return.
!-

    EDT$$WF_CLS ();

    IF (.TI_RESET) THEN EDT$$TI_RES ();

    IF (.TI_WID NEQ .SAV_TIWID) THEN EDT$$SC_SETWID (.SAV_TIWID);


!+
! If the input file is still open, close it.
!-

    IF (.INPUT_OPN)
    THEN

	IF ( NOT (EDT$FILEIO (EDT$K_CLOSE, EDT$K_INPUT_FILE, 0)))
	    THEN EDT$$FATAL_IOERR (EDT$_INPFILCLO, -1);

!+
! If the command file is still open, close it.
!-

    IF .CMD_OPN
    THEN

	IF ( NOT (EDT$FILEIO (EDT$K_CLOSE, EDT$K_COMMAND_FILE, 0)))
	    THEN EDT$$FATAL_IOERR (EDT$_COMFILCLO, -1);

!+
! Close the journal file, deleting it if EXITD is 1.
! Failure to properly close the journal file is fatal.
!-

    IF ((.OPTIONS AND EDT$M_NOJOURNAL) EQL 0)	! NOT /NOJOURNAL
    THEN
	BEGIN

	LOCAL
	    CODE;

	IF (.EXITD EQL 1) THEN CODE = EDT$K_CLOSE_DEL ELSE CODE = EDT$K_CLOSE;

	IF ( NOT (EDT$FILEIO (.CODE, EDT$K_JOURNAL_FILE, 0)))
	    THEN EDT$$FATAL_IOERR (EDT$_JOUFILCLO, -1);

	END;

    RETURN (EDT$$SYS_EXI (0));
    END;					! of routine EDT$TERMIN


END
ELUDOM