mò %U²Ic@sùdZdkZdkZddddddgZdfd „ƒYZd fd „ƒYZdefd „ƒYZdefd „ƒYZdefd„ƒYZdfd„ƒYZ dfd„ƒYZ defd„ƒYZ d„Z e djo e ƒndS(sAClasses to handle Unix style, MMDF style, and MH style mailboxes.Nt UnixMailboxt MmdfMailboxt MHMailboxtMaildirt BabylMailboxtPortableUnixMailboxt_MailboxcBs)tZeid„Zd„Zd„ZRS(NcCs||_d|_||_dS(Ni(tfptselftseekptfactory(RRR ((t$/data/zmath/lib/python2.4/mailbox.pyt__init__s  cCst|idƒS(N(titerRtnexttNone(R((R t__iter__scCs²x“|ii|iƒy|iƒWn)tj o|iiƒ|_dSnX|iiƒ}|i ƒ|iiƒ|_}||joPqqW|i t |i||ƒƒS(Ni( RRtseekR t _search_starttEOFErrorttellRtstartt _search_endtstopR t_Subfile(RRR((R Rs    (t__name__t __module__trfc822tMessageR RR(((R R s RcBs\tZd„Zd„Zdd„Zdd„Zdd„Zd„Zdd „Z d „Z RS( NcCs+||_||_||_|i|_dS(N(RRRRtpos(RRRR((R R (s   cCs‘|i|ijodSn|i|i}|djp|djp ||jo |}n|ii|iƒ||ƒ}|ii ƒ|_|S(Nti( RRRt remainingtlengthRRRt read_functiontdataR(RR R!R"R((R t_read/s'  cCs|i||iiƒS(N(RR#R Rtread(RR ((R R$:scCs|i||iiƒS(N(RR#R Rtreadline(RR ((R R%=siÿÿÿÿcCsjg}x]|iƒ}|pPn|i|ƒ|djo&|t|ƒ}|djoPqaq q W|S(Nii(tlinesRR%tlinetappendtsizehinttlen(RR)R&R'((R t readlines@s    cCs|i|iS(N(RRR(R((R RMsicCsg|djo|i||_nC|djo|i||_n"|djo|i||_ndS(Niii(twhenceRRRR(RRR,((R RPs    cCs |`dS(N(RR(R((R tcloseXs( RRR R#RR$R%R+RRR-(((R R&s     cBs>tZd„Zd„ZdZdZd„Zd„ZeZ RS(NcCstxm|iiƒ}|iiƒ}|p t‚n|d djo(|i|ƒo|ii|ƒdSqqWdS(NiisFrom ( RRRRR%R'Rt_isrealfromlineR(RR'R((R R_s !cCs|iiƒxk|iiƒ}|iiƒ}|pdSn|d djo(|i|ƒo|ii|ƒdSqqWdS(NiisFrom (RRR%RRR'R.R(RR'R((R Ris !sXFrom \s*[^\s]+\s+\w\w\w\s+\w\w\w\s+\d?\d\s+\d?\d:\d\d(:\d\d)?(\s+[^\s]+)?\s+\d\d\d\d\s*$cCs<|ip"dk}|i|iƒ|_n|ii|ƒS(N(Rt_regexptretcompilet_fromlinepatterntmatchR'(RR'R0((R t_strict_isrealfromline‘s  cCstS(N(tTrue(RR'((R t_portable_isrealfromline—s( RRRRR2RR/R4R6R.(((R R]s $  cBstZeiZRS(N(RRRR6R.(((R RscBstZd„Zd„ZRS(NcCsEx>|iiƒ}|p t‚n|d djodSqqWdS(Niis (RRR%R'R(RR'((R R£s cCs^xW|iiƒ}|iiƒ}|pdSn|djo|ii|ƒdSqqWdS(Nis (RRRRR%R'R(RR'R((R R«s (RRRR(((R R¡s cBs)tZeid„Zd„Zd„ZRS(NcCsŠdk}|idƒ}||_ti|iƒ}t|i |ƒ}t t |ƒ}|i ƒt t |ƒ|_|iiƒ||_dS(Ns ^[1-9][0-9]*$(R0R1tpattdirnameRtostlistdirtlisttfilterR3tmaptlongtsorttstrtboxestreverseR (RR8R R7R;R0((R R ¸s    cCst|idƒS(N(R RRR(R((R RÈscCs{|ipdSn|iiƒ}ttii|i |ƒƒ}|i |ƒ}y ||_ Wnttfj onX|S(N(RRARtpoptfntopenR9tpathtjoinR8RR tmsgt _mh_msgnotAttributeErrort TypeError(RRRHRD((R RËs  (RRRRR RR(((R R¶s cBs)tZeid„Zd„Zd„ZRS(NcCsù||_||_tii|idƒ}g}ti|ƒD]1}|ddjo|tii||ƒq>q>~}tii|idƒ}|g}ti|ƒD]1}|ddjo|tii||ƒq§q§~7}|i ƒ||_ dS(Ntnewit.tcur( R8RR R9RFRGtnewdirt_[1]R:tfRAtcurdirRB(RR8R RQRPRORARR((R R Ûs  NR cCst|idƒS(N(R RRR(R((R RëscCs:|ipdSn|iiƒ}t|ƒ}|i|ƒS(N(RRARRCRDRERR (RRRD((R Rîs   (RRRRR RR(((R RØs cBstZd„Zd„ZRS(NcCsAx:|iiƒ}|p t‚n|djodSqqWdS(Nis *** EOOH *** (RRR%R'R(RR'((R Røs  cCskxd|iiƒ}|iiƒ}|pdSn|djp |djo|ii|ƒdSqqWdS(Nis s(RRRRR%R'R(RR'R((R Rs(RRRR(((R Rös c Cs‡dk}|id}|p@xGdD](}|tijoti|} Pq$q$WdGHdSn |d} | d djotid d | d} nAd | jo3tiid | ƒod | } qÕd | } ntii | ƒoBtii tii | dƒƒot | ƒ}qEt | ƒ}nt| dƒ}t|ƒ}g} xP|iƒ}|djoPn| i|ƒt|ƒdjo d|_qNqNWt|ƒdjoNt|dƒ}d|GH| |d}|iƒ|ii|iiƒƒn…dG| GdGt| ƒGdGHxf| D]^}|idƒpd}|idƒpd}|idƒpd} d|| d|fGHq!WdS(NitMAILDIRtMAILtLOGNAMEtUSERs-$MAIL, $LOGNAME nor $USER set -- who are you?it+tHOMEs/Mail/t/s /var/mail/s /usr/mail/RNtrsMessage %d body:tMailboxthass messages:tfromRtsubjecttdates-%20.20s %20.20s %-30.30si(RSRTRURV(!tsystargvtargstkeyR9tenvirontmboxRFtisfiletisdirRGRtmbRRERRtmsgsRRHRR(R*tinttnumt rewindbodytstdouttwriteR$t getheaderRQtstd( RRQRhRbR`RpRkRcRHRiReRq((R t_test sZ      "      t__main__(t__doc__RR9t__all__RRRRRRRRRrR( RRRuRRRrRRRRRR9((R t?s  7@" 5