XMR3 ;ISC-SF/GMB-SMTP Receiver (RFC 822) ;07/01/2002 14:11
Source file <XMR3.m>
| Name | Comments | DBIA/ICR reference | 
|---|---|---|
| PRIO | ; "X-PRIORITY:1" (Priority) | |
| SUBJ | ; "SUBJECT:" | |
| REPL | ; "REPLY-TO:" | |
| ENCR | ; "ENCRYPT:" | |
| CLOS | ; "X-MM-CLOSED:YES" | |
| DATE | ; "DATE:" | |
| DATA | ; TEXT / ASSUMES VALID RECIPIENT ; Incoming Variables: ; XMINSTR("FWD BY")="" ; XMZ message number of new message ; XMZFDA FM FDA for new message ; XMZIENS IENS for new message ; $D(XMC("DX")) means Test mode: Messages will not be delivered ; If the msg is from a VA site, the following may be set: ; XMREMID always set if the msg is from a VA site ; $G(XMRXMZ) message number of message we already have. ; Set if new message is a duplicate of one we already have. | |
| SET | ; Set data into message file | |
| HDRFIND(XMZ,XMFIND,XMHDR) | ; | |
| NEXT(XMH,XMHDR,XMDATA) | ; | |
| TOOLONG() | ; | |
| HDRPROC | ; Process header commands | |
| EXPI | ; "EXPIRY-DATE:" (vaporize date) | |
| CONTINU(XMVBL,XMH,XMHDR) | ; | |
| RETU | ; "RETURN-RECEIPT-TO:" | |
| PARSE(XMZ,XMREMID,XMSUBJ,XMFROM,XMDATE,XMSENDER,XMENCR,XMZO) | ; Get data for remotely originated message ; This is used by ^XMRENT & ^XMS3 ; XMSUBJ subject ; XMFROM from ; XMDATE date ; XMENCR scramble hint "^" scramble key ; XMREMID message id at site where msg originated (not necessarily at the sending site) ; XMZO original message xmz (to which this msg is a response) | |
| REMID(X) | ; | |
| GETDATA | ; | |
| IMPO | ; "IMPORTANCE:HIGH" (Priority) | |
| INRE | ; "IN-REPLY-TO:" message at this site | |
| MESS | ; "MESSAGE-ID:" at site where message originated | |
| SCRUB(X) | ; Strip ctrl chars and leading/trailing blanks | |
| REFE | ; "REFERENCES:" (used by some systems, instead of 'in-reply-to') | |
| BASK | ; "X-MM-BASKET:" (Delivery Basket) | |
| INFO | ; "X-MM-INFO-ONLY:YES" | |
| FROM | ; "FROM:" | |
| SEND | ; "SENDER:" (Surrogate) | |
| SENS | ; "SENSITIVITY:PERSONAL" (Confidential) | |
| TYPE | ; "X-MM-TYPE:" | 
| Name | Field # of Occurrence | 
|---|---|
| FILE^DIE | SET+5 | 
| $$UP^XLFSTR | GETDATA+13, IMPO+1, PRIO+1, SENS+1, HDRFIND+8 | 
| DOTRAN^XMC1 | SET+8, SET+9 | 
| FWD^XMKP | SET+11 | 
| RPOST^XMKP | SET+10 | 
| CHECK^XMKPL | SET+12 | 
| $$LOCALXMZ^XMR3A | INRE+3 | 
| CHEKDUP^XMR3A | SET+1 | 
| KILLIT^XMR3A | HDRPROC+5, HDRPROC+13, HDRPROC+21, HDRPROC+25 | 
| XMTHIST^XMTDR | DATA+20 | 
| $$REMADDR^XMXADDR3 | SET+3, SET+4 | 
| ZAPIT^XMXMSGS2 | DATA+17 | 
| $$CONVERT^XMXUTIL1 | EXPI+2 | 
| $$CTRL^XMXUTIL1 | SCRUB+1 | 
| $$ENCODEUP^XMXUTIL1 | SUBJ+3 | 
| $$MAXBLANK^XMXUTIL1 | SUBJ+2 | 
| $$STRIP^XMXUTIL1 | SCRUB+2 | 
| Name | Line Occurrences (* Changed, ! Killed) | 
|---|---|
| ^TMP("XMY" | DATA+16!, SET+7 | 
| ^TMP("XMY0" | DATA+16! | 
| ^XMB(1 - [#4.3] | TOOLONG+2 | 
| ^XMB(3.9 - [#3.9] | DATA+20, GETDATA+7*, HDRPROC+2, HDRPROC+19, HDRPROC+32*, INRE+7, INRE+10, HDRFIND+6 | 
| ^XMHDR( | NEXT+5 | 
| Name | Line Occurrences | 
|---|---|
| $$REMID | INRE+2, MESS+1 | 
| $$SCRUB | GETDATA+14, GETDATA+15, GETDATA+16, GETDATA+17, NEXT+2, HDRFIND+10, HDRFIND+11, HDRFIND+12, HDRFIND+13 | 
| $$TOOLONG | HDRPROC+10 | 
| @( | HDRPROC+18, PARSE+15 | 
| GETDATA | DATA+12 | 
| HDRFIND | PARSE+11 | 
| HDRPROC | DATA+13 | 
| NEXT | GETDATA+11, HDRFIND+7 | 
| SET | DATA+14 | 
| Name | Field # of Occurrence | 
|---|---|
| ^( | HDRFIND+6 | 
| >> | Not killed explicitly | 
| * | Changed | 
| ! | Killed | 
| ~ | Newed | 
| Name | Field # of Occurrence | 
|---|---|
| >> ER | DATA+12, DATA+13, GETDATA+2, GETDATA+4, GETDATA+19 | 
| I | NEXT+1~, NEXT+5*, NEXT+6, NEXT+7, CONTINU+1~, CONTINU+2*, CONTINU+3*, INRE+1~ | 
| U | DATA+20, GETDATA+14, GETDATA+15, GETDATA+16, GETDATA+17, HDRPROC+32, TOOLONG+2, ENCR+3, ENCR+4, INRE+5 , INRE+8, INRE+9, INRE+12, SENS+1, HDRFIND+3, HDRFIND+4, HDRFIND+9, HDRFIND+10, HDRFIND+11, HDRFIND+12 , HDRFIND+13 | 
| X | SCRUB~, SCRUB+1*, SCRUB+2*, SCRUB+3, REMID~, REMID+1, REMID+4 | 
| >> XM2LONG | TOOLONG+4 | 
| >> XMC("DX" | DATA+13, DATA+14 | 
| XMDATA | NEXT~, NEXT+2*, NEXT+3, NEXT+4, NEXT+6, NEXT+7 | 
| XMDATE | DATA+11~, HDRPROC+15*, DATE+1*, DATE+2, PARSE~ | 
| XMENCR | DATA+11~, HDRPROC+15*, ENCR+1*, ENCR+3, ENCR+4, PARSE~ | 
| XMFIND | PARSE+8~, PARSE+10*, PARSE+11, HDRFIND~, HDRFIND+2, HDRFIND+3*, HDRFIND+4*, HDRFIND+9 | 
| XMFROM | DATA+11~, HDRPROC+15*, FROM+1*, FROM+4, SEND+3, PARSE~ | 
| XMH | GETDATA+1~, GETDATA+3*, GETDATA+11, GETDATA+13*, GETDATA+14*, GETDATA+15*, GETDATA+16*, GETDATA+17*, GETDATA+18*, NEXT~ , NEXT+3, NEXT+4, NEXT+5, NEXT+6, NEXT+7, HDRPROC+1~, HDRPROC+15*, HDRPROC+16*, HDRPROC+17, HDRPROC+18 , CONTINU~, CONTINU+3, PARSE+8~, PARSE+12*, PARSE+13*, PARSE+14, PARSE+15, HDRFIND+1~, HDRFIND+7, HDRFIND+8* , HDRFIND+9*, HDRFIND+10*, HDRFIND+11*, HDRFIND+12*, HDRFIND+13*, HDRFIND+14* | 
| XMHDR | DATA+11~, GETDATA+11, NEXT~, CONTINU~, PARSE+8~, PARSE+11, HDRFIND~, HDRFIND+7 | 
| XMHDR( | GETDATA+14*, GETDATA+15*, GETDATA+16*, GETDATA+17*, NEXT+3*, NEXT+4*, NEXT+6*, NEXT+7*, HDRPROC+16, HDRPROC+17 , CONTINU+3, PARSE+13, PARSE+14, HDRFIND+10*, HDRFIND+11*, HDRFIND+12*, HDRFIND+13* | 
| XMHDR("TYPE" | TOOLONG+6 | 
| XMI | HDRFIND+1~, HDRFIND+5*, HDRFIND+6* | 
| XMINCR | DATA+11~, GETDATA+3*, GETDATA+6, GETDATA+8, GETDATA+9*, GETDATA+10* | 
| >> XMINST | DATA+20 | 
| XMINSTR | DATA+21!, SET+11 | 
| XMLIMIT | TOOLONG+1~, TOOLONG+2*, TOOLONG+3, TOOLONG+5 | 
| XMLIN | DATA+11~, GETDATA+3*, GETDATA+6*, GETDATA+7, GETDATA+9*, GETDATA+10, HDRPROC+2, HDRPROC+32, TOOLONG+5 | 
| XMLOCID | INRE+1~, INRE+2*, INRE+3 | 
| XMNVFROM | DATA+21! | 
| XMP | HDRPROC+1~, HDRPROC+17*, BASK+1, DATE+1, ENCR+1, EXPI+2, FROM+1, IMPO+1, INRE+2, MESS+1 , PRIO+1, REPL+1, SEND+1, SENS+1, SUBJ+1, TYPE+1, PARSE+8~, PARSE+14* | 
| XMREC | GETDATA+4, INRE+1~, INRE+7*, INRE+8, INRE+9, INRE+10*, INRE+11, INRE+12, HDRFIND+1~, HDRFIND+6* , HDRFIND+7, HDRFIND+8, HDRFIND+10, HDRFIND+11, HDRFIND+12, HDRFIND+13 | 
| XMREJECT | DATA+11~, DATA+14, DATA+18, HDRPROC+3*, HDRPROC+11*, HDRPROC+22*, HDRPROC+26*, SET+1 | 
| XMREMID | DATA+21!, HDRPROC+14*, MESS+1*, MESS+2, SET+1, PARSE~ | 
| XMREPLTO | DATA+11~, REPL+1* | 
| >> XMRG | GETDATA+4, GETDATA+5*, GETDATA+7, GETDATA+9, GETDATA+11, GETDATA+13, GETDATA+14, GETDATA+15, GETDATA+16, GETDATA+17 | 
| XMRINFO | HDRPROC+1~, HDRPROC+23, INRE+12*, PARSE+8~ | 
| XMRXMZ | DATA+13, DATA+21! | 
| >> XMSEN | DATA+19, GETDATA+2, HDRPROC+4, HDRPROC+12, HDRPROC+20, HDRPROC+24 | 
| XMSENDER | DATA+11~, HDRPROC+15*, SEND+1*, SEND+3, SEND+4, PARSE~ | 
| >> XMSG | DATA+19*, GETDATA+2*, HDRPROC+4*, HDRPROC+12*, HDRPROC+20*, HDRPROC+24* | 
| >> XMSTATE | DATA+15* | 
| XMSUBJ | DATA+11~, HDRPROC+15*, SUBJ+1*, SUBJ+2*, SUBJ+3*, SUBJ+4*, SUBJ+5, SUBJ+6*, SUBJ+7, PARSE~ | 
| XMVAPOR | EXPI+1~, EXPI+2*, EXPI+3 | 
| XMVBL | CONTINU~, CONTINU+3* | 
| XMZ | DATA+17, DATA+20, DATA+21!, GETDATA+7, HDRPROC+2, HDRPROC+19, HDRPROC+32, SET+8, SET+10, SET+11 , PARSE~, PARSE+11, HDRFIND~, HDRFIND+6 | 
| XMZFDA | DATA+21!, SET+2, PARSE+8~ | 
| XMZFDA( | HDRPROC+19, BASK+1*, CLOS+1*, DATE+2*, ENCR+3*, ENCR+4*, EXPI+3*, FROM+4*, IMPO+2*, INFO+1* , INRE+13*, MESS+2*, PRIO+2*, RETU+1*, SEND+4*, SENS+2*, SUBJ+7*, TYPE+1*, SET+3*, SET+4* | 
| XMZIENS | DATA+21!, HDRPROC+19, BASK+1, CLOS+1, DATE+2, ENCR+2, ENCR+3, ENCR+4, EXPI+3, FROM+2 , FROM+4, IMPO+1, IMPO+2, INFO+1, INRE+13, MESS+2, PRIO+1, PRIO+2, RETU+1, SEND+4 , SENS+2, SUBJ+5, SUBJ+7, TYPE+1, SET+3, SET+4, PARSE+8~ | 
| XMZO | DATA+11~, HDRPROC+15*, INRE+3*, INRE+4, INRE+5*, INRE+6*, INRE+7, INRE+9*, INRE+10, INRE+11* , INRE+13, SET+7, SET+8, SET+9, SET+10, PARSE~ |