File:  [Coherent Logic Development] / freem_fileman / USER / DIR02.m
Revision 1.1: download - view: text, annotated - select for diffs
Mon Apr 28 14:13:21 2025 UTC (3 months ago) by snw
Branches: MAIN
CVS tags: HEAD
Restructure repository

    1: DIR02	;SFISC/MKO-MULTILINE FIELD EDITOR ;03:40 PM  12 Oct 1994
    2: 	;;21.0;VA FileMan;;Dec 28, 1994
    3: 	;Per VHA Directive 10-93-142, this routine should not be modified.
    4: EN	;
    5: 	N DIR0FL,DIR0LN,DIR0NC,DIR0QU
    6: 	X DDGLZOSF("EOFF"),DDGLZOSF("TRMON")
    7: 	W $S('$D(DDGLVAN):$P(DDGLVID,DDGLDEL,6),1:"")
    8: 	S DIR0QU=0
    9: 	;
   10: 	D INIT,^DIR03
   11: 	W $P(DDGLVID,DDGLDEL,7)
   12: 	Q
   13: 	;
   14: SM	;ScreenMan's entry point, called from ^DIR01
   15: 	N DIR0DN,DIR0FL,DIR0LN,DIR0NC,DIR0NL
   16: 	S DIR0R=IOSL-6,DIR0S=0,DIR0L=IOM-1,DIR0NL=4
   17: 	;
   18: 	D INIT,^DIR03
   19: 	;
   20: 	;Restore command area
   21: 	S DY=DIR0R,DX=DIR0S X IOXY
   22: 	W $P(DDGLVID,DDGLDEL,10)_$P(DDGLCLR,DDGLDEL,3)
   23: 	;
   24: 	S DY=IOSL-1
   25: 	I DDO D
   26: 	. S DX=0 X IOXY W "COMMAND:"
   27: 	. S DX=IOM-35 X IOXY W "Press <PF1>H for help"
   28: 	S DX=IOM-8 X IOXY
   29: 	W $S('$D(DDGLVAN):$P(DDGLVID,DDGLDEL,6),1:"")_$S($G(DIR0("REP")):"Replace",1:"Insert ")_$P(DDGLVID,DDGLDEL,10)
   30: 	;
   31: 	;Restore variables
   32: 	S (DY,DIR0R)=$P(DIR0,U),(DX,DIR0S)=$P(DIR0,U,2),DIR0L=$P(DIR0,U,3)
   33: 	S DIR0F=DIR0S+DIR0L
   34: 	S DIR0SP=$J("",DIR0L) S:$G(DDGLVAN) DIR0SP=$TR(DIR0SP," ","_")
   35: 	I DIR0A]"","^?"[$E(DIR0A) S DIR0QT=1
   36: 	;
   37: 	;Repaint answer
   38: 	X IOXY
   39: 	W:'$D(DDGLVAN) $P(DDGLVID,DDGLDEL,6)
   40: 	I DIR0C>DIR0L D
   41: 	. W $E(DIR0A,DIR0C-DIR0L+1,DIR0C)_$E(DIR0SP,DIR0C>$L(DIR0A))
   42: 	. S DX=DIR0F-1
   43: 	E  D
   44: 	. W $E(DIR0A,1,DIR0L)_$E(DIR0SP,$L(DIR0A)+1,999)
   45: 	. S DX=DIR0S+DIR0C-1
   46: 	X IOXY
   47: 	K DTOUT
   48: 	Q
   49: 	;
   50: INIT	;Setup
   51: 	K DTOUT
   52: 	S:DIR0M<$L(DIR0A) DIR0M=$L(DIR0A)
   53: 	S DIR0SP=$J("",DIR0L) S:$G(DDSVAN) DIR0SP=$TR(DIR0SP," ","_")
   54: 	;
   55: 	F DIR0LN=1:1:DIR0NL D
   56: 	. S DY=DIR0R+DIR0LN-1,DX=DIR0S X IOXY
   57: 	. S X=$E(DIR0A,DIR0LN-1*DIR0L+1,DIR0LN*DIR0L)
   58: 	. W X_$E(DIR0SP,$L(X)+1,999)
   59: 	;
   60: 	S:DIR0NL*DIR0L-1<DIR0M DIR0M=DIR0NL*DIR0L-1
   61: 	S DIR0NL=DIR0M\DIR0L+1,DIR0NC=DIR0M#DIR0L
   62: 	S DIR0F=DIR0S+DIR0L-1,DIR0FL=DIR0S+DIR0NC-1
   63: 	S DIR0SV=$G(DIR0("L")),DIR0DN=0
   64: 	;
   65: 	S:$G(DIR0C)<1 DIR0C=1
   66: 	S:DIR0C-1>DIR0M DIR0C=DIR0M+1
   67: 	S DIR0LN=DIR0C\DIR0L+1
   68: 	S DY=DIR0R+DIR0LN-1,DX=DIR0S+(DIR0C#DIR0L)-1
   69: 	X IOXY
   70: 	Q
   71: 	;
   72: KILL	;Cleanup all variables
   73: 	D KILL^DDGLIB0()
   74: 	Q

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>