Annotation of freem_fileman/DDBRU.m, revision 1.1

1.1     ! snw         1: DDBRU  ;SFISC/DCL-BROWSER UTILITIES AND EXTRINSIC FUNCTIONS ;09:47 AM  1 Dec 1994;
        !             2:        ;;21.0;VA FileMan;;Dec 28, 1994
        !             3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
        !             4: CTRLCH()       ;Extrinsic function - returns control characters 1-31
        !             5:        N I,X S X="" N I F I=1:1:31 S X=X_$C(I)
        !             6:        Q X
        !             7:        ;
        !             8: COL(DDBC)      ;Set up colums used by Fileman Print Set DIOEND="D COL^DDBRU()" when calling Browser
        !             9:        N H,I,P,Q,T,X
        !            10:        S DDBC=$G(DDBC,"^TMP(""DDBC"",$J)")
        !            11:        I $D(^TMP("DDBC",$J)) K ^($J)
        !            12:        S X=0 F  S X=$O(^UTILITY($J,99,X)) Q:X'>0  S T=^(X) D
        !            13:        .S:T["D ^" H=$P(T,"^",2)
        !            14:        .S Q=$L(T,"?") I Q>1 F I=1:1:Q S P=+$P(T,"?",I)+1 S @DDBC@(P)=""
        !            15:        .Q
        !            16:        I $G(H)]""  F X=1:1 S T=$T(@"HEAD"+X^@H) Q:T=""  D
        !            17:        .S Q=$L(T,"?") I Q>1 F I=1:1:Q S P=+$P(T,"?",I)+1 S @DDBC@(P)=""
        !            18:        .Q
        !            19:        Q
        !            20:        ;
        !            21: KTMP   K ^TMP("DDB",$J),^TMP("DDBC",$J)
        !            22:        K ^TMP("DDBLST",$J)
        !            23:        Q
        !            24:        ;
        !            25: TRMERR(DDGLCH) ;Terminal type errors
        !            26:        N P
        !            27:        S P(1)=DDGLCH,P(2)=IOST
        !            28:        D BLD^DIALOG(842,.P)
        !            29:        Q
        !            30:        ;
        !            31: RTN(RTN,TMPGBL)        ;
        !            32:        N I,F,X
        !            33:        F I=1:1 S X=$T(+I^@RTN) Q:X=""  S F=$F(X," ")-1,$E(X,F)=$E("        ",1,$S(F'>8:8-F,1:1)),@TMPGBL@(I)=$TR(X,$C(9)," ")
        !            34:        Q
        !            35:        ;
        !            36: RTNTB(DDBRTOP,DDBRBOT) ;PASS TOP AND BOTTOM MARGINS
        !            37:        G DR
        !            38:        ;
        !            39: ENDR   N DDBENDR S DDBENDR=1
        !            40:        ;
        !            41: DR     ;Display Routine(s)
        !            42:        N DESC,RN,RSA,RTN,X,Y
        !            43:        K ^TMP($J,"DDBDR"),^TMP($J,"DDBDRL"),^UTILITY($J)  ;DR LIST
        !            44:        X ^%ZOSF("RSEL") Q:$O(^UTILITY($J,""))']""
        !            45:        S RTN="",RN=1 F  S RTN=$O(^UTILITY($J,RTN)) Q:RTN=""  D
        !            46:        .S DESC=$P($P($T(+1^@RTN),";",2),"-",2),DESC=$S($L(DESC)>45:$E(DESC,1,45)_"...",1:DESC)
        !            47:        .S RSA=$NA(^TMP($J,"DDBDR",RN)),RN=RN+1,^TMP($J,"DDBDRL",RTN_$E("        ",1,8-$L(RTN))_": "_DESC)=RSA
        !            48:        .W !,"...loading ",RTN
        !            49:        .D RTN^DDBRU(RTN,RSA)
        !            50:        .Q
        !            51:        W !,"...building ""Current List"" tables"
        !            52:        D DOCLIST^DDBR("^TMP($J,""DDBDRL"")","",$G(DDBRTOP),$G(DDBRBOT))
        !            53: K      K ^TMP($J,"DDBDRL"),^TMP($J,"DDBDR"),^UTILITY($J)
        !            54:        Q
        !            55:        ;
        !            56: OUT    ;
        !            57:        D:'$D(DDS) KILL^DDGLIB0($G(DDBFLG))
        !            58:        D:$G(DDBFLG)'["P" KTMP
        !            59:        Q
        !            60:        ;
        !            61: RE(DDBRTN)     G EDIT
        !            62: RTNEDIT        N DDBRTN
        !            63: EDIT   ;ROUTINE EDIT VIA VA FILEMAN SCREEN EDITOR
        !            64:        ;EITHER PASS ROUTINE NAME RE^DDBRU("ROUTINE_NAME") OR USE
        !            65:        ;RTNEDIT^DDBRU AND BE PROMPTED FOR ROUTINE NAME
        !            66:        I '$D(^DD("OS",^DD("OS"),"ZS")) W !,"ROUTINE SAVE NODE NOT DEFINED IN MUMPS OPERATING SYSTEM FILE",! Q
        !            67:        N DDBRI,DDBRX,X,Y,%,%X,%Y
        !            68:        I $G(DDBRTN)]"" S X=DDBRTN X ^%ZOSF("TEST") I '$T W !,DDBRTN," Invalid",!
        !            69:        X ^%ZOSF("EON")
        !            70:        R:$G(DDBRTN)="" !,"Enter Routine> ",DDBRTN:DTIME
        !            71:        I DDBRTN="" W !,"NO ROUTINE SELECTED",! Q
        !            72:        S X=DDBRTN X ^%ZOSF("TEST")
        !            73:        I '$T W !,"NO SUCH ROUTINE",! Q
        !            74:        K ^TMP("DDBRTN",$J)
        !            75:        W !,"Loading ",DDBRTN
        !            76:        F DDBRI=1:1 S DDBRX=$T(+DDBRI^@DDBRTN) Q:DDBRX=""  S ^TMP("DDBRTN",$J,DDBRI)=$$SP(DDBRX)
        !            77:        D EDIT^DDW("^TMP(""DDBRTN"",$J)","M",DDBRTN,"Routine: "_DDBRTN)
        !            78:        K ^UTILITY($J,0)
        !            79:        S DDBRI=0,$P(^TMP("DDBRTN",$J,1),";",3)=$$NOW
        !            80:        F  S DDBRI=$O(^TMP("DDBRTN",$J,DDBRI)) Q:DDBRI'>0  S ^UTILITY($J,0,DDBRI)=$$TAB(^(DDBRI))
        !            81:        S X=DDBRTN
        !            82:        X ^DD("OS",^DD("OS"),"ZS")
        !            83:        K ^TMP("DDBRTN",$J),^UTILITY($J,0)
        !            84:        X ^%ZOSF("EON")
        !            85:        Q
        !            86: TAB(X) ;CONVERT 1ST SPACE TO TAB IF NO TAB
        !            87:        N E,L,T
        !            88:        S X=$G(X)
        !            89:        Q:X="" ""
        !            90:        S T=$C(9)
        !            91:        Q:$E(X)=T X
        !            92:        S L=$L(X)
        !            93:        F E=1:1:L Q:$E(X,E)=T  I $E(X,E)=" " S $E(X,E)=T D  Q
        !            94:        .S E=E+1
        !            95:        .F  Q:$E(X,E)'=" "  S $E(X,E)=""
        !            96:        .Q
        !            97:        Q X
        !            98:        ;
        !            99: SP(X)  ;MAKE SURE A TAB OR 1ST SPACE IS SET TO SPACES
        !           100:        N E,L,S,SPS,T
        !           101:        S X=$G(X)
        !           102:        Q:X="" ""
        !           103:        S S=8,$P(SPS," ",S)=" ",T=$E(9)
        !           104:        I $E(X)=T S $E(X)=" "  ;Q "       "_X
        !           105:        S L=$L(X)
        !           106:        F E=1:1:L I $E(X,E)=" " D  S $E(X,E)=$E(SPS,1,S-(E#S)) Q
        !           107:        .S E=E+1
        !           108:        .F  Q:$E(X,E)'=" "  S $E(X,E)=""
        !           109:        .S E=E-1
        !           110:        .Q
        !           111:        Q X
        !           112:        ;
        !           113: NOW()  ;
        !           114:        N %DT,X,Y
        !           115:        S %DT="T",X="NOW"
        !           116:        D ^%DT
        !           117:        Q $$FMTE^DILIBF(Y,"1U")
        !           118:        ;
        !           119: MSMCON ;MSM CONSOLE FOR 132/80 MODES
        !           120:        ;OR VT TERMINALS
        !           121: 80     W *27,"[?",3,*108
        !           122:        S (IOM,X)=80 X ^%ZOSF("RM")
        !           123:        Q
        !           124: 132    W *27,"[?",3,*104
        !           125:        S (IOM,X)=132 X ^%ZOSF("RM")
        !           126:        Q

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