x [0+8+FQ(+4)[1 0FO10F"G+Q1' +FQ()+4U1 FQ1"L0' ,Q1:M(Q1+4(]1]0)) ]M<o!y$a?9w8R-\Sn2jC+N51}'GTQ@%anj ^%#5gU"+k AZ _ n-{ ('#&;%S& i%&'M%%d%s%&;&3&I&I0&E=%O%EU&1%1%6%@ &' & 5&a '&u 4&k & L% Y%J % o%T {&W %, #%; $&S _%3 u% ( '+ &N % $^ 1$ #'= ]' w&l H$J R$ Y+# Filter Abort# Filter After# Filter AND# Filter Any# Filter Backward# Filter Before# Filter CC# Filter Dated-After# Filter Dated-Before# Filter Down# Filter Edit# Filter End# Filter Exit# Filter Forward# Filter From# Filter Header# Filter Kill# Filter Labeled# Filter Matches# Filter No# Filter NOT# Filter OR# Filter Rename# Filter Restart# Filter Revert# Filter Some# Filter Subject# Filter Text# Filter To# Filter To/CC# Filter Up# Filter Whole& Continue # Filter Matches& Edit Filter& Filter Any& Prepare Window 2 Insertion& Push Two Windows& Really Edit Filter& Setup Filter Display& Setup Filter Menu& Setup ZMENU LibraryEdit Filter^R Filter c-H^R Filter Select^R Filter Space~DIRECTORY~~DOC~ # Filter Abort~DOC~ # Filter After~DOC~ # Filter AND~DOC~ # Filter Any~DOC~ # Filter Backward~DOC~ # Filter Before~DOC~ # Filter CC~DOC~ # Filter Dated-After~DOC~ # Filter Dated-Before~DOC~ # Filter Down~DOC~ # Filter Edit~DOC~ # Filter End~DOC~ # Filter Exit~DOC~ # Filter Forward~DOC~ # Filter From~DOC~ # Filter Header~DOC~ # Filter Kill~DOC~ # Filter Labeled~DOC~ # Filter Matches~DOC~ # Filter No~DOC~ # Filter NOT~DOC~ # Filter OR~DOC~ # Filter Rename~DOC~ # Filter Restart~DOC~ # Filter Revert~DOC~ # Filter Some~DOC~ # Filter Subject~DOC~ # Filter Text~DOC~ # Filter To~DOC~ # Filter To/CC~DOC~ # Filter Up~DOC~ # Filter Whole~DOC~ & Continue # Filter Matches~DOC~ & Edit Filter~DOC~ & Filter Any~DOC~ & Prepare Window 2 Insertion~DOC~ & Push Two Windows~DOC~ & Really Edit Filter~DOC~ & Setup Filter Display~DOC~ & Setup Filter Menu~DOC~ & Setup ZMENU Library~DOC~ Edit Filter~DOC~ ^R Filter c-H~DOC~ ^R Filter Select~DOC~ ^R Filter Space~DOC~ ~Filename~~Filename~~INVERT~fs%tofci"n 1,m(m.m& Get Lib)EMOUSE"e m(m.mLoad Library)EMOUSE'' m.vMouse Select Hook m.vWindow 1 Refresh m.vWindow 1 Size m.vWindow 2 Size m.vWindow 1 Pointer m.vWindow 2 Pointer m.vWindow 1 Window m.vWindow 2 Window m.vWindow 1 Buffer m.vWindow 2 Buffer:i*Edit Filter (m.m& Edit Filter,:m(m.m& Filter Call) :i**Filter-Menu*f(( )m(m.mSelect Buffer) z"e i* Boolean relations for specs... AND Begin a conjunction. OR Begin a disjunction. End a conjunction or disjunction. NOT Negate the next condition. * Search for a message with a given string in... From field To/CC field Subject field Whole message Header Text Any arbitrary field (prompted for) * Other message characteristics Dated-After a given date Dated-Before a given date Labeled with some keyword No labels on message Matches some other filter After a given date in any header field (prompted for) Before a given date in any header field (prompted for) Some given field is present in message (prompted for) * Movement Commands Forward sexp Backward sexp Up sexp Down sexp Kill sexp * Code Window Options... Edit text in other window. Revert text in other window to its initial state. * Exit Options... Rename Continue editing this, but call it something else. Restart Prompt for another filter name and edit that instead. Abort Ignore any changes to this filter and just exit. Exit Update filter and exit. j0fsmodified 1fsreadonly' )1f[noquit m(m.m^R Other Window) @fn|@vm(m.m^R Other Window)| 0fsnoquit :1,f String: [0 fq0"l0' mP 0,1a-)"n -@f  k ."g0,0a-)"ei '  ,0a- "e@mI' "#i ''' i(W "!'! .(g0)j fq0<1af"!'!:"li'c> i")!'! @f)li @mI 0:i*SEARCHf:m(m.m& Filter Any)3,m(m.m& Read Babyl Label)Label:  fqL:"g:i*Cfsechodisw0' :i*LABEL fm(m.m& Filter Any)L:i*Filter to match (m.m& Continue # Filter Matches,:m(m.m& Filter Call):i*FILTER-CALL fm(m.m& Filter Any)FnmP 0,1a-)"n -@f  k ."g0,0a-)"ei '  ,0a- "e@mI' "#i ''' i(NOT (LABEL)) @f)li @mI 0:i*SEARCH-HEADERf:m(m.m& Filter Any):i*SEARCH-TEXTf:m(m.m& Filter Any):i*SEARCH-FIELD FROMf:m(m.m& Filter Any)n1,f String:  m(m.m# Filter OR) m(m.m# Filter To)S m(m.m# Filter CC)S m(m.m# Filter End):i*SEARCH-FIELD TOf:m(m.m& Filter Any):i*SEARCH-FIELD CCf:m(m.m& Filter Any)1,f String:  m(m.m# Filter OR) :i*SEARCH-FIELD SUBJECT m(m.m& Filter Any)S :i*SEARCH-FIELD RE m(m.m& Filter Any)S m(m.m# Filter End) 01,f Field to scan: :fc[W :iWSEARCH-FIELD W f:m(m.m& Filter Any):i*Date,:m(m.m# Filter Before):i*Date,:m(m.m# Filter After)ff&2"n[F' "#1,f Field (or Return for "Date"): !''![F' fqF"e:i*DATEuF' 1,f Date (or Return for now):  qF:fcuF:iWPRECEDES F m(m.m& Filter Any)Dff&2"n[F' "#1,f Field (or Return for "Date"): !''![F' fqF"e:i*DATEuF' 1,f Date (or Return for now):  qF:fcuF:iWFOLLOWS F m(m.m& Filter Any)D1,f Field: :fc[F fqF:"gfg0' mP 0,1a-)"n -@f  k ."g0,0a-)"ei '  ,0a- "e@mI' "#i ''' i(SEARCH-FIELD F) @f)li @mI 0mPi(AND i @mI 0 mPi(OR i @mI 0 mP-@f  ki) mI 0 mPi(NOT )r 0 mP@m(m.m^R Kill Sexp)mP@m(m.m^R Down List)mP@m(m.m^R Forward Sexp)mP@m(m.m^R Backward Sexp)mP1:"nfg'01,f Filter Name (F): [0 fq0"gq0uFqFuFilter Default :i*(Filter Menu) F Space selects, c-m-C exits, c-] aborts u..J' 0m(m.m^R Other Window) 0fo..QBabyl Filter F[0 hkfq0"gg0'0fsmodifiedw@v m(m.m^R Other Window) 0@m(m.m# Filter Rename) @m(m.m# Filter Revert)qS[  m(m.m^R Other Window) :i*(Filter Edit) F c-m-C exits (Extended Search Chars)[..J 1:<> m(m.m^R Other Window) 0f;Filter-Abortf;Filter-Exit:i**Filter-Display*f(( )m(m.mSelect Buffer) hk )qBuffer Name[0 [Previous Buffer m(m.m& Setup Filter Menu)[T m(m.m& Setup Filter Display)[B q0m(m.mSelect Buffer) qT,qBm(m.m& Push Two Windows) m(m.m& Really Edit Filter) qBuffer Name[0 f~0T"nf@:mS' f:m(m.m^R Filter Select) nqBuffer Name[0 f~0T"n0' .[0fnq0j 0l."efg0' @f  l1a:"afg0' @flx*[0 f:@m(m.m# Filter 0):i*Control-H: m.ifi[0 q0-?"e ftControl-H is an extended search character escape... Control-O is extended search OR, used to OR strings. Control-N is extended search NOT, negates next char. Control-B is extended search Break, matches delimiters. Control-X is extended search Any, matches any char. Control-S is extended search Syntax, matches a char whose Lisp syntax is next char. Eg, c-S ( matches things with paren syntax. 0' q0f"lfg0'"#.,(q0i.)'[1 q [S m.m^R Indent for Lisp m.m& Prepare Window 2 Insertion fsosteco"e:i*C'"#:i*Z'[C 0fo..QBabyl Filter Fu1 q1"nm(m.m^R Other Window) g1@v0fsmodified m(m.m^R Other Window)' :i*(Filter Menu) F Space selects, c-m-C exits, c-] aborts [..J qTm(m.mSelect Buffer) m.m^R Filter Space[ m.m^R Filter Select[Mouse Select Hook m.m^R Filter c-H[.H m.m^R Filter c-H[H !Retry! 1f qBuffer Name[0 f~0T"nf~0B"n !"!:i*CYou can't exit Edit Filter from here. Try again or type c-] to abort.fsechodisplay 0fsechoactive oRetry'' qBm(m.mSelect Buffer) fsmodified"n 0m.vAll Babyl Filter Names hx*m.vBabyl Filter F :i*CFilter "F" updated.!''!fsechodisplay' "#> :i*CNo change to filter "F".!''!fsechodisplay' 0fsechoactive 0fsrgetty"e !"!:i*TTY Doesn't work on a printing terminal' @fn|fsrefreshf"n[0m(q0(]0))' qWindow 2 Size"n m(m.m^R Other Window) @V m(m.m^R Other Window) @V' | qBuffer Name[0 @fn|m(m.mSelect Buffer)0| m(m.mSelect Buffer) .u0 m(m.mSelect Buffer) [Window 1 Buffer [Window 2 Buffer 0f[Refresh 0f[TopLine 0f[Lines f[Window 0[Window 1 Refresh fsheight-(fsecholines)/2( )[Window 1 Size 0[Window 2 Size .[Window 1 Pointer q0[Window 2 Pointer [Window 1 Window [Window 2 Window 1,@m(m.m^R Two Windows)ZMENUFilter editor (a la ZMail) for BabylS Setup for using the Filter MenuS Create/edit a filter using a menu& ... & Set up to hack other window& qW should have thing to filter & ... & ... & ... & ... & ... & ... & ... & ... & ...& ... & ... & ... & ... & ... & ... & ... S ...S ...& ... & ... & ... & ... & ... & ... & ...& ...& ... & ... & ... & ... & ... & ...& ... & ... & Create/Edit a filter. Filter name is numarg ^R This goes on Space for Edit Filter's menu^R This goes on Mouse-Left for Edit Filter's menu^R This does dispatchEdit a filter. Strict teco entry conventions... qF: Filter name Must be in two window mode qT: Name of buffer in top window qB: Name of buffer in bottom window & Set up for two-window hacking.& Setup ZMENU Library Edit Filter & Setup Filter Menu & Prepare Window 2 Insertion & Filter Any # Filter Whole # Filter Labeled # Filter Matches & Continue # Filter Matches # Filter No # Filter Header # Filter Text # Filter From # Filter To/CC # Filter To # Filter CC # Filter Subject # Filter Any # Filter Dated-Before # Filter Dated-After # Filter Before # Filter After # Filter Some # Filter AND # Filter OR # Filter End # Filter NOT # Filter Kill # Filter Down # Filter Forward # Filter Backward # Filter Up # Filter Rename # Filter Revert # Filter Restart # Filter Edit # Filter Abort # Filter Exit & Setup Filter Display & Edit Filter ^R Filter Space ^R Filter Select ^R Filter c-H & Really Edit Filter & Push Two Windows +8+fq(+4)[20[3 <%3,-q2f2u3q3&1@;q3"l0'> f[BBindq3-1*5,q3*5g2q:..o(0)+q2