| 1 | XMXTO ;ISC-SF/GMB-Address a msg ;08/08/2000  14:38
 | 
|---|
| 2 |  ;;8.0;MailMan;;Jun 28, 2002
 | 
|---|
| 3 |  ; Entry points:
 | 
|---|
| 4 |  ; ITOWHOM  Interactive 'to whom:'
 | 
|---|
| 5 |  ; TOWHOM   Silent 'to whom:'
 | 
|---|
| 6 | ITOWHOM(XMDUZ,XMZ,XMTYPE,XMINSTR) ; Interactive
 | 
|---|
| 7 |  ; XMDUZ             DUZ of who is sending or forwarding the message
 | 
|---|
| 8 |  ; XMZ               The message number
 | 
|---|
| 9 |  ;                   (need not be supplied if XMTYPE="S" and
 | 
|---|
| 10 |  ;                   XMINSTR("ADDR FLAGS")["R")
 | 
|---|
| 11 |  ; XMTYPE            S='Send to:'
 | 
|---|
| 12 |  ;                   F='Forward to:'
 | 
|---|
| 13 |  ; XMINSTR("SELF BSKT") Basket to deliver to if sender is recipient
 | 
|---|
| 14 |  ; XMINSTR("SHARE DATE") Delete date if recipient is "SHARED,MAIL"
 | 
|---|
| 15 |  ; XMINSTR("SHARE BSKT") Basket if recipient is "SHARED,MAIL"
 | 
|---|
| 16 |  ; XMINSTR("TO PROMPT") Initial prompt to whom to send the message (default=XMDUZ)
 | 
|---|
| 17 |  ; XMINSTR("FLAGS")  Any or all or none of the following:
 | 
|---|
| 18 |  ;                   (Necessary only if XMTYPE="S" and XMINSTR("ADDR FLAGS")["R")
 | 
|---|
| 19 |  ;                   X Closed msg (may not be forwarded)
 | 
|---|
| 20 |  ;                   C Confidential msg (surrogates may not read)
 | 
|---|
| 21 |  ; XMINSTR("ADDR FLAGS")   Any or all of the following:
 | 
|---|
| 22 |  ;                   I Do not Initialize (kill) the ^TMP addressee global
 | 
|---|
| 23 |  ;                   R Do not Restrict addressees
 | 
|---|
| 24 |  N XMRESTR,XMABORT
 | 
|---|
| 25 |  K XMERR,^TMP("XMERR",$J)
 | 
|---|
| 26 |  D INIT(XMDUZ,.XMZ,XMTYPE,.XMINSTR,.XMRESTR,.XMPROMPT) Q:$D(XMERR)
 | 
|---|
| 27 |  S XMABORT=0
 | 
|---|
| 28 |  D TOWHOM^XMJMT(XMDUZ,XMPROMPT,.XMINSTR,.XMRESTR,.XMABORT)
 | 
|---|
| 29 |  Q:'XMABORT
 | 
|---|
| 30 |  D ERRSET^XMXUTIL($S(XMABORT=1:37000,1:37001)) ; up-arrow out. / time out.
 | 
|---|
| 31 |  Q
 | 
|---|
| 32 | TOWHOM(XMDUZ,XMZ,XMTYPE,XMTO,XMINSTR,XMFULL) ; Silent
 | 
|---|
| 33 |  ; XMDUZ       (in)  DUZ of who is sending or forwarding the message
 | 
|---|
| 34 |  ; XMZ         (in)  The message number
 | 
|---|
| 35 |  ;                   (need not be supplied if XMTYPE="S" and
 | 
|---|
| 36 |  ;                   XMINSTR("ADDR FLAGS")["R")
 | 
|---|
| 37 |  ; XMTYPE      (in)  S='Send to:'
 | 
|---|
| 38 |  ;                   F='Forward to:'
 | 
|---|
| 39 |  ; XMTO        (in)  ONE addressee
 | 
|---|
| 40 |  ; XMINSTR("SELF BSKT")  (in) Basket to deliver to if sender is recipient
 | 
|---|
| 41 |  ; XMINSTR("SHARE DATE") (in) Delete date if recipient is "SHARED,MAIL"
 | 
|---|
| 42 |  ; XMINSTR("SHARE BSKT") (in) Basket if recipient is "SHARED,MAIL"
 | 
|---|
| 43 |  ; XMINSTR("FLAGS")      (in) Any or all or none of the following:
 | 
|---|
| 44 |  ;                   (Necessary only if XMTYPE="S" and XMINSTR("ADDR FLAGS")["R")
 | 
|---|
| 45 |  ;                   X Closed msg (may not be forwarded)
 | 
|---|
| 46 |  ;                   C Confidential msg (surrogates may not read)
 | 
|---|
| 47 |  ; XMINSTR("ADDR FLAGS")   Any or all of the following:
 | 
|---|
| 48 |  ;                   I Do not Initialize (kill) the ^TMP addressee global
 | 
|---|
| 49 |  ;                   R Do not Restrict addressees
 | 
|---|
| 50 |  ; XMFULL      (out) the full address
 | 
|---|
| 51 |  N XMRESTR
 | 
|---|
| 52 |  K XMERR,^TMP("XMERR",$J)
 | 
|---|
| 53 |  D INIT(XMDUZ,.XMZ,XMTYPE,.XMINSTR,.XMRESTR) Q:$D(XMERR)
 | 
|---|
| 54 |  D CHKADDR^XMXADDR(XMDUZ,.XMTO,.XMINSTR,.XMRESTR,.XMFULL)
 | 
|---|
| 55 |  Q
 | 
|---|
| 56 | INIT(XMDUZ,XMZ,XMTYPE,XMINSTR,XMRESTR,XMPROMPT) ;
 | 
|---|
| 57 |  I XMTYPE="S" D
 | 
|---|
| 58 |  . S XMPROMPT=$$EZBLD^DIALOG(34110) ; Send
 | 
|---|
| 59 |  . D:$G(XMINSTR("ADDR FLAGS"))'["R" CHKLINES^XMXSEC1(XMDUZ,XMZ,.XMRESTR)
 | 
|---|
| 60 |  E  D
 | 
|---|
| 61 |  . N XMZREC
 | 
|---|
| 62 |  . S XMZREC=^XMB(3.9,XMZ,0)
 | 
|---|
| 63 |  . S XMPROMPT=$$EZBLD^DIALOG(34111) ; Forward
 | 
|---|
| 64 |  . Q:'$$FORWARD^XMXSEC(XMDUZ,XMZ,XMZREC)
 | 
|---|
| 65 |  . D:$G(XMINSTR("ADDR FLAGS"))'["R" GETRESTR^XMXSEC1(XMDUZ,XMZ,XMZREC,.XMINSTR,.XMRESTR)
 | 
|---|
| 66 |  D:$G(XMINSTR("ADDR FLAGS"))'["I" INIT^XMXADDR
 | 
|---|
| 67 |  Q
 | 
|---|