Annotation of freem_fileman/DDSMSG.m, revision 1.1.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>