Annotation of freem_fileman/DDSMSG.m, revision 1.1

1.1     ! snw         1: DDSMSG ;SFISC/MKO-PRINT MESSAGES ;02:44 PM  9 Nov 1994
        !             2:        ;;21.0;VA FileMan;;Dec 28, 1994
        !             3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
        !             4:        ;
        !             5: ERR    ;Print "DIERR" messages in help box
        !             6:        N DDSE,DDSL,DDSLMT,DDSN
        !             7:        K DDH,DDQ
        !             8:        S DDSLMT=$G(DDC,15),DDSE=0
        !             9:        ;
        !            10:        W $C(7)
        !            11:        S DDSN=0
        !            12:        F  S DDSN=$O(^TMP("DIERR",$J,DDSN)) Q:'DDSN!DDSE  D
        !            13:        . S DDSL=0
        !            14:        . F  S DDSL=$O(^TMP("DIERR",$J,DDSN,"TEXT",DDSL)) Q:'DDSL!DDSE  D
        !            15:        .. D LD($G(^TMP("DIERR",$J,DDSN,"TEXT",DDSL)),"!")
        !            16:        .. I DDH'<DDSLMT D SC^DDSU S:$D(DTOUT)!($D(DUOUT)) DDSE=1
        !            17:        ;
        !            18:        I $G(DDH) S:DDH(1,"T")?1.C DDH(1,"T")="" D SC^DDSU
        !            19:        S DDSKM=1
        !            20:        K DIERR,^TMP("DIERR",$J)
        !            21:        Q
        !            22:        ;
        !            23: HLP(DDSG)      ;Print messages from @DDSG in help area
        !            24:        N DDSE,DDSL,DDSLMT,DDST
        !            25:        S:$G(DDSG)="" DDSG=$NA(@DDSREFT@("HLP"))
        !            26:        ;
        !            27:        K DDH
        !            28:        I $D(DDSID),DY-1>DDSHBX!$X D SETDDH
        !            29:        S DDSLMT=$G(DDC,15),(DDSE,DDSL)=0
        !            30:        ;
        !            31:        F  S DDSL=$O(@DDSG@(DDSL)) Q:'DDSL!DDSE  D
        !            32:        . S DDST=$G(@DDSG@(DDSL))
        !            33:        . I DDST="$$EOP" S DDH=$G(DDH)+1,DDH(DDH,"E")=""
        !            34:        . E  D LD(DDST,$G(@DDSG@(DDSL,"F"),"!"))
        !            35:        . I DDH'<DDSLMT D SC^DDSU S:$D(DTOUT)!($D(DUOUT)) DDSE=1
        !            36:        ;
        !            37:        I $G(DDH) S:DDH(1,"T")?1.C DDH(1,"T")="" D SC^DDSU
        !            38:        K:DDSG=$NA(@DDSREFT@("HLP")) @DDSG
        !            39:        S:'$D(DDSID) DDSKM=1
        !            40:        Q
        !            41:        ;
        !            42: WP(DDSR)       ;Print the contents of a wp field @DDSR in help area
        !            43:        N DDSE,DDSL,DDSLMT
        !            44:        ;
        !            45:        K DDH
        !            46:        I $D(DDSID),DY-1>DDSHBX!$X D SETDDH
        !            47:        S DDSLMT=$G(DDC,15),(DDSE,DDSL)=0
        !            48:        ;
        !            49:        F  S DDSL=$O(@DDSR@(DDSL)) Q:'DDSL!DDSE  D
        !            50:        . D LD($G(@DDSR@(DDSL,0)),$G(@DDSR@(DDSL,"F"),"!"))
        !            51:        . I DDH'<DDSLMT D SC^DDSU S:$D(DTOUT)!($D(DUOUT)) DDSE=1
        !            52:        ;
        !            53:        I $G(DDH) S:DDH(1,"T")?1.C DDH(1,"T")="" D SC^DDSU
        !            54:        S:'$D(DDSID) DDSKM=1
        !            55:        Q
        !            56:        ;
        !            57: MSG(DDSMSG,DDSFLG,DDSFMT)      ;Print local var or array DDSMSG in help area
        !            58:        ;DDSFLG [ 1 : Write bell
        !            59:        ;DDSFMT : Format if one line is sent
        !            60:        N DDSL
        !            61:        K DDH
        !            62:        I $D(DDSID),DY-1>DDSHBX!$X D SETDDH
        !            63:        ;
        !            64:        I $D(DDSMSG)=1 D
        !            65:        . D LD(DDSMSG,$S($G(DDSFMT)]"":DDSFMT,1:"!"))
        !            66:        ;
        !            67:        E  S DDSL=0 F  S DDSL=$O(DDSMSG(DDSL)) Q:'DDSL  D
        !            68:        . D LD($G(DDSMSG(DDSL)),$G(DDSMSG(DDSL,"F"),"!"))
        !            69:        Q:'$G(DDH)
        !            70:        ;
        !            71:        I $G(DDH) D
        !            72:        . S:DDH(1,"T")?1.C DDH(1,"T")=""
        !            73:        . S:$G(DDSFLG)[1 DDH(1,"T")=$C(7)_DDH(1,"T")
        !            74:        . D SC^DDSU
        !            75:        S:'$D(DDSID) DDSKM=1
        !            76:        Q
        !            77:        ;
        !            78: SETDDH ;Setup DDH and DDQ for identifiers and executable help
        !            79:        ;that called EN^DDIOL
        !            80:        S DDH=1
        !            81:        S DDH(1,"T")=$TR($J("",$X)," ",$C(0))
        !            82:        S DDQ=$S(DY>(IOSL-1):IOSL-1,1:DY)-1_U_$X
        !            83:        Q
        !            84:        ;
        !            85: LD(S,F)        ;Load string S with format F into DDH array
        !            86:        N A,C,J,L
        !            87:        S DDH=+$G(DDH)
        !            88:        F J=1:1:$L(F,"!")-1 S DDH=DDH+1,DDH(DDH,"T")=""
        !            89:        S:'DDH DDH=1
        !            90:        S:F["?" @("C="_$P(F,"?",2))
        !            91:        S L=$G(DDH(DDH,"T"))
        !            92:        S S=L_$J("",$G(C)-$L(L))_S
        !            93:        ;
        !            94:        D WRAP(S,.A,IOM-1)
        !            95:        S DDH=DDH-1
        !            96:        F A=1:1:A S DDH=$G(DDH)+1,DDH(DDH,"T")=A(A)
        !            97:        Q
        !            98:        ;
        !            99: WRAP(L,A,M)    ;Wrap line at word boundaries
        !           100:        ; L    = Line of text
        !           101:        ; M    = Margin width
        !           102:        ;Return:
        !           103:        ; A    = Number of lines
        !           104:        ; A(n) = Array of text
        !           105:        ;
        !           106:        S:'$G(M) M=$S($G(IOM):IOM-5,1:75)
        !           107:        N I,N
        !           108:        S N=0
        !           109:        F I=$L(L," "):-1:1 D  Q:L=""
        !           110:        . I I=1 S N=N+1,A(N)=$E(L,1,M),L=$E(L,M+1,999) Q
        !           111:        . I $L($P(L," ",1,I))'>M D
        !           112:        .. S N=N+1,A(N)=$P(L," ",1,I),L=$P(L," ",I+1,999)
        !           113:        S A=N
        !           114:        Q

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