Trailing-Edge
-
PDP-10 Archives
-
BB-H138F-BM_1988
-
7-sources/lshow.bli
There are 10 other files named lshow.bli in the archive. Click here to see a list.
%TITLE 'LSHOW - SHOW line-mode command'
MODULE LSHOW ( ! SHOW line-mode command
IDENT = '3-007' ! File: LSHOW.B36 Edit: CJG3007
) =
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:
!
! This module executes the line mode SHOW command.
!
! ENVIRONMENT: Runs at any access mode - AST reentrant
!
! AUTHOR: Bob Kushlis, CREATION DATE: February 3, 1978
!
! MODIFIED BY:
!
! 1-001 - Original. DJS 30-JAN-1981. This module was created by
! extracting the routine EDT$$SHW_CMD from the module EXEC.BLI.
! 1-002 - Regularize headers. JBS 20-Mar-1981
! 1-003 - Change E_VERSION to VER . JBS 31-Mar-1981
! 1-004 - Use the ASSERT macro. JBS 01-Jun-1981
! 1-005 - Use new message codes. JBS 06-Aug-1981
! 1-006 - Add show command for REPEAT. STS 26-Aug-1981
! 1-007 - Add show command for FNF. TMV 10-Sept-1981
! 1-008 - Add show command for WPS search type and SUMMARY.
! Also a stub for PROMPT. STS 01-Oct-1981
! 1-009 - Add show command for the text of page and end. STS 06-Oct-1981
! 1-010 - Implement SHOW PROMPT. JBS 21-Oct-1981
! 1-011 - Add show word and show para. STS 22-Oct-1981
! 1-012 - Add four more prompts and don't document their lengths. JBS 23-Oct-1981
! 1-013 - remove external reference to INI_TXT. It was never used here
! anyway. STS 06-Nov-1981
! 1-014 - Add SHOW HELP command. SMB 18-Dec-1981
! 1-015 - Change SHO BUF to call 48-bit count display module. SMB 5-Feb-1982
! 1-016 - Add show autorepeat. JBS 09-Feb-1982
! 1-017 - Use VERSION.REQ to define the version number of EDT JBS 09-Mar-1982
! 1-018 - Add SHOW COMMAND. JBS 04-May-1982
! 1-019 - Change format of SHOW HELP. SMB 25-May-1982
! 1-020 - Change SHOW HELP for the 11's. SMB 2-Jun-1982
! 1-021 - Track changes to SET COMMAND in SHOW COMMAND. JBS 07-Jun-1982
! 1-022 - Make all the show messages look alike. STS 08-Jun-1982
! 1-023 - Correct counts in SHOW WORD and SHOW PARA messages. JBS 09-Jun-1982
! 1-024 - Modify for new message processing. SMB 29-Jun-1982
! 1-025 - Add CRLF to SHOW BUFFER if using TI_WRSTR. SMB 02-Jun-1982
! 1-026 - Use EDT$$FMT_CRLF instead of EDT$$OUT_FMTBUF. JBS 05-Jul-1982
! 1-027 - Remove prompt PRTC. 07-Jul-1982
! 1-028 - Add two new SHOW SEARCH possibilities. JBS 20-Jul-1982
! 1-029 - Add the SHOW FILES command. SMB 04-Aug-1982
! 1-030 - Add a check for READONLY output files to edit 1-029. SMB 09-Aug-1982
! 1-031 - New design for defined keys. JBS 13-Aug-1982
! 1-032 - Make use of the bit masks for the options word. 17-Aug-1982
! 1-033 - Fix up references to the EDT$M_ symbols. JBS 23-Aug-1982
! 1-034 - Add information to SHOW TERM. JBS 02-Sep-1982
! 1-035 - Improve SHOW TERM printout and add copyright statement to SHOW VERSION. JBS 17-Sep-1982
! 1-036 - More improvements to SHOW TERMINAL. JBS 29-Oct-1982
! 1-037 - Change placement of colons in SHOW FILES. SMB 20-Dec-1982
! 1-038 - Add conditionals for WPS support and VT220 support. JBS 10-Feb-1983
! 1-039 - Correct the sense of SHOW WORD. JBS 11-Feb-1983
! 1-040 - Print key definitions in segments. JBS 07-Mar-1983
! 3-001 - Fix various string ptrs, %C's and string constants. Make this
! a 10/20 specific module. GB 28-Feb-1983
! 3-002 - Change numbers to symbols to make the module more readable.
! CJG Ides of March, 1983
! 3-003 - Fix EDT$$FMT_STR and EDT$$FMT_STRCNT. CJG 22-Mar-1983
! 3-004 - Add SHOW CONTROL-T command. CJG 25-Sep-1983
! 3-005 - Add new message for SHOW FILES when invoked with CREATE. CJG 12-Oct-1983
! 3-006 - Add ignore string to SHOW SEARCH. CJG 2-Nov-1983
! 3-007 - Modify ASSERT macro to include error code. CJG 30-Jan-1984
!--
%SBTTL 'Declarations'
!
! TABLE OF CONTENTS:
!
REQUIRE 'EDTSRC:TRAROUNAM';
FORWARD ROUTINE
EDT$$SHW_CMD : NOVALUE; ! Process the SHOW command
!
! INCLUDE FILES:
!
LIBRARY 'EDTSRC:SUPPORTS';
LIBRARY 'EDTSRC:KEYPADDEF';
REQUIRE 'EDTSRC:EDTREQ';
REQUIRE 'EDTSRC:PARLITS';
REQUIRE 'EDTSRC:VERSION';
!
! MACROS:
!
! NONE
!
! EQUATED SYMBOLS:
!
! NONE
!
! OWN STORAGE:
!
! NONE
!
! EXTERNAL REFERENCES:
!
! In the routine
%SBTTL 'EDT$$SHW_CMD - SHOW line-mode command'
GLOBAL ROUTINE EDT$$SHW_CMD ! SHOW line-mode command
: NOVALUE =
!++
! FUNCTIONAL DESCRIPTION:
!
! Command processing routine for SHOW. The current command node
! field SET_TYPE gives an index for the type of SHOW which is
! being done. Case on this and put the stuff out.
!
! FORMAL PARAMETERS:
!
! NONE
!
! IMPLICIT INPUTS:
!
! TRN_TBLINIT
! BUF_LST
! CAS_FLG
! EDIT_DFLTMOD
! US_ENT
! CMD_NAM
! EXCT_MATCH
! FNF_MSGFLG
! US_TXT
! KPAD
! NOS
! QUIET
! SEA_BEG
! RPT
! SEA_BNDD
! SCR_LNS
! SCLL_BOT
! SCLL_TOP
! TAB_SIZ
! CUR_BUF
! TAB_LVL
! TRUN
! TI_TYP
! TI_WID
! VFY
! WD_WRAP
! EXE_CURCMD
! SUMRY
! ENB_AUTRPT
! PARTYP
! WRDTYP
! PMT_LINE
! PMT_KPD
! PMT_NOKPD
! PMT_HCCHG
! PMT_INS
! PMT_INSN
! PMT_QUERY
! CTRL_T
!
! IMPLICIT OUTPUTS:
!
! NONE
!
! ROUTINE VALUE:
!
! NONE
!
! SIDE EFFECTS:
!
! NONE
!
!--
BEGIN
EXTERNAL ROUTINE
EDT$$FMT_CRLF, ! Terminate an output line
EDT$$TI_WRSTR,
EDT$$SET_HLPFNAM,
EDT$$FMT_STRCNT,
EDT$$TST_BADK,
EDT$$FMT_CH,
EDT$$FMT_DCML,
EDT$$FMT_STR,
EDT$$OUT_FMTBUF,
EDT$$MSG_TOSTR,
EDT$$FIND_KEY, ! Find a key's definition
EDT$$DEF_DFLTK, ! Define the default keypad
EDT$$FMT_CHWID; ! Compute the width of a character
EXTERNAL LITERAL
EDT$M_NOOUTPUT;
EXTERNAL
OPTIONS : BITVECTOR [36], ! bit 3 = /NOOUTPUT
INP_NAM : BLOCK, ! Input file name
OUT_NAM : BLOCK, ! Output file name
TRN_TBLINIT, ! True if translation table has been initialized
BUF_LST,
CAS_FLG,
IGN_LEN, ! Ignore length
IGN_PTR, ! Ignore pointer
EDIT_DFLTMOD,
US_ENT : VECTOR,
EXCT_MATCH,
US_TXT : VECTOR, ! user defined text
FNF_MSGFLG,
KPAD,
NOS,
QUIET,
SEA_BEG,
RPT,
SEA_BNDD,
SCR_LNS,
SCLL_BOT,
SCLL_TOP,
TAB_SIZ,
CUR_BUF : REF TBCB_BLOCK,
TAB_LVL,
TRUN,
TI_TYP,
TI_WID,
VFY,
CTRL_T, ! Control-T flag
WD_WRAP,
HELP_NAM, ! help file name
HELP_NAMLEN, ! help file name length
HELP_SET, ! flag for help file name set
CMD_NAM : BLOCK, ! Name of command file
TI_SCROLL, ! 1 = terminal has scrolling regions
%IF SUPPORT_VT220
%THEN
EIGHT_BIT, ! 1 = this is an eight-bit terminal
%FI
TI_EDIT, ! 1 = this terminal has 'edit' features (ICM, DCH, IL, DL)
FMT_LNPOS, ! Current line position
SUMRY, ! summary flag
ENB_AUTRPT, ! 1 = manipulate autorepeat in VT100, 0 = don't
WRDTYP, ! type of word flag
PARTYP, ! type of para flag
EXE_CURCMD : REF NODE_BLOCK, ! Pointer to the current command.
PMT_LINE : VECTOR, ! Counted ASCII string of line-mode prompt
PMT_KPD : VECTOR, ! Counted ASCII string of keypad prompt
PMT_NOKPD : VECTOR, ! Counted ASCII string of nokeypad prompt
PMT_HCCHG : VECTOR, ! Counted ASCII string of hard copy change mode prompt
PMT_INS : VECTOR, ! Counted ASCII string of line-mode insert prompt
PMT_INSN : VECTOR, ! Counted ASCII string of line-mode insert nonumbers prompt
PMT_QUERY : VECTOR; ! Counted ASCII string of /QUERY prompt
MESSAGES ((KEYNOTDEF, NODEFN, INVPARFOR));
CASE .EXE_CURCMD [SET_TYPE] FROM SHO_BUFF TO MAX_SHO OF
SET
[SHO_BUFF] : ! Show buffers
BEGIN
LOCAL
BUF : REF TBCB_BLOCK;
!+
! Point to first buffer.
!-
BUF = .BUF_LST;
!+
! Loop through all buffers, displaying the number of lines
! in each.
!-
WHILE (.BUF NEQA 0) DO
BEGIN
!+
! Put an equal sign before the current buffer.
!-
IF (.BUF EQL .CUR_BUF) THEN EDT$$FMT_CH (%C'=') ELSE EDT$$FMT_CH (%C' ');
EDT$$FMT_STR (CH$PTR (BUF [TBCB_NAME],, BYTE_SIZE), .BUF [TBCB_NAME_LEN]);
EDT$$FMT_CH (ASC_K_TAB);
EDT$$FMT_STRCNT (BUF [TBCB_LINE_COUNT], CH$PTR (UPLIT (%C' ')), 0);
!+
! If the buffer still has a file attached to it, then print
! an asterisk after the count to indicate there may be more
! lines than we have indicated.
!-
IF (.BUF [TBCB_INPUT_RAB] NEQ 0) THEN EDT$$FMT_CH (%C'*');
EDT$$FMT_STR (CH$PTR (UPLIT(' lines')), 6);
EDT$$FMT_CRLF ();
BUF = .BUF [TBCB_NEXT_BUF];
END;
END;
[SHO_CASE] : ! Show case
BEGIN
!+
! The following code relies on there being 5 bytes for each case type
! and also that they are stored 5 bytes/word (ie. 10/20 only)
!-
BIND
CASE_STRING = UPLIT('None UpperLower') : VECTOR [3];
EDT$$FMT_STR (CH$PTR (CASE_STRING [.CAS_FLG]), 5);
EDT$$FMT_CRLF ();
END;
[SHO_CTRLT] : ! Show control-T
BEGIN
IF (.CTRL_T EQL 0)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT ('nocontrol-T')), 11)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT ('control-T')), 9);
EDT$$FMT_CRLF ();
END;
[SHO_SRCH] : ! Show search
BEGIN
CASE .EXCT_MATCH FROM 0 TO 4 OF
SET
[0]:
EDT$$FMT_STR (CH$PTR (UPLIT ('general')), 7);
[1]:
EDT$$FMT_STR (CH$PTR (UPLIT ('exact')), 5);
[2]:
EDT$$FMT_STR (CH$PTR (UPLIT ('wps')), 3);
[3]:
EDT$$FMT_STR (CH$PTR (UPLIT ('case insensitive')), 16);
[4]:
EDT$$FMT_STR (CH$PTR (UPLIT ('diacritical insensitive')), 25);
[OUTRANGE]:
ASSERT (16, 0);
TES;
IF .SEA_BEG
THEN
EDT$$FMT_STR (CH$PTR (UPLIT(' begin ')), 7)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT(' end ')), 5);
IF (.SEA_BNDD EQL 0)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT('unbounded')), 9)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT('bounded')), 7);
IF (.IGN_LEN NEQ 0)
THEN
BEGIN
EDT$$FMT_STR (CH$PTR (UPLIT (' ignore: "')), 10);
EDT$$FMT_STR (.IGN_PTR, .IGN_LEN);
EDT$$FMT_STR (CH$PTR (UPLIT ('"')), 1);
END;
EDT$$FMT_CRLF ();
END;
[SHO_TERM] : ! Show terminal
BEGIN
CASE .TI_TYP FROM 0 TO 3 OF
SET
[ 0 ] : EDT$$FMT_STR (CH$PTR (UPLIT ('Unknown')), 7);
[ 1 ] : EDT$$FMT_STR (CH$PTR (UPLIT ('VT52')), 4);
[ 2 ] : EDT$$FMT_STR (CH$PTR (UPLIT ('VT100')), 5);
[ 3 ] : EDT$$FMT_STR (CH$PTR (UPLIT ('Hardcopy')), 8);
TES;
IF .TI_SCROLL
THEN
EDT$$FMT_STR (CH$PTR (UPLIT (', scroll')), 8)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT (', noscroll')), 10);
%IF SUPPORT_VT220
%THEN
IF .EIGHT_BIT
THEN
EDT$$FMT_STR (CH$PTR (UPLIT (', eightbit')), 10)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT (', noeightbit')), 12);
%FI
IF .TI_EDIT
THEN
EDT$$FMT_STR (CH$PTR (UPLIT (', edit')), 6)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT (', noedit')), 8);
EDT$$FMT_CRLF ();
END;
[SHO_VERS] : ! Show version
BEGIN
EDT$$FMT_STR (CH$PTR (VERSION_TEXT), VERSION_TEXT_LEN);
!+
! Show the copyright statement. If we have an eightbit terminal, we use the
! international copyright symbol, otherwise we simulate it using (C). The
! copyright statement goes on the same line as the version number.
!-
%IF SUPPORT_VT220
%THEN
IF .EIGHT_BIT
THEN
EDT$$FMT_STR (CH$PTR (COPYRIGHT_TEXT_8,, BYTE_SIZE), COPYRIGHT_TEXT_8_LEN)
ELSE
%FI
EDT$$FMT_STR (CH$PTR (COPYRIGHT_TEXT_7), COPYRIGHT_TEXT_7_LEN);
EDT$$FMT_CRLF ();
END;
[SHO_NTITY] : ! Show entity
BEGIN
LOCAL
LEN,
ENT;
ENT = .US_ENT [.EXE_CURCMD [SET_VAL] - 1];
LEN = ..ENT;
EDT$$FMT_STR (CH$PTR (.ENT + 1,, BYTE_SIZE), .LEN);
EDT$$FMT_CRLF ();
END;
[SHO_KEY] : ! Show key
BEGIN
LOCAL
KEY_PTR : REF BLOCK FIELD (KEY_DEF_FIELD),
STATUS;
IF ( NOT .TRN_TBLINIT) THEN STATUS = EDT$$DEF_DFLTK () ELSE STATUS = 1;
IF .STATUS
THEN
BEGIN
!+
! Get a pointer to the key definition. If the key has been defined,
! show that; if the keypad has been defined already, the
! definition is in TRN_TBL ; otherwise use the appropriate
! default keypad tables.
!-
IF EDT$$TST_BADK (.EXE_CURCMD [KEY_VAL])
THEN
EDT$$MSG_TOSTR (EDT$_KEYNOTDEF)
ELSE
IF EDT$$FIND_KEY (.EXE_CURCMD [KEY_VAL], KEY_PTR)
THEN
BEGIN
!+
! If the key definition is long, show it in pieces.
!-
LOCAL
KEY_P,
KEY_L,
CH;
KEY_P = CH$PTR (KEY_PTR [KEY_DEF_TEXT],, BYTE_SIZE);
KEY_L = .KEY_PTR [KEY_DEF_LEN];
FMT_LNPOS = 0;
CH = CH$RCHAR_A (KEY_P);
KEY_L = .KEY_L - 1;
WHILE (.KEY_L GEQ 0) DO
BEGIN
IF ((.FMT_LNPOS + EDT$$FMT_CHWID (.CH, .FMT_LNPOS)) GEQ
.TI_WID)
THEN
EDT$$FMT_CRLF ();
EDT$$FMT_CH (.CH);
CH = CH$RCHAR_A (KEY_P);
KEY_L = .KEY_L - 1;
END;
END
ELSE
EDT$$MSG_TOSTR (EDT$_NODEFN);
END
ELSE
EDT$$MSG_TOSTR (.STATUS);
EDT$$FMT_CRLF ();
END;
[SHO_CURSR] : ! Show cursor
BEGIN
EDT$$FMT_DCML (.SCLL_TOP);
EDT$$FMT_CH (%C':');
EDT$$FMT_DCML (.SCLL_BOT);
EDT$$FMT_CRLF ();
END;
[SHO_SCRN] : ! Show screen.
BEGIN
EDT$$FMT_DCML (.TI_WID);
EDT$$OUT_FMTBUF ();
EDT$$FMT_CRLF ();
END;
[SHO_NUM] : ! Show numbers.
BEGIN
IF (.NOS EQL 1)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT ('numbers')), 7)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT ('nonumbers')), 9);
EDT$$FMT_CRLF ();
END;
[SHO_VRFY] : ! Show verify
BEGIN
IF (.VFY EQL 1)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT ('verify')), 6)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT ('noverify')), 8);
EDT$$FMT_CRLF ();
END;
[SHO_TRUNC] : ! Show truncate
BEGIN
IF (.TRUN EQL 1)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT ('truncate')), 8)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT ('notruncate')), 10);
EDT$$FMT_CRLF ();
END;
[SHO_KEYPD] : ! Show keypad
BEGIN
IF (.KPAD EQL 1)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT ('keypad')), 6)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT ('nokeypad')), 8);
EDT$$FMT_CRLF ();
END;
[SHO_WRAP] : ! Show wrap
BEGIN
IF (.WD_WRAP EQL 256)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT('nowrap')), 6)
ELSE
EDT$$FMT_DCML (.WD_WRAP);
EDT$$FMT_CRLF ();
END;
[SHO_MODE] : ! Show mode
BEGIN
!+
! The following code relies on there being 10 bytes for each edit mode
! and also that they are stored 5 bytes/word (ie. 10/20 only)
!-
BIND
MODE_STRING = UPLIT('Change Line ') : BLOCKVECTOR [, 2];
EDT$$FMT_STR (CH$PTR (MODE_STRING [.EDIT_DFLTMOD, 0, 0, 0, 0]), 6);
EDT$$FMT_CRLF ();
END;
[SHO_LINES] : ! Show lines
BEGIN
EDT$$FMT_DCML (.SCR_LNS);
EDT$$FMT_CRLF ();
END;
[SHO_QUIET] : ! Show quiet
BEGIN
IF (.QUIET EQL 1)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT ('quiet')), 5)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT ('noquiet')), 7);
EDT$$FMT_CRLF ();
END;
[SHO_TAB] : ! Show tab
BEGIN
IF (.TAB_SIZ EQL 0)
THEN
BEGIN
EDT$$FMT_STR (CH$PTR (UPLIT('notab')), 5);
EDT$$FMT_CRLF ();
END
ELSE
BEGIN
EDT$$FMT_STR (CH$PTR (UPLIT('tab size ')), 9);
EDT$$FMT_DCML (.TAB_SIZ);
EDT$$FMT_STR (CH$PTR (UPLIT('; tab level ')), 12);
EDT$$FMT_DCML (.TAB_LVL);
EDT$$FMT_CRLF ();
END;
END;
[SHO_REPT] : ! Show repeat
BEGIN
IF (.RPT EQL 1)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT('repeat')), 6)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT('norepeat')), 8);
EDT$$FMT_CRLF ();
END;
[SHO_FNF] : ! Show file_not_found
BEGIN
IF (.FNF_MSGFLG EQL 1)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT ('fnf')), 3)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT ('nofnf')), 5);
EDT$$FMT_CRLF ();
END;
[SHO_SUMM] : ! show summary
BEGIN
IF (.SUMRY EQL 1)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT('summary')), 7)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT('nosummary')), 9);
EDT$$FMT_CRLF ();
END;
[SHO_PROMPT] : ! Show Prompt
BEGIN
LOCAL
LEN, ! Length of the string
TXT, ! Address of string contents
PROMPT_NUM; ! Which prompt string
PROMPT_NUM = .EXE_CURCMD [SET_VAL];
TXT = (CASE .PROMPT_NUM FROM SET_PLINE TO MAX_SET_PROMPT OF
SET
[SET_PLINE] : PMT_LINE;
[SET_PKEY] : PMT_KPD;
[SET_PNKEY] : PMT_NOKPD;
[SET_PHCCH] : PMT_HCCHG;
[SET_PINS] : PMT_INS;
[SET_PNINS] : PMT_INSN;
[SET_PQRY] : PMT_QUERY;
[OUTRANGE] :
BEGIN
ASSERT (16, 0);
0
END;
TES);
LEN = ..TXT;
EDT$$FMT_STR (CH$PTR (.TXT + 1,, BYTE_SIZE), .LEN);
EDT$$FMT_CRLF ();
END;
[SHO_TEXT] : ! show text
BEGIN
LOCAL
LEN,
TXT;
TXT = .US_TXT [.EXE_CURCMD [SET_VAL] - 1];
LEN = ..TXT;
EDT$$FMT_STR (CH$PTR (.TXT + 1,, BYTE_SIZE), .LEN);
EDT$$FMT_CRLF ();
END;
[SHO_WORD] : ! show word type
BEGIN
IF .WRDTYP
THEN
EDT$$FMT_STR (CH$PTR (UPLIT('nodelimiter ')), 12)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT('delimiter ')), 10);
EDT$$FMT_CRLF ();
END;
[SHO_PARA] : ! show word
BEGIN
IF .PARTYP
THEN
EDT$$FMT_STR (CH$PTR (UPLIT('nowps ')), 6)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT('wps ')), 4);
EDT$$FMT_CRLF ();
END;
[SHO_HELP] : ! Show Help File Name
BEGIN
LOCAL
STATUS;
!+
! If the help file name has not been parsed, call SET HELP so
! that the resultant file name will appear in the message.
!-
STATUS = 1;
IF (.HELP_SET EQL 0)
THEN
STATUS = EDT$$SET_HLPFNAM (CH$PTR (HELP_NAM), .HELP_NAMLEN);
IF (.STATUS)
THEN
BEGIN
EDT$$FMT_STR (CH$PTR (UPLIT ('Help file name : ')), 17);
EDT$$FMT_STR (CH$PTR (HELP_NAM), .HELP_NAMLEN);
EDT$$FMT_CRLF ();
END;
END;
[SHO_AUTO] : ! show autorepeat
BEGIN
IF (.ENB_AUTRPT EQL 1)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT('autorepeat')), 10)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT('noautorepeat')), 12);
EDT$$FMT_CRLF ();
END;
[SHO_COMND] : ! show command
BEGIN
IF (.CMD_NAM [DSC$A_POINTER] NEQ 0) THEN
EDT$$FMT_STR (CH$PTR (.CMD_NAM [DSC$A_POINTER]), .CMD_NAM [DSC$W_LENGTH]);
EDT$$FMT_CRLF ();
END;
[SHO_FILES] :
BEGIN ! show input/output files
LOCAL
LEN,
TXT;
TXT = CH$PTR (.INP_NAM [DSC$A_POINTER]);
LEN = .INP_NAM [DSC$W_LENGTH];
EDT$$FMT_STR (CH$PTR (UPLIT ('Input file: ')), 13);
IF (.LEN NEQ 0)
THEN
EDT$$FMT_STR (.TXT, .LEN)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT ('**Creating new file**')), 21);
EDT$$FMT_CRLF ();
EDT$$FMT_STR (CH$PTR (UPLIT ('Output file: ')), 13);
IF (.OUT_NAM [DSC$W_LENGTH] EQL 0)
THEN
IF ((.OPTIONS AND EDT$M_NOOUTPUT) NEQ 0)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT ('**Readonly**')), 12)
ELSE
EDT$$FMT_STR (.TXT, .LEN)
ELSE
EDT$$FMT_STR (CH$PTR (.OUT_NAM [DSC$A_POINTER]), .OUT_NAM [DSC$W_LENGTH]);
EDT$$FMT_CRLF ();
END;
[OUTRANGE] :
ASSERT (16, 0);
TES;
END; ! of routine EDT$$SHW_CMD
END
ELUDOM