Annotation of freem_fileman/DIR0W.m, revision 1.1
1.1 ! snw 1: DIR0W ;SFISC/MKO-WORD FUNCTIONS FOR FIELD EDITOR ;09:45 AM 12 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: WRT N DIR0I
! 6: Q:DIR0C>$L(DIR0A)
! 7: S DIR0I=$$WRPOS(DIR0A)
! 8: ;
! 9: I DIR0C-DX+DIR0S+DIR0L>DIR0I S DX=DX+DIR0I-DIR0C,DIR0C=DIR0I Q
! 10: S DIR0C=DIR0I,DX=DIR0S X IOXY
! 11: I $L(DIR0A)-DIR0L<DIR0C D
! 12: . W $E(DIR0A,$L(DIR0A)-DIR0L+1,$L(DIR0A))
! 13: . S DX=DIR0S+DIR0C-$L(DIR0A)+DIR0L-1
! 14: E W $E(DIR0A,DIR0C,DIR0C+DIR0L-1)
! 15: Q
! 16: ;
! 17: WLT N DIR0D,DIR0I,DIR0T
! 18: Q:DIR0C=1
! 19: S DIR0T=$$PUNC(DIR0A)
! 20: ;
! 21: S DIR0I=DIR0C-1
! 22: I $E(DIR0T,DIR0I)=" " F DIR0I=DIR0I-1:-1:0 Q:$E(DIR0T,DIR0I)'=" "
! 23: I $E(DIR0T,DIR0I)="!" D
! 24: . F DIR0I=DIR0I-1:-1:0 Q:$E(DIR0T,DIR0I)'="!"
! 25: E I DIR0I D
! 26: . F DIR0I=DIR0I-1:-1:0 Q:" !"[$E(DIR0T,DIR0I)
! 27: S DIR0I=DIR0I+1
! 28: ;
! 29: I DIR0C-DX+DIR0S'>DIR0I S DX=DX-DIR0C+DIR0I,DIR0C=DIR0I Q
! 30: S DIR0C=DIR0I,DX=DIR0S X IOXY
! 31: I DIR0L'<DIR0C W $E(DIR0A,1,DIR0L) S DX=DIR0S+DIR0C-1 Q
! 32: S DX=DIR0L*2\3+DIR0S W $E(DIR0A,DIR0C-DX+DIR0S,DIR0C+DIR0F-DX-1)
! 33: Q
! 34: ;
! 35: DLW N DIR0I,DIR0X
! 36: Q:DIR0C>$L(DIR0A)
! 37: S DIR0CHG=1
! 38: ;
! 39: S DIR0I=$$WRPOS(DIR0A)
! 40: S $E(DIR0A,DIR0C,DIR0I-1)=""
! 41: ;
! 42: S DIR0X=DIR0L\3+DIR0S
! 43: I DX>DIR0X,$L($E(DIR0A,DIR0C,$L(DIR0A)))+DIR0X>DIR0F D
! 44: . S DX=DIR0S X IOXY
! 45: . W $E(DIR0A,DIR0C-DIR0X+DIR0S,DIR0C+DIR0F-DIR0X-1)
! 46: . S DX=DIR0X
! 47: E D
! 48: . S DIR0X=$E(DIR0A,DIR0C,DIR0C+DIR0F-DX-1)
! 49: . S DIR0X=DIR0X_$J("",DIR0F-DX-$L(DIR0X))
! 50: . W DIR0X
! 51: Q
! 52: ;
! 53: WRT2 Q:DIR0C>$L(DIR0A)
! 54: S DIR0C=$$WRPOS(DIR0A)
! 55: ;
! 56: I DIR0C>$L(DIR0A) S DIR0C=0 D FDE^DIR03 Q
! 57: S DIR0LN=DIR0C-1\DIR0L+1,DX=DIR0C-1#DIR0L+DIR0S
! 58: S:DIR0LN>DIR0NL DIR0LN=DIR0NL,DX=DIR0S+DIR0NC
! 59: S DY=DIR0R+DIR0LN-1
! 60: Q
! 61: ;
! 62: WLT2 N DIR0D,DIR0I,DIR0T
! 63: Q:DIR0C=1
! 64: S DIR0T=$$PUNC(DIR0A)
! 65: ;
! 66: S DIR0I=DIR0C-1
! 67: I $E(DIR0T,DIR0I)=" " F DIR0I=DIR0I-1:-1:0 Q:$E(DIR0T,DIR0I)'=" "
! 68: I $E(DIR0T,DIR0I)="!" D
! 69: . F DIR0I=DIR0I-1:-1:0 Q:$E(DIR0T,DIR0I)'="!"
! 70: E I DIR0I D
! 71: . F DIR0I=DIR0I-1:-1:0 Q:" !"[$E(DIR0T,DIR0I)
! 72: S DIR0I=DIR0I+1
! 73: ;
! 74: I DIR0I=1 D FDB^DIR03 Q
! 75: S DIR0C=DIR0I,DIR0LN=DIR0C-1\DIR0L+1,DX=DIR0C-1#DIR0L+DIR0S
! 76: S:DIR0LN>DIR0NL DIR0LN=DIR0NL,DX=DIR0S+DIR0NC
! 77: S DY=DIR0R+DIR0LN-1
! 78: Q
! 79: ;
! 80: DLW2 N DIR0I,DIR0X
! 81: Q:DIR0C>$L(DIR0A)
! 82: S DIR0CHG=1
! 83: ;
! 84: S DIR0I=$$WRPOS(DIR0A)
! 85: S $E(DIR0A,DIR0C,DIR0I-1)=""
! 86: ;
! 87: S DIR0X=DIR0A_$J("",DIR0I-DIR0C)
! 88: W $E(DIR0X,DIR0C,DIR0C+DIR0F-DX)
! 89: D
! 90: . N DY,DX
! 91: . S DX=DIR0S
! 92: . F DIR0I=DIR0C\DIR0L+2:1:$L(DIR0X)\DIR0L+1 D
! 93: .. S DY=DIR0R+DIR0I-1 X IOXY
! 94: .. W $E(DIR0X,DIR0I-1*DIR0L+1,DIR0I*DIR0L)
! 95: Q
! 96: ;
! 97: WRPOS(DIR0T) ;
! 98: N DIR0I,DIR0P,DIR0S
! 99: S DIR0T=$$PUNC(DIR0T)
! 100: S DIR0S=$F(DIR0T," ",DIR0C+1),DIR0P=$F(DIR0T,"!",DIR0C+1)
! 101: S:'DIR0S DIR0S=999 S:'DIR0P DIR0P=999
! 102: ;
! 103: I DIR0S=999,DIR0P=999 D
! 104: . S DIR0I=$L(DIR0T)+1
! 105: E I $E(DIR0T,DIR0C)="!" D
! 106: . F DIR0I=DIR0C+1:1 Q:$E(DIR0T,DIR0I)'="!"
! 107: . F DIR0I=DIR0I:1 Q:$E(DIR0T,DIR0I)'=" "
! 108: E I DIR0S<DIR0P D
! 109: . F DIR0I=DIR0S:1 Q:$E(DIR0T,DIR0I)'=" "
! 110: E S DIR0I=DIR0P-1
! 111: Q DIR0I
! 112: ;
! 113: PUNC(X) ;
! 114: Q $TR(X,"`~!@#$%^&*()-_=+\|[{]};:'"",<.>/?",$TR($J("",32)," ","!"))
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>