Trailing-Edge
-
PDP-10 Archives
-
tops20-v7-ft-dist1-clock
-
7-sources/wfstrins.bli
There are 10 other files named wfstrins.bli in the archive. Click here to see a list.
%TITLE 'WFSTRINS - start an INSERT operation'
MODULE WFSTRINS ( ! Start an INSERT operation
IDENT = '1-002' ! File: WFSTRINS.BLI Edit: JBS1002
) =
BEGIN
!COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1981, 1988. 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: EDT -- The DEC Standard Editor
!
! ABSTRACT:
!
! Start an INSERT operation.
!
! ENVIRONMENT: Runs at any access mode - AST reentrant
!
! AUTHOR: Bob Kushlis, CREATION DATE: October 16, 1978
!
! MODIFIED BY:
!
! 1-001 - Original. DJS 23-Feb-1981. This module was created by
! extracting routine EDT$$START_INS from module EDTWF.
! 1-002 - Regularize headers. JBS 19-Mar-1981
!--
%SBTTL 'Declarations'
!
! TABLE OF CONTENTS:
!
REQUIRE 'EDTSRC:TRAROUNAM';
FORWARD ROUTINE
EDT$$START_INS : NOVALUE;
!
! INCLUDE FILES:
!
REQUIRE 'EDTSRC:EDTREQ';
!
! MACROS:
!
! NONE
!
! EQUATED SYMBOLS:
!
! NONE
!
! OWN STORAGE:
!
! NONE
!
! EXTERNAL REFERENCES:
!
! In the routine
%SBTTL 'EDT$$START_INS - start an INSERT operation'
GLOBAL ROUTINE EDT$$START_INS ! Start an INSERT operation
: NOVALUE =
!++
! FUNCTIONAL DESCRIPTION:
!
! This routine is called to start the insertion of text. The new lines
! will be inserted immediately before the current line. The insert
! count (WK_INSCNT ) is set to zero, and the numbers of the current and
! preceding lines are saved.
!
! FORMAL PARAMETERS:
!
! NONE
!
! IMPLICIT INPUTS:
!
! WK_LN
! WK_NXTLNO
! WK_STARTNO
! LNO_ZERO
!
! IMPLICIT OUTPUTS:
!
! WK_INSCNT
!
! ROUTINE VALUE:
!
! NONE
!
! SIDE EFFECTS:
!
! NONE
!
!--
BEGIN
EXTERNAL ROUTINE
EDT$$RD_PRVLN,
EDT$$RD_NXTLN;
EXTERNAL
WK_INSCNT : LN_BLOCK, ! The count of inserted lines
WK_LN : REF LIN_BLOCK, ! Pointer to current line
WK_NXTLNO : LN_BLOCK, ! Line number following an insert
WK_STARTNO : LN_BLOCK, ! Line number of line preceding an insert
LNO_ZERO : LN_BLOCK;
!+
! Zero out the insert line counter
!-
MOVELINE (LNO_ZERO, WK_INSCNT);
!+
! Save the current line number, bucket number, and line address
!-
MOVELINE (WK_LN [LIN_NUM], WK_NXTLNO);
!+
! Find the prevsious line number
!-
IF EDT$$RD_PRVLN ()
THEN
BEGIN
MOVELINE (WK_LN [LIN_NUM], WK_STARTNO);
EDT$$RD_NXTLN ()
END
ELSE
!+
! Make the previous line number 0 if the insert is at the beginning of the buffer
!-
MOVELINE (LNO_ZERO, WK_STARTNO)
END;
END
ELUDOM