| 1 | XMXANSER ;ISC-SF/GMB-Answer a msg ;04/24/2002  10:08 | 
|---|
| 2 | ;;8.0;MailMan;;Jun 28, 2002 | 
|---|
| 3 | ; Replaces ^XMA11A (ISC-WASH/CAP/THM) | 
|---|
| 4 | ; XMDUZ             DUZ of who the msg is from | 
|---|
| 5 | ; XMSUBJ            Subject of the msg (defaults to 'Re:' original subject) | 
|---|
| 6 | ; XMBODY            Closed root of Body of the msg | 
|---|
| 7 | ;                   Must be closed root, passed by value.  See WP_ROOT | 
|---|
| 8 | ;                   definition for WP^DIE(), FM word processing filer. | 
|---|
| 9 | ; XMTO              Additional addressees, besides msg originator | 
|---|
| 10 | ; XMINSTR("FROM")   String saying from whom (default is user) | 
|---|
| 11 | ; XMINSTR("SELF BSKT") Basket to deliver to if sender is recipient | 
|---|
| 12 | ; XMINSTR("SHARE BSKT") Basket to deliver to if recipient is "SHARED,MAIL" | 
|---|
| 13 | ; XMINSTR("SHARE DATE") Delete date if recipient is "SHARED,MAIL" | 
|---|
| 14 | ; XMINSTR("RCPT BSKT") Basket name (only) to deliver to for other recipients | 
|---|
| 15 | ; XMINSTR("VAPOR")  Date on which to vaporize (delete) this message | 
|---|
| 16 | ;                   from recipient baskets | 
|---|
| 17 | ; XMINSTR("LATER")  Date on which to send this msg, if not now | 
|---|
| 18 | ; XMINSTR("FLAGS")  Any or all of the following: | 
|---|
| 19 | ;                   P Priority | 
|---|
| 20 | ;                   I Information only (may not be replied to) | 
|---|
| 21 | ;                   X Closed msg (may not be forwarded) | 
|---|
| 22 | ;                   C Confidential (surrogates may not read) | 
|---|
| 23 | ;                   S Send to sender (make sender a recipient) | 
|---|
| 24 | ;                   R Confirm receipt | 
|---|
| 25 | ; XMINSTR("SCR KEY")   Scramble key (implies that msg should be scrambled) | 
|---|
| 26 | ; XMINSTR("SCR HINT")  Hint (to guess the scramble key) | 
|---|
| 27 | ; XMINSTR("KEYS")   List of keys needed by recipient to read msg (NOT IMPLEMENTED) | 
|---|
| 28 | ; XMINSTR("TYPE")   Msg type is one of the following: | 
|---|
| 29 | ;                   D Document | 
|---|
| 30 | ;                   S Spooled Document | 
|---|
| 31 | ;                   X DIFROM | 
|---|
| 32 | ;                   O ODIF | 
|---|
| 33 | ;                   B BLOB | 
|---|
| 34 | ;                   K KIDS | 
|---|
| 35 | ; | 
|---|
| 36 | ; Output: | 
|---|
| 37 | ; XMZR              The number of the message containing the answer. | 
|---|
| 38 | ANSRMSG(XMDUZ,XMK,XMKZ,XMSUBJ,XMBODY,XMTO,XMINSTR,XMZR) ; | 
|---|
| 39 | N XMZ,XMZREC,XMZSENDR | 
|---|
| 40 | K XMERR,^TMP("XMERR",$J) | 
|---|
| 41 | D CHKMSG^XMXSEC1(XMDUZ,.XMK,.XMKZ,.XMZ,.XMZREC) Q:$D(XMERR) | 
|---|
| 42 | Q:'$$ANSWER^XMXSEC(XMDUZ,XMZ,XMZREC) | 
|---|
| 43 | S:$G(XMSUBJ)="" XMSUBJ=$E($$EZBLD^DIALOG(37006)_$P(XMZREC,U,1),1,65) ; Re: | 
|---|
| 44 | D CRE8XMZ^XMXSEND(XMSUBJ,.XMZR) Q:$D(XMERR) | 
|---|
| 45 | S XMZSENDR=$P(XMZREC,U,2) | 
|---|
| 46 | S:XMZSENDR["@" XMZSENDR=$$REPLYTO1^XMXREPLY(XMZ) | 
|---|
| 47 | D COMPOSE(XMDUZ,XMZ,$P(XMZREC,U,1),XMZSENDR,$P(XMZREC,U,3),XMZR,XMBODY) | 
|---|
| 48 | S XMTO(XMZSENDR)="" | 
|---|
| 49 | S XMINSTR("EXACT")=1 ; Match on exact domain name | 
|---|
| 50 | D ADDRNSND^XMXSEND(XMDUZ,XMZR,.XMTO,.XMINSTR) | 
|---|
| 51 | K XMINSTR("EXACT") | 
|---|
| 52 | Q | 
|---|
| 53 | COMPOSE(XMDUZ,XMZ,XMZSUBJ,XMZSENDR,XMZDATE,XMZR,XMBODY) ; | 
|---|
| 54 | D COPY(XMZ,XMZSUBJ,XMZSENDR,XMZDATE,XMZR) | 
|---|
| 55 | ; File XMBODY, with the "append" option | 
|---|
| 56 | D MOVEBODY^XMXSEND(XMZR,XMBODY,"A") ; Put the msg body in place | 
|---|
| 57 | D NETSIG^XMXEDIT(XMDUZ,XMZR) | 
|---|
| 58 | Q | 
|---|
| 59 | COPY(XMZO,XMZOSUBJ,XMZOFROM,XMZODATE,XMZ) ; Copy the original msg, putting ">" in front of each line. | 
|---|
| 60 | N I,J | 
|---|
| 61 | D COPYHEAD^XMJMC(XMZO,XMZOSUBJ,XMZOFROM,XMZODATE,XMZ,"A",.J) | 
|---|
| 62 | S J=J+1,^XMB(3.9,XMZ,2,J,0)=">" | 
|---|
| 63 | S I=.999999 | 
|---|
| 64 | F  S I=$O(^XMB(3.9,XMZO,2,I)) Q:I=""  S J=J+1,^XMB(3.9,XMZ,2,J,0)=$E(">"_^(I,0),1,254) | 
|---|
| 65 | S J=J+1,^XMB(3.9,XMZ,2,J,0)="" | 
|---|
| 66 | S J=J+1,^XMB(3.9,XMZ,2,J,0)="" | 
|---|
| 67 | S ^XMB(3.9,XMZ,2,0)="^3.92A^"_J_U_J_U_DT | 
|---|
| 68 | Q | 
|---|