XMXEDIT ;ISC-SF/GMB-Edit msg that user has sent to self ;05/19/2000 13:41
;;8.0;MailMan;;Jun 28, 2002
; All entry points covered by DBIA 2730.
; These entry points edit a message. They do not perform any checks to
; see whether it is appropriate to do so. That is the responsibility
; of the calling routine.
; For these entry points, it is expected that:
; OPTMSG^XMXSEC2 has been called and has given its permission to
; edit the message or to toggle information only.
; OPTEDIT^XMXSEC2 has been called and has given its permission to
; edit the particular thing we are editing here.
; INMSG2^XMXUTIL2 has been called to set XMINSTR. These routines expect
; that XMINSTR has been correctly set. They will change
; XMINSTR according to the edit.
CLOSED(XMZ,XMINSTR,XMMSG) ; Toggle Closed msg
I $D(^TMP("XMY",$J,.6)) D ERRSET^XMXUTIL(37320.6) Q ; Messages addressed to SHARED,MAIL may not be closed
D FLAGTOGL(XMZ,1.95,.XMINSTR,"X",37319.9,37320.9,.XMMSG)
Q
CONFID(XMZ,XMINSTR,XMMSG) ; Toggle Confidential msg
I $D(^TMP("XMY",$J,.6)) D ERRSET^XMXUTIL(37301.6) Q ; Messages addressed to SHARED,MAIL may not be confidential
D FLAGTOGL(XMZ,1.96,.XMINSTR,"C",37301.9,37302.9,.XMMSG)
Q
CONFIRM(XMZ,XMINSTR,XMMSG) ; Toggle Confirm receipt of msg
D FLAGTOGL(XMZ,1.3,.XMINSTR,"R",37313.9,37314.9,.XMMSG)
Q
DELIVER(XMZ,XMDBSKT,XMINSTR,XMMSG) ; Delivery basket
I XMDBSKT="@" D Q
. K XMINSTR("RCPT BSKT")
. S XMFDA(3.9,XMZ_",",21)="@"
. D FILE^DIE("","XMFDA")
. S XMMSG=$$EZBLD^DIALOG(37304.9) ; Delivery basket removed
S XMINSTR("RCPT BSKT")=XMDBSKT
S XMFDA(3.9,XMZ_",",21)=XMINSTR("RCPT BSKT")
D FILE^DIE("","XMFDA")
S XMMSG=$$EZBLD^DIALOG(37303.9) ; Delivery basket set
Q
INFO(XMZ,XMINSTR,XMMSG) ; Toggle Information only msg
D FLAGTOGL(XMZ,1.97,.XMINSTR,"I",37307.9,37308.9,.XMMSG)
Q
NETSIG(XMDUZ,XMZ,XMINSTR,XMMSG) ; Add Network Signature
N I,XMNSIG
S XMNSIG(.1)=""
S XMNSIG(.2)=""
S XMNSIG(.3)=$$REPEAT^XLFSTR("-",79)
S XMNSIG=$G(^XMB(3.7,XMDUZ,"NS1"))
F I=1:1:3 S:$P(XMNSIG,U,I)'="" XMNSIG(I)=$P(XMNSIG,U,I)
N XMABORT
I $D(^XMB(3.9,XMZ,"K")) D Q:XMABORT
. ; If XMSECURE does not exist, then XMINSTR("SCR KEY") must hold the
. ; correct scramble key.
. I '$D(XMSECURE) N XMSECURE
. I '$D(XMSECURE),'$$GOODKEY^XMJMCODE(XMZ,XMINSTR("SCR KEY")) D Q
. . D ERRSET^XMXUTIL(34623) ; The key is not correct.
. . S XMABORT=1
. S XMABORT=0
. S I=0
. F S I=$O(XMNSIG(I)) Q:'I S XMNSIG(I)=$$ENCSTR^XMJMCODE(XMNSIG(I))
D MOVEBODY^XMXSEND(XMZ,"XMNSIG","A") ; Add the network signature
S XMMSG=$$EZBLD^DIALOG(37309.9) ; Network Signature added
Q
PRIORITY(XMZ,XMINSTR,XMMSG) ; Toggle Priority msg
D FLAGTOGL(XMZ,1.7,.XMINSTR,"P",37311.9,37312.9,.XMMSG)
Q
SCRAMBLE(XMZ,XMINSTR,XMMSG) ; Scramble or Unscramble the message text
N XMFDA,XMIENS
S XMIENS=XMZ_","
I $D(^XMB(3.9,XMZ,"K")) D Q
. ; Unscramble the text.
. ; If XMSECURE does not exist, then XMINSTR("SCR KEY") must hold the
. ; correct scramble key.
. I '$D(XMSECURE),'$$GOODKEY^XMJMCODE(XMZ,XMINSTR("SCR KEY")) D ERRSET^XMXUTIL(34623) Q ; The key is not correct.
. S XMFDA(3.9,XMIENS,1.8)="@"
. S XMFDA(3.9,XMIENS,1.85)="@"
. D FILE^DIE("","XMFDA")
. D DECMSG^XMJMCODE(XMZ)
. K XMSECURE,XMINSTR("SCR KEY"),XMINSTR("SCR HINT"),^XMB(3.9,XMZ,"K")
. S XMMSG=$$EZBLD^DIALOG(37316.9) ; Message text UnScrambled
; Check the key and hint
D XMKEY^XMXPARM1($G(XMINSTR("SCR KEY")))
D:$G(XMINSTR("SCR HINT"))'="" XMHINT^XMXPARM1(XMINSTR("SCR HINT"))
Q:$D(XMERR)
; Scramble the text.
N XMKEY
K XMSECURE
S XMFDA(3.9,XMIENS,1.8)=$S($G(XMINSTR("SCR HINT"))="":" ",1:XMINSTR("SCR HINT"))
D LOADCODE^XMJMCODE ; XMSECURE is created here
S XMKEY=XMINSTR("SCR KEY")
D ADJUST^XMJMCODE(.XMKEY) ; XMSECURE is adjusted here
S XMFDA(3.9,XMIENS,1.85)="1"_$$ENCSTR^XMJMCODE(XMKEY)
D ENCMSG^XMJMCODE(XMZ)
D FILE^DIE("","XMFDA")
S XMMSG=$$EZBLD^DIALOG(37315.9) ; Message text Scrambled
Q
SUBJ(XMZ,XMSUBJ,XMIM) ; Replace Subject
S XMSUBJ=$$XMSUBJ^XMXPARM("XMSUBJ",$G(XMSUBJ)) Q:$D(XMERR)
S (XMIM("SUBJ"),XMFDA(3.9,XMZ_",",.01))=$$ENCODEUP^XMXUTIL1(XMSUBJ)
D FILE^DIE("","XMFDA")
Q
TEXT(XMZ,XMBODY) ; Replace Text
D WP^DIE(3.9,XMZ_",",3,"",XMBODY)
Q
VAPOR(XMZ,XMVAPOR,XMINSTR,XMMSG) ; Vaporize date
I XMVAPOR="@" D Q
. K XMINSTR("VAPOR")
. S XMFDA(3.9,XMZ_",",1.6)="@"
. D FILE^DIE("","XMFDA")
. S XMMSG=$$EZBLD^DIALOG(37318.9) ; Vaporize Date removed
S XMINSTR("VAPOR")=XMVAPOR
S XMFDA(3.9,XMZ_",",1.6)=XMINSTR("VAPOR")
D FILE^DIE("","XMFDA")
S XMMSG=$$EZBLD^DIALOG(37317.9) ; Vaporize Date set
Q
FLAGTOGL(XMZ,XMFIELD,XMINSTR,XMFLAG,XMSET,XMREMOVE,XMMSG) ; Flag Toggle (For internal MM use only!)
N XMFDA
I $G(XMINSTR("FLAGS"))[XMFLAG D
. S XMINSTR("FLAGS")=$TR(XMINSTR("FLAGS"),XMFLAG)
. S XMMSG=$$EZBLD^DIALOG(XMREMOVE)
. I XMFLAG="P" D
. . S XMFDA(3.9,XMZ_",",XMFIELD)=$S($G(XMINSTR("TYPE"))="":"@",1:XMINSTR("TYPE"))
. E S XMFDA(3.9,XMZ_",",XMFIELD)="@"
E D
. S XMINSTR("FLAGS")=$G(XMINSTR("FLAGS"))_XMFLAG
. S XMMSG=$$EZBLD^DIALOG(XMSET)
. I XMFLAG="P" S XMFDA(3.9,XMZ_",",XMFIELD)=$G(XMINSTR("TYPE"))_"P"
. E S XMFDA(3.9,XMZ_",",XMFIELD)="y"
D FILE^DIE("","XMFDA")
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HXMXEDIT 5302 printed Dec 13, 2024@02:14:08 Page 2
XMXEDIT ;ISC-SF/GMB-Edit msg that user has sent to self ;05/19/2000 13:41
+1 ;;8.0;MailMan;;Jun 28, 2002
+2 ; All entry points covered by DBIA 2730.
+3 ; These entry points edit a message. They do not perform any checks to
+4 ; see whether it is appropriate to do so. That is the responsibility
+5 ; of the calling routine.
+6 ; For these entry points, it is expected that:
+7 ; OPTMSG^XMXSEC2 has been called and has given its permission to
+8 ; edit the message or to toggle information only.
+9 ; OPTEDIT^XMXSEC2 has been called and has given its permission to
+10 ; edit the particular thing we are editing here.
+11 ; INMSG2^XMXUTIL2 has been called to set XMINSTR. These routines expect
+12 ; that XMINSTR has been correctly set. They will change
+13 ; XMINSTR according to the edit.
CLOSED(XMZ,XMINSTR,XMMSG) ; Toggle Closed msg
+1 ; Messages addressed to SHARED,MAIL may not be closed
IF $DATA(^TMP("XMY",$JOB,.6))
DO ERRSET^XMXUTIL(37320.6)
QUIT
+2 DO FLAGTOGL(XMZ,1.95,.XMINSTR,"X",37319.9,37320.9,.XMMSG)
+3 QUIT
CONFID(XMZ,XMINSTR,XMMSG) ; Toggle Confidential msg
+1 ; Messages addressed to SHARED,MAIL may not be confidential
IF $DATA(^TMP("XMY",$JOB,.6))
DO ERRSET^XMXUTIL(37301.6)
QUIT
+2 DO FLAGTOGL(XMZ,1.96,.XMINSTR,"C",37301.9,37302.9,.XMMSG)
+3 QUIT
CONFIRM(XMZ,XMINSTR,XMMSG) ; Toggle Confirm receipt of msg
+1 DO FLAGTOGL(XMZ,1.3,.XMINSTR,"R",37313.9,37314.9,.XMMSG)
+2 QUIT
DELIVER(XMZ,XMDBSKT,XMINSTR,XMMSG) ; Delivery basket
+1 IF XMDBSKT="@"
Begin DoDot:1
+2 KILL XMINSTR("RCPT BSKT")
+3 SET XMFDA(3.9,XMZ_",",21)="@"
+4 DO FILE^DIE("","XMFDA")
+5 ; Delivery basket removed
SET XMMSG=$$EZBLD^DIALOG(37304.9)
End DoDot:1
QUIT
+6 SET XMINSTR("RCPT BSKT")=XMDBSKT
+7 SET XMFDA(3.9,XMZ_",",21)=XMINSTR("RCPT BSKT")
+8 DO FILE^DIE("","XMFDA")
+9 ; Delivery basket set
SET XMMSG=$$EZBLD^DIALOG(37303.9)
+10 QUIT
INFO(XMZ,XMINSTR,XMMSG) ; Toggle Information only msg
+1 DO FLAGTOGL(XMZ,1.97,.XMINSTR,"I",37307.9,37308.9,.XMMSG)
+2 QUIT
NETSIG(XMDUZ,XMZ,XMINSTR,XMMSG) ; Add Network Signature
+1 NEW I,XMNSIG
+2 SET XMNSIG(.1)=""
+3 SET XMNSIG(.2)=""
+4 SET XMNSIG(.3)=$$REPEAT^XLFSTR("-",79)
+5 SET XMNSIG=$GET(^XMB(3.7,XMDUZ,"NS1"))
+6 FOR I=1:1:3
if $PIECE(XMNSIG,U,I)'=""
SET XMNSIG(I)=$PIECE(XMNSIG,U,I)
+7 NEW XMABORT
+8 IF $DATA(^XMB(3.9,XMZ,"K"))
Begin DoDot:1
+9 ; If XMSECURE does not exist, then XMINSTR("SCR KEY") must hold the
+10 ; correct scramble key.
+11 IF '$DATA(XMSECURE)
NEW XMSECURE
+12 IF '$DATA(XMSECURE)
IF '$$GOODKEY^XMJMCODE(XMZ,XMINSTR("SCR KEY"))
Begin DoDot:2
+13 ; The key is not correct.
DO ERRSET^XMXUTIL(34623)
+14 SET XMABORT=1
End DoDot:2
QUIT
+15 SET XMABORT=0
+16 SET I=0
+17 FOR
SET I=$ORDER(XMNSIG(I))
if 'I
QUIT
SET XMNSIG(I)=$$ENCSTR^XMJMCODE(XMNSIG(I))
End DoDot:1
if XMABORT
QUIT
+18 ; Add the network signature
DO MOVEBODY^XMXSEND(XMZ,"XMNSIG","A")
+19 ; Network Signature added
SET XMMSG=$$EZBLD^DIALOG(37309.9)
+20 QUIT
PRIORITY(XMZ,XMINSTR,XMMSG) ; Toggle Priority msg
+1 DO FLAGTOGL(XMZ,1.7,.XMINSTR,"P",37311.9,37312.9,.XMMSG)
+2 QUIT
SCRAMBLE(XMZ,XMINSTR,XMMSG) ; Scramble or Unscramble the message text
+1 NEW XMFDA,XMIENS
+2 SET XMIENS=XMZ_","
+3 IF $DATA(^XMB(3.9,XMZ,"K"))
Begin DoDot:1
+4 ; Unscramble the text.
+5 ; If XMSECURE does not exist, then XMINSTR("SCR KEY") must hold the
+6 ; correct scramble key.
+7 ; The key is not correct.
IF '$DATA(XMSECURE)
IF '$$GOODKEY^XMJMCODE(XMZ,XMINSTR("SCR KEY"))
DO ERRSET^XMXUTIL(34623)
QUIT
+8 SET XMFDA(3.9,XMIENS,1.8)="@"
+9 SET XMFDA(3.9,XMIENS,1.85)="@"
+10 DO FILE^DIE("","XMFDA")
+11 DO DECMSG^XMJMCODE(XMZ)
+12 KILL XMSECURE,XMINSTR("SCR KEY"),XMINSTR("SCR HINT"),^XMB(3.9,XMZ,"K")
+13 ; Message text UnScrambled
SET XMMSG=$$EZBLD^DIALOG(37316.9)
End DoDot:1
QUIT
+14 ; Check the key and hint
+15 DO XMKEY^XMXPARM1($GET(XMINSTR("SCR KEY")))
+16 if $GET(XMINSTR("SCR HINT"))'=""
DO XMHINT^XMXPARM1(XMINSTR("SCR HINT"))
+17 if $DATA(XMERR)
QUIT
+18 ; Scramble the text.
+19 NEW XMKEY
+20 KILL XMSECURE
+21 SET XMFDA(3.9,XMIENS,1.8)=$SELECT($GET(XMINSTR("SCR HINT"))="":" ",1:XMINSTR("SCR HINT"))
+22 ; XMSECURE is created here
DO LOADCODE^XMJMCODE
+23 SET XMKEY=XMINSTR("SCR KEY")
+24 ; XMSECURE is adjusted here
DO ADJUST^XMJMCODE(.XMKEY)
+25 SET XMFDA(3.9,XMIENS,1.85)="1"_$$ENCSTR^XMJMCODE(XMKEY)
+26 DO ENCMSG^XMJMCODE(XMZ)
+27 DO FILE^DIE("","XMFDA")
+28 ; Message text Scrambled
SET XMMSG=$$EZBLD^DIALOG(37315.9)
+29 QUIT
SUBJ(XMZ,XMSUBJ,XMIM) ; Replace Subject
+1 SET XMSUBJ=$$XMSUBJ^XMXPARM("XMSUBJ",$GET(XMSUBJ))
if $DATA(XMERR)
QUIT
+2 SET (XMIM("SUBJ"),XMFDA(3.9,XMZ_",",.01))=$$ENCODEUP^XMXUTIL1(XMSUBJ)
+3 DO FILE^DIE("","XMFDA")
+4 QUIT
TEXT(XMZ,XMBODY) ; Replace Text
+1 DO WP^DIE(3.9,XMZ_",",3,"",XMBODY)
+2 QUIT
VAPOR(XMZ,XMVAPOR,XMINSTR,XMMSG) ; Vaporize date
+1 IF XMVAPOR="@"
Begin DoDot:1
+2 KILL XMINSTR("VAPOR")
+3 SET XMFDA(3.9,XMZ_",",1.6)="@"
+4 DO FILE^DIE("","XMFDA")
+5 ; Vaporize Date removed
SET XMMSG=$$EZBLD^DIALOG(37318.9)
End DoDot:1
QUIT
+6 SET XMINSTR("VAPOR")=XMVAPOR
+7 SET XMFDA(3.9,XMZ_",",1.6)=XMINSTR("VAPOR")
+8 DO FILE^DIE("","XMFDA")
+9 ; Vaporize Date set
SET XMMSG=$$EZBLD^DIALOG(37317.9)
+10 QUIT
FLAGTOGL(XMZ,XMFIELD,XMINSTR,XMFLAG,XMSET,XMREMOVE,XMMSG) ; Flag Toggle (For internal MM use only!)
+1 NEW XMFDA
+2 IF $GET(XMINSTR("FLAGS"))[XMFLAG
Begin DoDot:1
+3 SET XMINSTR("FLAGS")=$TRANSLATE(XMINSTR("FLAGS"),XMFLAG)
+4 SET XMMSG=$$EZBLD^DIALOG(XMREMOVE)
+5 IF XMFLAG="P"
Begin DoDot:2
+6 SET XMFDA(3.9,XMZ_",",XMFIELD)=$SELECT($GET(XMINSTR("TYPE"))="":"@",1:XMINSTR("TYPE"))
End DoDot:2
+7 IF '$TEST
SET XMFDA(3.9,XMZ_",",XMFIELD)="@"
End DoDot:1
+8 IF '$TEST
Begin DoDot:1
+9 SET XMINSTR("FLAGS")=$GET(XMINSTR("FLAGS"))_XMFLAG
+10 SET XMMSG=$$EZBLD^DIALOG(XMSET)
+11 IF XMFLAG="P"
SET XMFDA(3.9,XMZ_",",XMFIELD)=$GET(XMINSTR("TYPE"))_"P"
+12 IF '$TEST
SET XMFDA(3.9,XMZ_",",XMFIELD)="y"
End DoDot:1
+13 DO FILE^DIE("","XMFDA")
+14 QUIT