Annotation of freem_fileman/DDW1.m, revision 1.1
1.1 ! snw 1: DDW1 ;SFISC/PD KELTZ-LOAD, SAVE ;06:12 PM 13 Dec 1994
! 2: ;;21.0;VA FileMan;;Dec 28, 1994
! 3: ;Per VHA Directive 10-93-142, this routine should not be modified.
! 4: ;
! 5: LOAD ;Put up "box" and load document
! 6: N DDWI,DDWX
! 7: D BOX
! 8: ;
! 9: I $D(DWLC)[0 D
! 10: . S DWLC=$S($D(@DDWDIC@(0))#2:+$P(@DDWDIC@(0),U,4),1:$O(@DDWDIC@(""),-1))
! 11: . S:$D(@DDWDIC@(1))#2 $E(DDWBF,4)=1
! 12: S DDWCNT=$S(DWLC:DWLC,1:1)
! 13: ;
! 14: D:DDWCNT>1 MSG^DDW("Loading text ...")
! 15: F DDWI=DDWCNT:-1:DDWMR+1 D
! 16: . S DDWSTB=DDWSTB+1
! 17: . S ^TMP("DDW1",$J,DDWSTB)=$S('$E(DDWBF,4):$G(@DDWDIC@(DDWI,0)),1:$G(@DDWDIC@(DDWI)))
! 18: ;
! 19: F DDWI=1:1:DDWMR D
! 20: . S DDWX=$S(DDWI>DDWCNT:"",'$E(DDWBF,4):$G(@DDWDIC@(DDWI,0)),1:$G(@DDWDIC@(DDWI)))
! 21: . S DDWL(DDWI)=DDWX
! 22: . I DDWC'>IOM,DDWRW'>DDWMR,DDWI'>DDWCNT,DDWX'?." " D
! 23: .. D CUP(DDWI,1) W $E(DDWX,1,IOM)
! 24: ;
! 25: I DDWCNT=1,DDWL(1)?1." " S DDWL(1)=""
! 26: D:DDWCNT>1 MSG^DDW()
! 27: I DDWRW="B" D
! 28: . D BOT^DDW3
! 29: E D LINE^DDWG(DDWRW,DDWC)
! 30: Q
! 31: ;
! 32: BOX ;Draw box
! 33: N DDWX
! 34: ;
! 35: I $D(DIWETXT) D
! 36: . D CUP(-1,1)
! 37: . W $P(DDGLVID,DDGLDEL)_$E(DIWETXT,1,IOM)_$P(DDGLVID,DDGLDEL,10)
! 38: ;
! 39: I $D(DIWESUB) S DDWX=DIWESUB
! 40: E I $D(XMSUB),DIC["^XMB" D
! 41: . S DDWX=XMSUB
! 42: . F Q:DDWX'["~U~" S DDWX=$P(DDWX,"~U~")_U_$P(DDWX,"~U~",2,999)
! 43: E I $D(DH)#2,$D(DIE) S DDWX=DH
! 44: S DDWX=$E($G(DDWX),1,30)
! 45: ;
! 46: D CUP(0,1) W $TR($J("",IOM)," ","=")
! 47: I DDWRAP S DX=2 X IOXY W "[ WRAP ]"
! 48: S DX=12 X IOXY W $S(DDWREP:"[ REPLACE ]",1:"[ INSERT ]=")
! 49: S DX=40-($L(DDWX)\2) X IOXY W "< "_$E(DDWX,1,30)_" >"
! 50: S DX=61 X IOXY W "[ <PF1>H=Help ]"
! 51: ;
! 52: D CUP(DDWMR+1,1) W $E(DDWRUL,1,IOM)
! 53: I DDWLMAR-DDWOFS'<1,DDWLMAR-DDWOFS'>IOM D
! 54: . S DX=DDWLMAR-DDWOFS-1 X IOXY W "<"
! 55: I DDWRMAR-DDWOFS'<1,DDWRMAR-DDWOFS'>IOM D
! 56: . S DX=DDWRMAR-DDWOFS-1 X IOXY W ">"
! 57: Q
! 58: ;
! 59: SV ;Called from DDWT1
! 60: D SAVE
! 61: I DDWRW+DDWA>DDWCNT D
! 62: . D POS(DDWCNT-DDWA,"E","RN")
! 63: E D POS(DDWRW,DDWC)
! 64: Q
! 65: ;
! 66: SAVE ;Save document
! 67: N DDWI,DDWLMEM,DDWLSTB,DDWX
! 68: D MSG^DDW("Saving text ...") H .5
! 69: S DDWCNT=0
! 70: K @DDWDIC
! 71: ;
! 72: F DDWI=1:1:DDWA D
! 73: . S DDWCNT=DDWCNT+1,DDWX=$$NTS(^TMP("DDW",$J,DDWI))
! 74: . I '$E(DDWBF,4) S @DDWDIC@(DDWCNT,0)=DDWX
! 75: . E S @DDWDIC@(DDWCNT)=DDWX
! 76: ;
! 77: S DDWLMEM=999
! 78: F DDWI=1:1:DDWSTB+1 Q:DDWI>DDWSTB Q:^TMP("DDW1",$J,DDWI)'?." "
! 79: I DDWI'>DDWSTB S DDWLSTB=DDWI
! 80: E D
! 81: . F DDWI=DDWMR:-1:0 Q:'DDWI Q:DDWL(DDWI)'?." "
! 82: . S DDWLMEM=DDWI
! 83: ;
! 84: F DDWI=1:1:$$MIN(DDWLMEM,DDWMR) D
! 85: . S DDWCNT=DDWCNT+1,DDWX=$$NTS(DDWL(DDWI))
! 86: . I '$E(DDWBF,4) S @DDWDIC@(DDWCNT,0)=DDWX
! 87: . E S @DDWDIC@(DDWCNT)=DDWX
! 88: ;
! 89: I $D(DDWLSTB) F DDWI=DDWSTB:-1:DDWLSTB D
! 90: . S DDWCNT=DDWCNT+1,DDWX=$$NTS(^TMP("DDW1",$J,DDWI))
! 91: . I '$E(DDWBF,4) S @DDWDIC@(DDWCNT,0)=DDWX
! 92: . E S @DDWDIC@(DDWCNT)=DDWX
! 93: ;
! 94: S DWLC=DDWCNT,DWHD=U
! 95: I DDWCNT,'$E(DDWBF,4) S @DDWDIC@(0)=U_U_DWLC_U_DWLC_U_DT_U
! 96: D MSG^DDW()
! 97: Q
! 98: ;
! 99: POS(R,C,F) ;Pos cursor based on char pos C
! 100: N DDWX
! 101: S:$G(C)="E" C=$L($G(DDWL(R)))+1
! 102: S:$G(F)["N" DDWN=$G(DDWL(R))
! 103: S:$G(F)["R" DDWRW=R,DDWC=C
! 104: ;
! 105: S DDWX=C-DDWOFS
! 106: I DDWX>IOM!(DDWX<1) D SHIFT^DDW3(C,.DDWOFS)
! 107: S DY=IOTM+R-2,DX=C-DDWOFS-1 X IOXY
! 108: Q
! 109: ;
! 110: CUP(Y,X) ;Cursor positioning
! 111: S DY=IOTM+Y-2,DX=X-1 X IOXY
! 112: Q
! 113: ;
! 114: MIN(X,Y) ;Return the minimum of X and Y
! 115: Q $S(X<Y:X,1:Y)
! 116: ;
! 117: NTS(X) ;Change "" to " "
! 118: Q $S(X="":" ",1:X)
! 119: ;
! 120: TR(X,F) ;Strip trailing blanks
! 121: ;If F["B" return " " if X=""
! 122: I $G(X)]"" D
! 123: . N I
! 124: . F I=$L(X):-1:0 Q:$E(X,I)'=" "
! 125: . S X=$E(X,1,I)
! 126: I X="",$G(F)["B" S X=" "
! 127: Q X
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>