Annotation of freem_fileman/DIR03.m, revision 1.1

1.1     ! snw         1: DIR03  ;SFISC/MKO-MULTILINE FIELD EDITOR ;03:37 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:        F  D E X IOXY Q:DIR0DN
        !             5:        Q
        !             6:        ;
        !             7: E      I $G(DIR0("REP"))&DIR0C>1!DIR0C>$L(DIR0A),$S(DIR0LN<DIR0NL:DIR0F,1:DIR0FL)>DX D
        !             8:        . D PREAD^DIR01($S(DIR0LN<DIR0NL:DIR0F,1:DIR0FL)-DX,.DIR0ST,.DIR0CH)
        !             9:        . Q:'$L(DIR0ST)
        !            10:        . I '$G(DIR0("REP")) S DIR0A=DIR0A_DIR0ST
        !            11:        . E  S $E(DIR0A,DIR0C,DIR0C+$L(DIR0ST)-1)=DIR0ST
        !            12:        . S DX=DX+$L(DIR0ST),DIR0C=DIR0C+$L(DIR0ST)
        !            13:        E  D READ^DIR01(.DIR0CH)
        !            14:        Q:DIR0CH=""
        !            15:        ;
        !            16:        I "?^"[DIR0CH,DIR0C=1,'DIR0QU D  Q
        !            17:        . D DEOF X IOXY
        !            18:        . S DIR0A="",DIR0QU=1 D REP
        !            19:        D @$S($L(DIR0CH)>1:DIR0CH,$G(DIR0("REP")):"REP",1:"INS")
        !            20:        I DIR0QU,"?^"'[$E(DIR0A)!'$L(DIR0A) S DIR0QU=0,DIR0A="" D CLR
        !            21:        Q
        !            22:        ;
        !            23: REP    I DIR0C>DIR0M W $C(7) Q
        !            24:        S DIR0CHG=1
        !            25:        S DIR0A=$E(DIR0A,1,DIR0C-1)_DIR0CH_$E(DIR0A,DIR0C+1,999)
        !            26:        S DIR0C=DIR0C+1
        !            27:        W DIR0CH
        !            28:        I DX<DIR0F S DX=DX+1 Q
        !            29:        S DIR0LN=DIR0LN+1,DY=DY+1,DX=DIR0S Q
        !            30:        Q
        !            31:        ;
        !            32: INS    I $L(DIR0A)'<DIR0M W $C(7) Q
        !            33:        S DIR0CHG=1
        !            34:        S DIR0A=$E(DIR0A,1,DIR0C-1)_DIR0CH_$E(DIR0A,DIR0C,999)
        !            35:        W $E(DIR0A,DIR0C,DIR0C+DIR0F-DX)
        !            36:        D
        !            37:        . N DIR0LN,DY,DX
        !            38:        . S DX=DIR0S
        !            39:        . F DIR0LN=DIR0C-1\DIR0L+2:1:$L(DIR0A)\DIR0L+1 D
        !            40:        .. S DY=DIR0R+DIR0LN-1 X IOXY
        !            41:        .. W $E(DIR0A,DIR0LN-1*DIR0L+1,DIR0LN*DIR0L)
        !            42:        S DIR0C=DIR0C+1
        !            43:        I DX<DIR0F S DX=DX+1 Q
        !            44:        S DIR0LN=DIR0LN+1,DY=DY+1,DX=DIR0S
        !            45:        Q
        !            46:        ;
        !            47: RIGHT  Q:DIR0C>$L(DIR0A)
        !            48:        S DIR0C=DIR0C+1
        !            49:        I DX<DIR0F!(DIR0LN=DIR0NL) S DX=DX+1 Q
        !            50:        S DIR0LN=DIR0LN+1,DY=DY+1,DX=DIR0S
        !            51:        Q
        !            52:        ;
        !            53: LEFT   Q:DIR0C'>1
        !            54:        S DIR0C=DIR0C-1
        !            55:        I DX>DIR0S S DX=DX-1 Q
        !            56:        S DIR0LN=DIR0LN-1,DY=DY-1,DX=DIR0F
        !            57:        Q
        !            58:        ;
        !            59: JRT    Q:DIR0C>$L(DIR0A)
        !            60:        Q:DX=DIR0F
        !            61:        S DIR0C=DIR0LN*DIR0L S:DIR0C>$L(DIR0A) DIR0C=$L(DIR0A)+1
        !            62:        S DX=DIR0C#DIR0L-1+DIR0S S:DX<DIR0S DX=DIR0F
        !            63:        Q
        !            64:        ;
        !            65: JLT    Q:DIR0C'>1
        !            66:        Q:DX=DIR0S
        !            67:        S DIR0C=DIR0C-DX+DIR0S,DX=DIR0S
        !            68:        Q
        !            69:        ;
        !            70: UP     Q:DIR0LN=1
        !            71:        S DIR0C=DIR0C-DIR0L,DIR0LN=DIR0LN-1,DY=DY-1
        !            72:        Q
        !            73:        ;
        !            74: DOWN   Q:DIR0LN=DIR0NL
        !            75:        Q:$L(DIR0A)\DIR0L<DIR0LN
        !            76:        S DIR0C=DIR0C+DIR0L,DIR0LN=DIR0LN+1,DY=DY+1
        !            77:        S:DIR0C>($L(DIR0A)+1) DIR0C=$L(DIR0A)+1,DX=DIR0C#DIR0L+DIR0S-1
        !            78:        Q
        !            79:        ;
        !            80: FDE    ;
        !            81: NP     Q:DIR0C>$L(DIR0A)
        !            82:        S DIR0C=$L(DIR0A)+1,DIR0LN=DIR0C-1\DIR0L+1,DX=DIR0C-1#DIR0L+DIR0S
        !            83:        S:DIR0LN>DIR0NL DIR0LN=DIR0NL,DX=DIR0S+DIR0NC
        !            84:        S DY=DIR0R+DIR0LN-1
        !            85:        Q
        !            86:        ;
        !            87: FDB    ;
        !            88: PP     Q:DIR0C'>1
        !            89:        S DIR0LN=1,DY=DIR0R,DX=DIR0S,DIR0C=1
        !            90:        Q
        !            91:        ;
        !            92: BS     Q:DIR0C'>1
        !            93:        S DIR0CHG=1
        !            94:        S DX=DX-1,DIR0C=DIR0C-1
        !            95:        S DIR0A=$E(DIR0A,1,DIR0C-1)_$E(DIR0A,DIR0C+1,999)_" "
        !            96:        I DX<DIR0S S DIR0LN=DIR0LN-1,DY=DY-1,DX=DIR0F
        !            97:        X IOXY W $E(DIR0A,DIR0C,DIR0C+DIR0F-DX)
        !            98:        D
        !            99:        . N DIR0LN,DY,DX
        !           100:        . S DX=DIR0S
        !           101:        . F DIR0LN=DIR0C-1\DIR0L+2:1:$L(DIR0A)\DIR0L+1 D
        !           102:        .. S DY=DIR0R+DIR0LN-1 X IOXY
        !           103:        .. W $E(DIR0A,DIR0LN-1*DIR0L+1,DIR0LN*DIR0L)
        !           104:        S DIR0A=$E(DIR0A,1,$L(DIR0A)-1)
        !           105:        Q
        !           106:        ;
        !           107: DEL    Q:DIR0C>$L(DIR0A)
        !           108:        S DIR0CHG=1
        !           109:        S DIR0A=$E(DIR0A,1,DIR0C-1)_$E(DIR0A,DIR0C+1,999)_" "
        !           110:        W $E(DIR0A,DIR0C,DIR0C+DIR0F-DX)
        !           111:        D
        !           112:        . N DIR0LN,DY,DX
        !           113:        . S DX=DIR0S
        !           114:        . F DIR0LN=DIR0C-1\DIR0L+2:1:$L(DIR0A)\DIR0L+1 D
        !           115:        .. S DY=DIR0R+DIR0LN-1 X IOXY
        !           116:        .. W $E(DIR0A,DIR0LN-1*DIR0L+1,DIR0LN*DIR0L)
        !           117:        S DIR0A=$E(DIR0A,1,$L(DIR0A)-1)
        !           118:        Q
        !           119:        ;
        !           120: CLR    N %X
        !           121:        S DIR0CHG=1
        !           122:        S %X=DIR0A
        !           123:        I DIR0A]"",DIR0A'=DIR0D S DIR0SV=DIR0A
        !           124:        S DIR0A=$S(DIR0A=DIR0D:DIR0SV,DIR0A="":DIR0D,1:"")
        !           125:        S %X=DIR0A_$J("",$L(%X)-$L(DIR0A))
        !           126:        S DX=DIR0S
        !           127:        F DIR0LN=1:1:$L(%X)\DIR0L+1 D
        !           128:        . S DY=DIR0R+DIR0LN-1 X IOXY
        !           129:        . W $E(%X,DIR0LN-1*DIR0L+1,DIR0LN*DIR0L)
        !           130:        S (DIR0C,DIR0LN)=1,DY=DIR0R
        !           131:        Q
        !           132:        ;
        !           133: DEOF   N %X
        !           134:        Q:DIR0C>$L(DIR0A)
        !           135:        S DIR0CHG=1
        !           136:        S %X=DIR0A,DIR0A=$E(DIR0A,1,DIR0C-1),%X=DIR0A_$J("",$L(%X)-$L(DIR0A))
        !           137:        W $E(%X,DIR0C,DIR0C+DIR0F-DX)
        !           138:        D
        !           139:        . N DIR0LN,DY,DX
        !           140:        . S DX=DIR0S
        !           141:        . F DIR0LN=DIR0C-1\DIR0L+2:1:$L(%X)\DIR0L+1 D
        !           142:        .. S DY=DIR0R+DIR0LN-1 X IOXY
        !           143:        .. W $E(%X,DIR0LN-1*DIR0L+1,DIR0LN*DIR0L)
        !           144:        Q
        !           145:        ;
        !           146: RPM    N DX,DY
        !           147:        I $D(DDS) S DX=IOM-8,DY=IOSL-1 X IOXY
        !           148:        I $G(DIR0("REP")) W "Insert " K DIR0("REP")
        !           149:        E  W "Replace" S DIR0("REP")=1
        !           150:        Q
        !           151:        ;
        !           152: KPM    I $G(DDGLKPNM) K DDGLKPNM W $P(DDGLED,DDGLDEL,9)
        !           153:        E  S DDGLKPNM=1 W $P(DDGLED,DDGLDEL,10)
        !           154:        Q
        !           155:        ;
        !           156: WRT    G WRT2^DIR0W
        !           157: WLT    ;
        !           158: FDL    G WLT2^DIR0W
        !           159: DLW    G DLW2^DIR0W
        !           160:        ;
        !           161: HLP    ;
        !           162: NB     ;
        !           163: SEL    ;
        !           164: SV     ;
        !           165: RF     ;
        !           166: NOP    W $C(7)
        !           167:        Q
        !           168: TO     S DTOUT=1,DIR0A=DIR0D
        !           169: ZM     ;
        !           170: QT     ;
        !           171: EX     ;
        !           172: CL     ;
        !           173: TAB    ;
        !           174: CR     S DIR0DN=1
        !           175:        Q

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