# PaCkAgE DaTaStReAm NTLMprocmail 1 662 # end of header 0707010001e70c000081a4000000000000000100000001438ad61300000085000000880000000100000000000000000000001500000000NTLMprocmail/pkginfoPKG=NTLMprocmail ARCH=sparc NAME=procmail mail processing VERSION=3.22 CATEGORY=application PSTAMP=olhado20051128110403 CLASSES=none 0707010001e70b000081a4000000000000000100000001438ad613000002fa000000880000000100000000000000000000001400000000NTLMprocmail/pkgmap: 1 662 1 f none /usr/bin/formail 0755 root mail 45888 9890 1133171429 1 f none /usr/bin/lockfile 2755 root mail 27404 50026 1133171436 1 f none /usr/bin/mailstat 0755 root mail 5859 31064 1133171469 1 f none /usr/bin/procmail 6755 root mail 126676 48754 1133171432 1 f none /usr/share/man/man1/formail.1 0444 root bin 15334 20970 1133171477 1 f none /usr/share/man/man1/lockfile.1 0444 root bin 6891 3493 1133171477 1 f none /usr/share/man/man1/procmail.1 0444 root bin 27914 16108 1133171477 1 f none /usr/share/man/man5/procmailex.5 0444 root bin 16858 4837 1133171481 1 f none /usr/share/man/man5/procmailrc.5 0444 root bin 31421 49045 1133171481 1 f none /usr/share/man/man5/procmailsc.5 0444 root bin 8074 20612 1133171481 1 i pkginfo 133 10711 1133172243 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000b00000000TRAILER!!!0707010001e70c000081a4000000000000000100000001438ad61300000085000000880000000100000000000000000000000800000000pkginfoPKG=NTLMprocmail ARCH=sparc NAME=procmail mail processing VERSION=3.22 CATEGORY=application PSTAMP=olhado20051128110403 CLASSES=none 0707010001e70b000081a4000000000000000100000001438ad613000002fa000000880000000100000000000000000000000700000000pkgmap: 1 662 1 f none /usr/bin/formail 0755 root mail 45888 9890 1133171429 1 f none /usr/bin/lockfile 2755 root mail 27404 50026 1133171436 1 f none /usr/bin/mailstat 0755 root mail 5859 31064 1133171469 1 f none /usr/bin/procmail 6755 root mail 126676 48754 1133171432 1 f none /usr/share/man/man1/formail.1 0444 root bin 15334 20970 1133171477 1 f none /usr/share/man/man1/lockfile.1 0444 root bin 6891 3493 1133171477 1 f none /usr/share/man/man1/procmail.1 0444 root bin 27914 16108 1133171477 1 f none /usr/share/man/man5/procmailex.5 0444 root bin 16858 4837 1133171481 1 f none /usr/share/man/man5/procmailrc.5 0444 root bin 31421 49045 1133171481 1 f none /usr/share/man/man5/procmailsc.5 0444 root bin 8074 20612 1133171481 1 i pkginfo 133 10711 1133172243 070701000289c6000041ed000000000000000100000003438ad61300000000000000880000000100000000000000000000000500000000root0707010002c404000041ed000000000000000100000004438ad61300000000000000880000000100000000000000000000000900000000root/usr07070100002d34000041ed000000000000000100000002438ad61300000000000000880000000100000000000000000000000d00000000root/usr/bin07070100002d36000081ed000000000000000600000001438ad2e50000b340000000880000000100000000000000000000001500000000root/usr/bin/formailELF44 (44xxxxzz/usr/lib/ld.so.1  "$%&'()*,-./14579:;=@ACDFGHJKLNOQRSTUYZ[]_`acdgijklnoqstuwxy{|}~ !#+02368<>?BEIMPVWX\^befhmprvzxL!x;y@~0HP\ Qqo Za  a|gq px|a  ]l z{`zd|hzl_@ J<@ T{|@!ytz z$" z4yD&zp+W 0|7z"O`QH4 g{p  wUx ]D$ W y|MX `t yz(x zzM0( {!\DY$ X ]h( y\ Xh4 )yh1KP 7`  =zFa SyY|]pe{mO@ xzLza  y,|lL$ V( zPz@Rx Ux< y ]< yJ| y_< X Hyzd$qd  ,`l 5y;tCLq\ RyXy_ }z|~8 zM$ ||@zXNd hy~4V,d G0 |y^H< |H PH ~8 !z%y8.yP6x=]( DIL JG0 Ry_GLOBAL_OFFSET_TABLE_oldstdout_PROCEDURE_LINKAGE_TABLE_exitbuflastreadheadcouldntwultstrchildformailnxheaderinitfileno_finicloseminefork__environ_lockzapfreerdheaderquietreallocbuffilledtreallocskpspacechildlimit__cg92_used_iobstrcpymemcpyunamemainmemchrstrchrwaitelognrskip_get_exit_frame_monitor__fsr_init_valueaddbuf_environ_startloadbufnlogtputssnfcloseretvaladdfieldultoandupstrcspn_etextmallocwaitpidclear_uheadlogsummaryenvironlexitcode__xargvstartprogrhashlogqnlstrncasecmpltputssnstrncmpfindftfree_DYNAMIC_lib_versionftellbufUheader___Argvflushfield__filbufpipe_end_initstrlenffilenocleanheadergetlinefdopenerroutcloseskipwordsloadsaved_exitopensinkfgetcwaitforstrtoltmalloclputcs__xargcgetpidexecvsfolderhostnamefopenuheaderTotallenbinshfseekatexit__1cG__CrunMdo_exit_code6F_v_fputs__ctypetimedelfieldXheader__iobexecvpconcatenatelenfilenostrpbrkmystdoutloadcharbreakfieldnrtotalfwritesstrstr_edatashexecdispfield_ctypectime__flsbufmemmovebuflennofilddetabeqFrom_signallibc.so.1SUNW_0.7SUNWprivate_1.1libm.so.1libsocket.so.1libnsl.so.1libgen.so.1libdl.so.1libc.so.1Y =(c Nql|i|o~8kyhyy Wy,Ny8yD!yPy\>yh@ytysyYyEygyxy[ycyy_y1y-zlz~zz(2z4 z@TzLJzXpzd`zp"z|jzKz5zzRz4zzzz% @"`HD"`D"c, @' $+`-` `?-)#- =--% # @XX@X!   @X@@@X@X㿐;``4\ad@  @X@}` \ `"@ ᐸ @u  H \+`%@ @X@g44 $` 74 9 `&`.' P-4@X 9㿠  -@ /!\!@ڐ  -\`/`@ђ`- \a@ &@X >`O` J * @Xr` \!@ > / @ @J :&$ +?"@$ ` @&  @XD@X@㿠9 d| d %@ )  7Z &@ 7Z⎒ w  `@  M ! G@      "@   W`t@ | 3  3' .`p@ o! ``"$&`` @-`p` ``%````@ &` @ ` 㿠;`d`  @K?`  K? $`@?$L $`L $$`7ZȰdܬd`@W %`%$  `~ƒ@W  `(  ~Ò@Wx    㿠;`d`3/Z`@Wh  @ [9 d &  㿠9\` `  ``` @WI% '`& d@      .`@`@.@` @@W(y̨ @W2&N` @V2 @V"@V" @V@V2 @VR"@l`@V۔-@VԒ @ !`@ `@``@Vɒ@m@V " @V -@ ?#@R@#$@#`#` @R'&  &-@R %6"&K` ?&$`@R 1/& L%@R @ qx` #x`䀤#``` x`t25Z  | "p `25Zp   |`"5Z 3Zb'3^@ 7`! @ 6y5Z9#X  x@  1 `+ 4 %` 0 @ %%%  '?|@ '&@  ''@ '@ p "'  |`-@i| ' ' '@@ e @@@v d-/d'֦` @Q  :," |`d`&@Q  @ܐ @, d $$`d %@& @Q " `  "`"`! t@y) p@vd `d  'd@  ##,%dd/(``#0#̆ #Ą #4 ##4'M :-H` I @ $ @ Ԑ $'`@Q0%*l  $@ Ґ;l @J' `@ @Q & %`$'!,&   @ %@P*@ \'܀ %@Td     %`'-@P  '*`l@ M ' l'@P l) d d ?@)   "     $@ H ?@ @Ɛ `  C@P@-'%@@ @z1 0 @ `4@'(@Pr '(@ @q(@c`@P?@r  @  %P`)@%`"@@T 8-P@M H@?`P  ?@S '@AH@3 _d [`dd@ Q@"  `C@>@9@4@P1 'А'd"d@ ` '@O@@ @& +`` @h)@ X @ @P @O'@@-d%x ' @#Юd >#Ԫ  <#ج .#@Ab` X   ?#@O  I?ʐ#@O B@O͐ # X@ N@O#@@ " '@O,  *@ [* @ V`*  @ R*  @ NЦ*  @O@Op Ԉ * * ! @k@ &@`+`Fd@ߐ`  )  d d` @@Œ d3@q '% #`*@\44% 4  `` `-`! P N N/@Ē44" 4 +   # - %`P1 `l @O @@`d@ @@@`"p@p` `| 2p@ p '%| \@@l   #`l|  ``%` .` %` ? 2 `    !"0#܀`|/l+%# `l@['l% '$lb0ܪ  / -# "4P       ` #     * %`% `% ߀ # $b0 44` #` )"4 # `"`($`P-% `#` #0`h `@/&^@ɐ$ @@Ð^@H`l )"07x+#`#b0###`l 2|@|  'd+`d` @'\ ```.2@@n"&\@\``"h@  '^@NP @J ` 2hm@i f`c``^BY  @g   @Z2  ;@[ b4@M?P2t?#\`h /\@oo^@ Tt)` '@+``1& ) x @J | `? K` @T#@m`6h 3d '  ! d   '@@Mb  @%@'  @ @ǐ`$ @Ғ d#` `|/ `|$`@d##`|` @%  ހ@ \` @M  @#?   2$ @?  E$  `"\     J5Z@O @@L @L @L @L @Lߐ @Lې4@L m %4@L ~+@Lː׀? @L @L `4@Lv 4#@L`;㿠;Zb| @Lt " 㿠F79O :  O 7` 4'2  *` O "`O ` L`` "`L` "` L`:$@` ' 㿠  @L5   @L1  %@L.  @L+  @LI  2@,/\\"  "    ```%```9^@L,@@ h`@ E@Kρ㿠;^@K`|  9^ /`@KܐJ ` " `   J ` ` " 㿘@K  `%?;?c? @K ` ?>` 99 ' \?㿠;`t@'p@     ` ""  @   @Kk2  @ &`@] & &     㿠;`d 9`d  H:,H`  `J $J?"  ` "# K   # K "# K ` "#    '@&@@K  %' %' `` ̆  #```㿠 ` `@ & " 9  d % %@Jܔ㿠  & @ 㿠  Y% O `  2/``&㿠;``9 |?`*1    " ` "` '`O`  2`*'`@.'@%44 $` 54 7 `&`-&P9 |  @3+b4@Ja 7㿠 &   @ `㿠 `   㿠@;`;`l  %) d/ 0>0@n` >70` 0`  @^  @ 㿠;7`;9`l  d&l㿠 N `) `"& `(   `\"    㿠 N   < \  N  " `.`"`  `` "`"` "`) "`(}`," ``>`; `. `:" z`o `<"``s``@ `[" ]j` ",`` N  ,`` \ N `N  ,``N  N `.`"`  `S` "6@`1` "0:`Ѐ`(&`,". 2``>`; `.I`:"E %``<" ``,`@;`[" ]`1 İ >  ".  )` & @ N `\2 ,``  `  >,`` "`@I   `   `  !  @  /    (    @   ``  @       ϐ    㿠@F̐;\ga@FY G㿠@F;\Wa@FI G@F㺘;``9@F@F<А 3&`5^79@F@  ?  A 4 G  >?  "? *``2   ?*`   333`̀S@0 2`"   *  *  ! ̀R@ @3 3  (`"@   0) ! 㿠㿠Return-Path:Received:Reply-To:From:Sender:Resent-Reply-To:Resent-From:Resent-Sender:Date:Resent-Date:To:Resent-To:Cc:Resent-Cc:Bcc:Resent-Bcc:Message-ID:Resent-Message-ID:In-Reply-To:References:Keywords:Subject:Comments:Encrypted:Notice-Requested-Upon-Delivery-To:Final-Recipient:Remote-MTA:Diagnostic-Code:Last-Attempt-Date:Errors-To:Return-Receipt-To:Precedence:Full-Name:Posted-Date:Received-Date:Message:Text:Via:Apparently-To:Apparently-Resent-To:Delivered-To:Mailing-List:Autoforwarded:Content-Identifier:Conversion:Conversion-With-Loss:Delivery-Date:Discarded-X400-IPMS-Extensions:Discarded-X400-MTS-Extensions:DL-Expansion-History:Deferred-Delivery:Expiry-Date:Importance:Incomplete-Copy:Language:Latest-Delivery-Time:Message-Type:Obsoletes:Supersedes:Original-Encoded-Information-Types:Originator-Return-Address:Priority:Reply-By:Requested-Delivery-Method:Sensitivity:X400-Content-Type:X400-MTS-Identifier:X400-Originator:X400-Received:X400-Recipients:X400-Trace:Alternate-Recipient:Prevent-Nondelivery-Report:Generate-Delivery-Report:Disclose-Recipients:Content-Return:Auto-Submitted:PP-Warning:Fcc:Resent:Forwarded:Replied:Article:Path:Summary:Organisation:Organization:Newsgroups:Followup-To:Approved:Lines:Expires:Control:Distribution:Xref:Originator:NNTP-Posting-Host:Submitted-by:Posted-To:Mail-Copies-To:Title:Article-I.D.:Posted:Relay-Version:Sent-By:Content-Type:Encoding:Content-MD5:MIME-Version:Content-Transfer-Encoding:Content-ID:Content-Description:Content-Disposition:Accept:Public:Allow:Last-Modified:URI:Version:Derived-From:Content-Language:Cost:Server:WWW-Link:Acknowledge-To:Transport-Options:Default-Options:Content-Length:Reference:Auto-Forwarded-From:Auto-Forward-Count:End-of-Header:Original-From:Original-To:Original-Cc:Original-Auto-Forwarded-From:Original-Date:Not-Delivered-To:Report-Version:Original-Received:Status:Mail-from:Return-Receipt-Requested:MR-Received:App-Message-ID:Hop-count:From-warning:Request-Remailing-To:Anon-Send-To:Latent-Time:Cutmarks:Post-To:Anon-Post-To:Encrypt-Key:Read-Receipt-To:Fake-Sender:Envelope-To:From Article X-Old-X-Loop:Resent-<>foo@bar Re:Usage: formail [-vbczfrktqY] [-D nnn idcache] [-p prefix] [-l folder] [-xXaAiIuU field] [-R ofield nfield] Or: formail [+nnn] [-nnn] [-bczfrktedqBY] [-D nnn idcache] [-p prefix] [-n [nnn]] [-m nnn] [-l folder] [-xXaAiIuU field] [-R ofield nfield] -s [prg [arg ...]] a a a aaab bb(b. b;b? bJbN bYb^ bj bvb b b bb b b"bb c cc. c9cL cX cc cpcccccc c ccc ddd(dHdgd}d d dd dd d d d#e#e> eH eRem ezeeeee eeff*f?fOf_ fkfpfx fffff f f f f ffff g g gg/ g= gHgXg_ gmgugg g g g gg gghhh!h(h7h<hE hShehkhs h}hhhh hhhii i i-iKiZili|ii ii ii i ij j j# j-j6 jD jQjb jo a aaa b bfc9c. a j|/bin/sh Folder: Couldn't write to stdoutformail remote from forwarded by Out of memory > > @!/.UUCPDuplicate key found: -v display the version number and exit -b don't escape bogus mailbox headers -Y Berkeley format mailbox, disregard Content-Length: -c concatenate continued header-fields -z zap whitespace and empty header-fields -f force formail to pass along any non-mailbox format -r generate an auto-reply header, preserve fields with -i -k on auto-reply keep the body, prevent escaping with -b -t reply to the header sender instead of the envelope sender -l folder generate a procmail-compatible log summary -D nnn idcache detect duplicates with an idcache of length nnn -s prg arg split the mail, startup prg for every message +nnn skip the first nnn -nnn output at most nnn messages -n [nnn] don't serialise splits -e empty lines are optional -d accept digest format -B expect BABYL rmail format -q be quiet -p prefix quotation prefix -m nnn min fields threshold (default 2) for start of message -x field extract contents -X field extract fully -a field add if not present -A field add in any case -i field rename and insert -I field delete and insert -u field first unique -U field last unique -R oldfield newfield rename r+bw+bCouldn't open v3.22 2001/09/10 Copyright (c) 1990-2001, Stephen R. van den Berg Copyright (c) 1997-2001, Philip A. Guenther Submit questions/answers to the procmail-related mailinglist by sending to: And of course, subscription and information requests for this list to: Invalid field-name: field exceeds actual length by bytes , continuing... Failed to execute Can't fork aFile table full : "" /dev/nullaz00<0H0T0`0l0x00000000000000 0,080D0P0\0h0t0000000000000~0{| a a $ oQ~oHox ooxz$Date: 2001/08/04 07:07:43 $bb bj b(FILENO=000Stephen R. van den Berg>cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMI@(#)ctype.h 1.33 99/08/10 SMI@(#)ctype_iso.h 1.1 99/08/09 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12ld: Software Generation Utilities - Solaris Link Editors: 5.9-1.380.interp.hash.dynsym.dynstr.SUNW_version.rela.data.rela.bss.rela.plt.text.init.fini.rodata.rodata1.got.plt.dynamic.data.data1.bss.comment.shstrtab < $$`" oHH0-Bxx  8B BB LM(Raa Xaa ^aafqqoxxtxx  yzz{{|||||2x )07070100002d37000081ed000000000000000600000001438ad2ec00006b0c000000880000000100000000000000000000001600000000root/usr/bin/lockfileELF 4g4 (44,,,, ../usr/lib/ld.so.1ec  !"#$&'()-.013468:;<=>?BCDGHJKMNPQRSWYZ\^`b %*+,/2579@AEFILOTUVX[]_a4-Dt /!@( #.)."A4F*t T.]"p c-j4r.z.,.4.,.*l -<.h4-` $t 0-l ' -T.%-, 1,P 8  =  D+ Q-X+@ a-h. n+| y-x4%d ($ -`..D$tl +H   4.,4  .0,(  --( !/0.94?.PE-L,L Y-0_+\ l.tq!hT z#8< +< + / -..\*| ! -H, '\    x --$D  +,@  1-$6   =( E&d M.8_edatasignalmainenvironuniqueuname_get_exit_frame_monitor_endauth_filledidgetpwuidhlinkstrtol__xargvgetegidfstat_GLOBAL_OFFSET_TABLE_setgiduid__fsr_init_valuesleepchownauth_freeidmallocstrlcpythepidatexitwriteerrultoan__cg92_usedstrlenauth_finduserstatstrpbrkstrcpynlogdirsepelogssleepauth_whatuidgetuidauth_endunlinklstatauth_shellwritesgidultstrauth_copyidfreelinkopenhostnamelastdirseptfree__xargcgetpwnam_initmemset___Argv_PROCEDURE_LINKAGE_TABLE_rwritegeteuidsetuidauth_newid__environ_lock_DYNAMICerrnoclosegetpid_lib_version_exitauth_homedirtimemyrenamesstrstrauth_whatgidauth_username_environ__1cG__CrunMdo_exit_code6F_v_getenvendpwentniceauth_mailboxnamerlinkmemcpy_etextauth_finduidropencstrgetgidstrcatrclose_finiexit_starttmallocqsignalstrchrlibc.so.1SUNW_1.19SUNWprivate_1.1libm.so.1libsocket.so.1libnsl.so.1libgen.so.1libdl.so.1libc.so.1Ty^ Nqh0 O4C--$^-0G-<-HU-T -`1-l-x--E-(--?->- -P-"-[-*-Z... +.,.8b.D3.PD.\R.h.tI...2..8. .:.Q.!. @"`D"`"`, @' $+`-` `?-)#- =--% # @GK@G @   @G@@G@F@F #`@"? @F 5& @F!$ @  x@F&`@@Fݐ㿠@Fڲ @Fف㿠;K`X  #t5#\ ?#x@FŶ &@FŴ #d  #`@F’ @Fd   #h#l!D9#p <@F!@d %@`@l@p@h`\``'K` -`''Mmh !"?OTKl"Ns m[r" Dv%>J` 2 ```'2'`'K@Fd M r"1 l" +&a|@_|L]}@F@@Œ @|U%KSRQ}l @+KL`kJ}e @@F4 &Z'K 2T'K@F( M M 2F'Kༀ`ༀ6>'K`2K@Fc%@] @Zd  d@w X?@'J ެ@Eؐ@Eʐ %"צ G@E K@E RK l u'Kk @#xҤ?'--@E"#tېΐM lǐŐΪ%`@EǪ%`@E@E@E-1#t ~ 6%``| A@ D: >513N=6@Ep @`@Er2wmk`@Eu6 `2 $`f` ID#x@Ee&  @E^ V`  E4#x@E%"  KJ?@EOPC`,97`< *@ 6%`1`T E#x K G#x&#x!`h`|?\ '@?` `@ :@`%`@ l@ p@h\`G`x%``A`xt K"xx`" Ix`I x 3`T GK @Ր`k㿠@D ;'`@D@D͞@D@Dž @D㿠;`Hb`H@0J  J `/" `J :"`J \2 ` J `'  @DN/`"@D=`' `1K '  , \ N``: ``/ `\ .  `$ & `;`. `;` `0.  0. 0'`.  `ٴ@D+ 㾀#`+``  #\@D>$@D:?٬%#d  " #h%```L  _.``@ǒ``h`! Ĵ .@ؔ*  @Ґ _*    ./ .@  -Q%@D``0`K`H, x`$`@Cݐ  N @G%`  x%x%-@CƐ N% ?` %%!?% ` `@CĀ@  @C$`# `\h`@Cd `J̐G``2@Cx@Cr$! x   \ `'%@Ck `@C=``)K Ԑ ` ` 2?㿠;@Q`@C;k&'` &?㾐@C57;x`?@C@C  x @  /<+( 2 1& "?`$ ?x @ & x:?;`䀧 2 ?%&?  `K#` ` ``A@2` >  `   `  !  @  /    (    @   ``  @       ϐ    㺘;`P`9@B@B6 3&`P5K79P@BC P ?  A 4 G  >?  "? *``2   ?*`   333`̀S@0 2`"   *  *  ! ̀R@ @3 3  (`"@   0) !  #`ȁ㿠; '`;Ib@Aڐ  @Aԁ@AҒ7Ȁ@J `J "A`8 J  *  J `@A@A㿠9'  ̐@A @2* А'` '```'`㿠;Ԓ'``̺ '`` `'`㿠 " " 㿠 ` & ` &   $&  @A $``%` % `%`%`  % ` `@A#` @Au㿠 1@A@Ag   @A @A\ ` @@@AQ @@@AJ  @@ @AC  @A? $ `  @@  @A4㿠 ` `2`/` ,* ` #!  `2 㿠 ` @@ & 3K` ;K@@`   @@   ` `  ` `  `㿠;T`;`Ѐ 75Ʋ &@@㿠K`P@@  @@2 㿠㿠/.locklockfile: LOGNAMEUsage: lockfile -v | -nnn | -r nnn | -l nnn | -s nnn | -! | -ml | -mu | file ... .,+%/var/mail/0.00<0H0T0`0l0x00000000000000 0,080D0P0\0h0t0000000000000~x ,4 ,@ 8  ogo o@( oo,.$Date: 2001/08/04 07:12:16 $Stephen R. van den BergUnable to give up special permissionslockfile v3.22 2001/09/10 Copyright (c) 1990-2001, Stephen R. van den Berg Copyright (c) 1997-2001, Philip A. Guenther Submit questions/answers to the procmail-related mailinglist by sending to: And of course, subscription and information requests for this list to: Your system mailbox's lockfile: -v display the version number and exit -nnn wait nnn seconds between locking attempts -r nnn make at most nnn retries before giving up on a lock -l nnn set locktimeout to nnn seconds -s nnn suspend nnn seconds after a locktimeout occurred -! invert the exitcode of lockfile -ml lock your system mail-spool file -mu unlock your system mail-spool file Can't determine your mailbox, who are you? Can't unlock "" again, already dropped my privileges Out of memorySignal receivedForced unlock denied on "Forcing lock on "" SorryTry prayingTruncating "" and retrying lock Filename too long, giving up on "" cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12ld: Software Generation Utilities - Solaris Link Editors: 5.9-1.380.interp.hash.dynsym.dynstr.SUNW_version.rela.data.rela.bss.rela.plt.text.init.fini.rodata.rodata1.got.plt.dynamic.data.data1.bss.comment.shstrtab   0" 8 8o 0-B((  8B44  BB@@ L  R,4,4 X,@,@ ^,L,Lf,,o,,t,, y..//t0T0Tg444429 f07070100002d38000081ed000000000000000600000001438ad30d000016e3000000880000000100000000000000000000001600000000root/usr/bin/mailstat#! /bin/sh : &&O='cd .' || exec /bin/sh "$0" $argv:q # we're in a csh, feed myself to sh $O || exec /bin/sh "$0" "$@" # we're in a buggy zsh ################################################################# # mailstat shows mail-arrival statistics # # # # Parses a procmail-generated $LOGFILE and displays # # a summary about the messages delivered to all folders # # (total size, average size, nr of messages). # # Exit code 0 if mail arrived, 1 if no mail arrived. # # # # For help try, "mailstat -h" # # # # Customise to your heart's content, this file is only # # provided as a guideline. # # # # Created by S.R. van den Berg, The Netherlands # # This file can be freely copied for any use. # ################################################################# #$Id: mailstat,v 1.28 1999/11/16 06:32:54 guenther Exp $ # This shell script expects the following programs to be in the # PATH (paths given here are the standard locations, your mileage # may vary (if the programs can not be found, extend the PATH or # put their absolute pathnames in here): test=test # /bin/test echo=echo # /bin/echo expr=expr # /bin/expr tty=tty # /bin/tty sed=sed # /bin/sed sort=sort # /bin/sort awk=awk # /usr/bin/awk cat=cat # /bin/cat mv=mv # /bin/mv ls=ls # /bin/ls PATH=/bin:/usr/bin SHELL=/bin/sh # just in case export SHELL PATH umask 077 # we don't allow everyone to read the tmpfiles OLDSUFFIX=.old DEVNULL=/dev/null EX_USAGE=64 ######## # (Concatenated) flags parsing in pure, portable, structured (it # would have been more elegant if gotos were permitted) shellscript # language. For added pleasure: a quick demonstration of the shell's # quoting capabilities :-). ######## while $test $# != 0 -a a"$1" != a-- -a \ \( 0 != `$expr "X$1" : X-.` -o $# != 1 \) do if $expr "X$1" : X-. >$DEVNULL # structured-programming spaghetti then flags="$1"; shift else flags=-h # force help page fi while flags=`$expr "X$flags" : 'X.\(.*\)'`; $test ."$flags" != . do case "$flags" in k*) MSkeeplogfile=1;; l*) MSlong=1;; m*) MSmergerror=1;; o*) MSoldlog=1; MSkeeplogfile=1;; t*) MSterse=1;; s*) MSsilent=1;; h*|\?*) $echo 'Usage: mailstat [-klmots] [logfile]' 1>&2 $echo ' -k keep logfile intact' 1>&2 $echo ' -l long display format' 1>&2 $echo ' -m merge any errors into one line' 1>&2 $echo ' -o use the old logfile' 1>&2 $echo ' -t terse display format' 1>&2 $echo ' -s silent in case of no mail' 1>&2 exit $EX_USAGE;; *) $echo 'Usage: mailstat [-klmots] [logfile]' 1>&2; exit $EX_USAGE;; esac done done $test a"$1" = a-- && shift LOGFILE="$1" case "$LOGFILE" in *$OLDSUFFIX) MSkeeplogfile=1; OLDLOGFILE="$LOGFILE";; *) OLDLOGFILE="$LOGFILE$OLDSUFFIX";; esac if test .$MSoldlog = .1 then LOGFILE="$OLDLOGFILE" fi if $test ."$LOGFILE" != .- -a ."$LOGFILE" != . then if $test ! -s "$LOGFILE" then if $test .$MSsilent = . then if $test -f "$LOGFILE" # split up the following nested backquote then # expression, some shells (NET2) choked on it info=`LANG= LC_TIME= $ls -l "$OLDLOGFILE"` $echo No mail arrived since \ `$expr "X$info" : \ '.*[0-9] \(... .[^ ] .....\) [^ ]'` else $echo "Can't find your LOGFILE=$LOGFILE" fi fi exit 1 fi else if $test ."$LOGFILE" != .- && $tty -s then $echo \ "Most people don't type their own logfiles; but, what do I care?" 1>&2 MSterse=1 fi MSkeeplogfile=1; LOGFILE= fi if $test .$MSkeeplogfile = . then $mv "$LOGFILE" "$OLDLOGFILE"; $cat $DEVNULL >>"$LOGFILE" else OLDLOGFILE="$LOGFILE" fi if $test .$MSterse = . then if $test .$MSlong = .1 then $echo "" $echo " Total Average Number Folder" $echo " ----- ------- ------ ------" # We use MStrs here to place the spaces in columns that won't be # converted to tabs by detab when this is checked into CVS MStrs='" ----- ------- ------\n%7d %7d %7d\n",\ gtotal,gtotal/gmessages,gmessages' else $echo "" $echo " Total Number Folder" $echo " ----- ------ ------" MStrs='" ----- ------\n%7d %7d\n",gtotal,gmessages' fi else MStrs='""' fi if $test .$MSlong = .1 then MSlong='"%7d %7d %7d %s\n",total,total/messages,messages,folder' else MSlong='"%7d %7d %s\n",total,messages,folder' fi ######## # And now we descend into the wonderful mix of shell-quoting and # portable awk-programming :-) ######## dq='"' awkscript=" BEGIN { FS=$dq\\t$dq; } { if(folder!=\$1) { if(folder!=$dq$dq) printf($MSlong); gmessages+=messages;gtotal+=total; messages=0;total=0;folder=\$1; } ++messages;total+=\$2; } END { if(folder!=$dq$dq) printf($MSlong); gmessages+=messages;gtotal+=total; printf($MStrs); } " ######## # Only to end in a grand finale with your average sed script ######## if $test .$MSmergerror = . then $sed -e '/^From /d' -e '/^ [Ss][uU][bB][jJ][eE][cC][tT]:/d' \ -e '/^ Folder/s/ */ /' \ -e '/^ Folder/s/\/msg\.[-0-9A-Za-z_][-0-9A-Za-z_]* /\/ /' \ -e '/^ Folder/s/\/new\/[-0-9A-Za-z_][-0-9A-Za-z_.,+:%@]* /\/ /' \ -e '/^ Folder/s/\/[0-9][0-9]* /\/. /' \ -e 's/^ Folder: \(.*\)/\1/' -e t -e 's/ /\\t/g' \ -e 's/^/ ## /' $OLDLOGFILE | $sort | $awk "$awkscript" - else $sed -e '/^From /d' -e '/^ [Ss][uU][bB][jJ][eE][cC][tT]:/d' \ -e '/^ Folder/s/ */ /' \ -e '/^ Folder/s/\/msg\.[-0-9A-Za-z_][-0-9A-Za-z_]* /\/ /' \ -e '/^ Folder/s/\/new\/[-0-9A-Za-z_][-0-9A-Za-z_.,+:%@]* /\/ /' \ -e '/^ Folder/s/\/[0-9][0-9]* /\/. /' \ -e 's/^ Folder: \(.*\)/\1/' -e t \ -e 's/.*/ ## diagnostic messages ##/' $OLDLOGFILE | $sort | \ $awk "$awkscript" - fi ######## # Nifty little script, isn't it? # Now why didn't *you* come up with this truly trivial script? :-) ######## 07070100002d39000081ed000000000000000600000001438ad2e80001eed4000000880000000100000000000000000000001600000000root/usr/bin/procmailELF34d4 (44BBBB.GtGt/usr/lib/ld.so.1gd !#&'(*+,-.012478:;<=?ABCDFHIJLMNOQSUWXYZ]^_aeijklnoqsvwxy|~   !"$%'*+.023569;=?ACEFHJKLMOPRTUVWY\]^_a  "$%)/3569>@EGKPRTV[\`bcdfghmprtuz{}   #&(),-/1478:<>@BDGINQSXZ[`bc l \<| O%Fh* 4C\< L, DCJHP0_ X _CfQhmd  r|l z,( 0 QtFL0 EQHQ\}h  0 b4 l C, , OH| p CP &D.Qx3Q$; BEH < Oc( XF\]PfE0mEs, zp F +  + Ol,h 0W   m, `l xd < DLQ,| Hp!$ ,A h(  ,I  *Q5 0 ? F0( MB T*h  ZE`$ iDpp zQpEQQH( X, E\X F,e@ H$ E$` H@ EFP D@-z @X  F% .H 9 Att HHQ \CDbQiHpr } H F/ h QXPHx 8 GX,S H-  0 x\ &D x$ !QP*x4 5 X <CtCOJPNt WF] fQljO@pG~c  8 D(, CD H QD0f D4d Q,DFQOh EQ  E 'D|._ 4DX9GtBH M,V TF` hc p r |Q4D[$ FCCFD%  x L , H DpGQ` D  G4f8 "D' ,E`4C;HFPMh V@, ]\ hCpCwX El  a ~d , ,b *t _|  < PJ&D0t  D $dh *d 1 <| HFNbh S `Ei&  qn(p wQ8EHl  Qp Q<0 o  Ob0 ,  I$HEH8GLx E< < ,@ "Dd(D0Ex9@ BGI` S  YEla, l  tPz Pxh   ( FQ(, b  h 0 5< F0 ,6  B ,Y  $ET *H 4$ ;4 AP H UD ^eL d\| u3  |D < *\  Ft | F8 $   lT d QT x@ Ch  ,4   ] F B xp 'F 0,w 5O| ?,7 GF M  Sd ZC, aD nGd" O C  ' x8 Q@ ,  D  Op  4D  $ D C8 Q0 G@ `4 "Qd /," 4E :E AO KH RQL ^. cC jHX y X H D Q  0L  O@! G(auth_copyidropenchangerctoutflagpipelockblockopenlogtgetenvlstatargv0scomsatultstrstrchrfilledcstrprogerrtstrdupmakeblockTmnatememsetforkerrrenameStdoutpipwconcatenateonguardsputenvsgetchostnamegeteuidorgmailunexpeofAll_args___Argvrnmbogusgetegidconditionsmemmove_end__xargclockitctimesetdefskiplineopencrestargmemcpychmodcurdirTerminatepowlockfileshelllmtp_dummy_varsetlastfoldermaildirnextrcfiletreallocrlinkbopenrreadfreallocabortthepidhostenvironallocbufferslgnameuniqueexecutingmailfilterretStdoutunlocklogqnl_etext_finimkdirshutdescstrcmpcheckrootbuf2waitpidberkeleylasttelllinebufsendcomsatskippedtruncateenoughprivsalarmskpspaceopenasetegidnlogretvl2auth_filledidlinkforkstrlenVersionssleepreadbregcompsetmaildirdoumaskultoanrestargvauth_newid_exitrcfile_environauth_findusermetaparselastdirsepgetpwuidmaildirnewfdlockthebodyrawnonl__cg92_usedchderrignoretermsendtooquotercerrwwritingmakeFromauth_finduidsetlgcsverboffgloblockresettmoutrclosegetenvcumaskbufapp_val_closefdunlockuid__iobgethostbynamegetllineretbStdoutstrcpyinsufprivssetbufendgrentprimeStdoutgidoffvaluesetuidscreenmailboxshendpwentstrtodnextexitsgetcpfoldertypesetgidpidchildunlinkstrtolpoprcstat_DYNAMICauth_shellcquotestrncasecmptmallocskipspaceskipFrom_DeliverymodelseekpushrcsleepinitgroupsfcloserealloccheckprivFrom_setoverflowzombiecollectsuspendbregexecchdirgetgrgidsgideputenvgetservbynamewaitfortimerdupopendirgetuidprivilegedlckingreadmailgobenvctime2buf2strpbrkgetgidwritefoldersetreuidasenvcpydumpgetblltstrslogstrwhilstwfor_lib_versionclosercopnlogsstrstrerestrict_edataexecvelog__1cG__CrunMdo_exit_code6F_v_nicerenvintpipinrwriteinitdefenvsimplesplitwritegetbauth_whatuidcloselogsetlfcshlinkloclocklockfauth_freeidresizeblockpwaitsetidsStdfilledyellreadparsethemailtestBconflictingstrenstrsetregidstrenvvarsocketegrepinfcntlappendlastvaremptyfstatstrcspnclosediroffguardstrcatbuildpathsforkreaddirexceededlblcllockgargvftimeoutignwerrconconsetexitcodereaderrauth_homedirumaskifdepthnewlineungetbauth_usernameeqFrom_mainkillreaddyndevnull_PROCEDURE_LINKAGE_TABLE_procmailnfsynclexitcodeverbontfreedidchdauth_whatgidfromprogdetabauth_mailboxname_startmallocalphanum_initduppipthroughfreenewidasenvmyrenameqsignalincnamedauth_endstrncmpnomemerrdirsepcleanupenvduprcsstrlcat_GLOBAL_OFFSET_TABLE_inittmoutgetpwnamhomesavstdoutdefpathunamerpipeshexecatexitnewdynstring_get_exit_frame_monitorerrnosyslogxcreatsetcomsatfmalloclogopenedbinshwait__fsr_init_valueifstacklogabstractread2blkwriteerrstrlcpyexitalrmtimeendserventexectrapfakedeliverypmrcchowngetpidlastscoreretvalaccspooldirtestsignal__environ_lockfreeblocksetupsigsdefdeflockexecvp__xargvlastfolder_iobendhostentlibm.so.1SUNW_1.1libsocket.so.1SUNW_0.7libnsl.so.1SUNW_0.7libc.so.1SUNW_1.19SUNWprivate_1.1libm.so.1libsocket.so.1libnsl.so.1libgen.so.1libdl.so.1libc.so.1  ='   =(   =(  y  Nq HOO@C,=C8NCDmCP$C\Ch.CtCCCCACCCZC CC CDDDOD(D4D@cDL?DXDdDpD|DMDD&DD_DDGD"DDETE EaE$]E0/E<EHETE`ElExE0EEXEMEEEEEUERE*FFF 3F,ZF8'FDFPbF\-FhFt%FFfFFF F:F6FsFF3FGGGG(cG4G@PGLGX{Gd? @"a$D"a "`|, @'p $p+`-` `?-)Ҩ t- =--% # @@"h   @@=m@@@㿠@4@4= @3[ " @3s@ @#d#`  a`Ya#44  @v    `/%@2@l  2 $`հ M-Ѥ`M`m#`a`? ``-"@`Y"O`f `ac`dI`h"/!`t`p `m"$ `o"/ "ͨ `r3`y `t&`v z`z"h;t@#\\!1@"@!t3@c( @#\\"!7҂ K&MY P@"lLM  Ґ|@;Ґb,@ " "4#`` "`,M ` @$.@a @#\\M  @ߐ@ @N"@KԤ M`-"4 /@Ő$ |  P%@|A#d `` #  $  @7@@␐%@4@\@]$l@]#aD@2(#h!l @3@:@0ɐ ?@0I% @0a@/`6%@8@05% /@2@0L6@/ )'@ 679 6@ H#\\Ӯ! +@`@6  @  @  %@  @@ @ @ @:ѐ`@l@1%ah@2@\@9@,a4 >. . @`@@2* @/&%@* #@ _"%#`"%@ . @  . `2Ѫ. #l-Ԙ@#p%a4`3@1?13@"@%` @ C#\\@2 @2@_`9!@ " @f M#\\@ #  @:.`f `_@3f ^ ;@rb@ B#\\ Ԫ⠬!!@( K`4`}#@  L``@/+@,2` " @$x@`<@  Lh $ h@$`@U` @dd@0r @1o@1l"@1l+%aD@1`Ԁ l@1y L`7D@Ӑ@/@/ԶҀ P `   @3@@0h  @<'@%@6#%`$a`@2  @`@1`% #@@-@%@. ?p /l ``@4Ѱ   ')ԑ. (% @$``) @+ $`+ +` ۪`+`-@d  3@2bऀ"a@2kc@ @2c 'Ԙ` @ " M I`4  H@@M`.H@@    3 W@cNӐ@Ȕ@  ?@GǤ 9@@  2`  )""P@V%' L`@42 @  2   `?@@H 2P9x`cx@,@ N! 7-l@@@@@ ! @4c!h@72  @1ːJ @x#$`')ㄐ!h@2  191' @Z!8@F\@eѐ㿠;9@א`Y;7@Ӑa@ѐ"`@ϐ53@ː@ɐb1/@Ő "@Ð@@.ђ @/@-@;԰`%`) @1x@2@. -` /@@@/@xv `@ ` 쀠: @2 6@.#J Ըl   ` ` 6@~G/ @~ؒx@"  `9` 3/ -/@쀥`2< 31`W#@( 5@~@9@0 w@~@~@;`@2< / 1@y@b@;`"@~[  @@~8 Gh5Բ |#lF!8#p #t {#h # #`?bx#\  #d =#x p@L@ @ @d@`@@ :{/X @p) @~F  耥 x?` @+Ux-%#x @J `  `:x@} "% "+@atM   Ԩ !t @y#x@}ߒ  @ L@;t@@N  `N`` `?`" N  `? /-#|hN' N`X%' N  -X#|#" "@ ' "aH/"!,#NN(@%N#`@T  !@@d !@1@, |B@'?8` N .@#@@`@1t3'@ 2@ =--@2@@ ! | /@ aH !)-  @h#+`@}! 耢ά@ϐ {h--@ǐ  @ @d  N  @a5 @#(@aAN  @a5@c8@aAN @ a5@zL@xaAN  @a5@oc`@maAN -@a5@dx@baA xcp@˒ " @ǒ "  /Ԓ@ x 1&! #N '@Y@ Y@M@)Ԑ"a p` )p@)p !P`aP@)-Ԟ %P@@5@Ä @// @גY+# a1! @! `" #'!Y @Ē#Ԟ a % % X @ "1 #+#|ah+'+@Ycpp`@% !p@  !,v!t@ol. at`#at-`1ԀN& `@ x' @k@{ Ԓ |@  #N`2$!Ӫ Զ -@|X଀ `/@{ؒ`N `'`` @ +X@ "e-|  1!h|* @23|#|Ԁ^`xԀ`Oap* I > >6H`>2@@{bĨ@{+,%@1XӪ"ؔ #h@I -@{@{}@(Hǀ>M``@{@@ x ! "aN# NN`)!H  @]a5'@ΐ@̐aA@N7c|h@@|a@_ Ԉ a\ 2Y# #V @|N'1|%&!h@F Ԕ !\2@# #= -H @| 20# #- |@  % #N"!  N - L@-,@d #x`" 7x@( #  Զ\#t a@]`ҁ @c } 1Զ&T!(+cp/cpcp' %cp`-  cp"%cp`*@?@;@@.`J `@`@&/ @>@# =X-b @7- `@+.?@/(ࠀ&  @\ @ 2p 㿠;`;Ҵb`@(d$&&&&N A`6@z7:x@zA3< -,#b\b\ ?  $3@ " ?7@  ?-+" ?@ a(" ?@ " p%a(@@@uN `N 6@yH !T@y ` @z  09Ԓx@y/< )*'ҠX% X@ސ2 `$ )$ % @'-T` 1 !T%@&9!(7&p@$(1- cp @'3bX%\㿠351ҺaT"P1@'  #@''` B%` @y? `2 #` '@ #` / @'n @&@q@@y#/ 㿠;`` 9 73@'P?&aT &aT@&}㿠;a(;cp ;97!(/&p@HbH`bH bH!԰&`'bH. " bH% 'bH,@$!(bH#`'bH+   @y< & "`&)  㿠9"H`"H;Ҡ`  . $  $'  `7Բ &(5&p㿠9Ҷ '"X5Ґ&\ @&w 1&  4O`@xȐ4*@+!`WJ $N`@x`4-@xѐ@xΐҚ ` -+)ap'@x!pL4@ ,@@xp-ԐT@;`㿠@!&` ?`  / @ ?` / ?@ 㿠;Ҷb\b\@ +` @x &# ?`&`?"\#`#"\㿠  chK` ?h`"h `㿠    2 ސ Ґ㿠? 㿠;r`  ?"  " % -  ^?    @wJ?\" @&`  &@ ߴ ;@`@*6㿠  @wÒ   @w  %@w  @w  @w  2@$~,/ "  "    ```%```9@wՒ@$ݐ@#`@ E@wi㿠;@wc亐  9#/`@wJ ` " `   J ` ` " 㿘@w  `%?;?c? @w ` ?>` 99Ҵ ' ?㿠;`b`@%J  J `/" `J :"`J \2 ` J `'  @w'/`"@wI`' `1#'  , \ N``: ``/ `\ .  `$ & `;`. `;` `0.  0. 0'`.  `ٴ@v 㾀#`+Ӹ`c  #\@w$@w?٬%#d  " #h%`Ҫ``  _.`a@%``h`!"` .@%* Ԕ @% _*    ./Ӹ .`@%o  -Q%@v``0`bH, x`$`@vt  N @%%`  x%x%-@v] N% ?` %@#%!?% ` `@v{`@ Ӹ `@$@vo$`#"``\h`@vZd `J@aG``2@v*x@v $! x   \ `'l%`@v, `@#@v(``)#@$ `@#ݐ ` 2?㿠;@Qc@v;@#Ɛ&'c &?㾐@u7;Ӓxc?@u@u x @  /<+( 2 1Ӏ&#"?`$ ?x @ & x:?;c 2 ?@"%&? ԀapK #`0  ap@u)    + @ ? 㿀;+'H`-`#Ӥ p`$c ? '- )@#\ $ \ (H@ !"d, Ӷd`$```  $` ` "4`""`#"+ `$"Ԁ`'"`\"`}"Ӏ4#  H"d`H@ Ӏ \!"d ?, ""  `"%~ {H/%d $ ? ܀ ""eff \d `c^@/.`<,(/ @t Ԕ "!,ch@#`#hX"ؔ cA @t~`Ԇ  ,"c@!` !#h1Ը#@ "@&!,` Ӳ dހbd " 40 ',H/  ӶKg/ i ``d_ 'H ' H  S  'H'H   A?p$"hp3 p&btl'*H@-%d?d  dHĀ% ? ` 2H  apH€1&"d ? - ? #"²쀢 $"ր ="Ӏ _  ? @" {"HӺ $/  ' 2W /%H@Ӏ?#"dd@'C@ `Hg.`H`Ӏ? bd "d@'.퀦@.`N @'& ` J4Ӳbd :  +1 -"4`% }A`HӀ - d +" ``"4N`2.N`2!@Xap@H`2"21"pӶ &"h"bt3&blH`4 1 Ԕ@"  Ҕ @  Ԕ`@"  /Ӕ@   bd$T !T  3@%C`L 1&"dq g@&   /Mg.``#"d/ bd\H  d "d@&yx@  K"g.`H€`Ӏ?"bdbd@&d퀦@bd  d  .`Q + / \*  N``"B N`@r/  N`/  `N` +@"$Ӹ!Ӯ$@r   '@rN  /     ' d`+.d`$`  "` (` 6"`"b`#".`` `$X`'`\"U"P`}"#@ 1`5 ?Ӏ`:40/  ,?ۀ ـ   '2 /  H  ;/ ;Ը 'at5@ @$2Kbg/   'H 8! J``  ``  `    *    J` *   ` "!t !t J ` J 2 *   *? * 㿠;Ҳa( @qt+Ԩ %a, -@q{@ 53&h/Xؔ `- ;`9Զ @qg'!,@㿠 .&  @ FO`  -`O` "` -/@ 7@ ? `  `@q8@g @(N `%@\ @q"Da` 5`@qW9!L 3 `@ @;  -9< ! `0@ !$@!# K"J`l"D`f?1=NB^t@pƐ0- )t@p$! $@@B " @p @ P@ @ +Ԯ @ `8@    `$@@p" I?@p{4@ ``@ ː @ `l.`@ @ @#&`#` -%D@p)Ԫ %! ;@ `b5@ ߐ@ @ >` 2 㿠'6@pD"5 ) @p=   @ 7@p7/@p307Ԭ@@@p&3@p"a0P9!P@p ;@ $`@ V@C ;Բa8Ɓ㿠@  `,)  @o-+a`@p8 @ ܐ @p,5/@  @ ,`;7D@p!a  @ & @ u?@ " @@p @9Ґ! x@oȐ&@㿠;a )%@ #U35``@  @o - x 5| 2b~5""|x ` &@oʒ  @oȔ @%      ` +Ҥ #4b|b|@o !!@ q@/㌀  +)%` ?%  㿠9 ` ?  ;@oc  bx/Ӱ @o[?@o}@oQ5||@op %㿠N.;b@.㿠;b b $`"@: `$`$aX@`Xې$@$` +)Ԟ$c!h$$`$  $`'`;Ը?'a/Ӭ %%1`  @n '@ ΐ'``'` +`  @n͔  ``@ʔ x&@n%@Ր @ 3& @ W߀` ``  N `N  `` `` '`@} ` @n%` ` ` 3c+)@ C!%c@0    ?W Ժ`p @n]`踐 @nZ @nJ` "@nK @nI@f &` M@Ԕ`    V `` `h+@b 2M)S+Ԁ5/-଒!ٚ _9 @m7& @m "`@m8ଈ&  @ '@@Aap@mt!8@m@_`/%#!@ib!p  +)'@!4@`@tp-  7p@m5@!3`@;'c?'H'PN `|`t@ @!!4# c|@ uP )`!t` @m-`@"  @@m?$@| @m V"Qt`[@J@- 6@l !Ԭ $  @m< !0@lݐaP  P@l @O+a8/`@ @OP"A  ;Ӂ 7Ԡ㐀apP@#" @l  I 4'@ @ `/`"  ଒!a  P  c@lH`4.@l   @le  `  @l  @l'`- @l@ r7K4/`p @lN`p  p!%@ @ !c!P^H F/ p@l, @lbԂ? `;@R;c``1" @#!L@S/@al @K//@B 9!@lYy)!@%r 3@am p @k  - @l1`"X @ D @kВ@. - (  "#@Ð`@-` @kK4*   /` @k @k @ -@ @` @ 㿠;a @a 5 !!;bԶ!ԀN`+%aXaXaXM,@!3c@k< .` c @9@Ő .` ) ' al"@ " J?` " "J 2"# `N8 N@k?*z#@a@!@ 3@c@k' =i@@k  < -$$@~H7@ @s5@p@" `+ :  Ә#*" `  ("㿀;97Ӭahc!XȀ  &'X B&'@a@@ $%` @j`@j@%@[ @O1"@P"%@ @j@;'`'`% " ` & `&'@@`' @   ' I     ' J  &D && @j5 ' %  ' H` ` ` @* `&`#@"  '   @j' ' &a  a|``"@ `"&` '  `@8#`C` ` @` &@`@ J? "$ M     9  --  ,` -  M  񀦠  @N `@iߔ @& &㿠7`4@i   "``8 O`L? 1,? $ L?. O`L?@2O`$   $ O`L?$ $   @L?@im %`@L?@ia2, 㿠9/!p!p- .@if] @i6A@i`@iI *  `@, %@b@Ԑ#@ѐa @ @i ' 8 @i  ;  c@i  !;<` x@i2-/`@i3&/Ӏ`  %l@ +al)!`@iF x  㐀@iZ!`` ;Ӹ!c5/$`` 㿠'Ԟ&@ap@i!pJ4*!p)%<@hʐ #/-<@h +9# 7@hw;<     "C  "@ " (9`28   @hux2 /@hx"p3Ӂ?<1  @2 i @s!+Ԑ ap)!p@!@ܐ"@@9``@h: '@ ?`A@pԬ"!p@htԀp*!<@  @  ! =)@$"@@U`/ @X?  3Ӯ!c+ -@  x  '@&;Ԡ 'aL9Ԓ!D7/&`@g, M`  @  J 8, @gݒxAԂl`6@`? `? "LL   "`l2  @ d1&!`@`@g '`@ g@ @g!,#('< %@gnx?+c` 3@ @gcx2y3Ժ Ԯ alI F @B  @2 :`6 @.@iaL?π Ӻ?c ])@<#d %@l' d@g @5#c .'@gsH @V% @gx3 @A3 "ap @gFԒxp.  2f53aL!  @fےxgx@!     @f˒xWxB5<-@@B  @f Һ@f!0 @DҀ "`@fx!l ` #@% "p @fapҒx,0/`@` 55@ @ 5)Ҳ@%  @`@fG C3㿠9  @b'`'`@fy`>`#7a 3` "`*8 Q* Q`@$`` `@p @^  '`'`` $```@fX'``M  ` ``@X '` @R㿠  @f  @f @e@e㿠;c|@@ft㿠@e @e@e;b ;@eԚ@` M@e㿠;``'+ԲaDaD@fO? /`@fC/`/ϐ gl-@fA?l@e1!l u`97@f ' &㿠;@͐a@㿠? ; @b@㿐Ҵa`@ A`0`(@֐㿠;@b@΁㿠;@b@ȁ㿠;9X'ch;Ԓ"ؔ `:  ;9/al"㈐ @eP2`I @eT4@rc l# @e4 #-+#@e7 @eO``&@17(@K` N 4`.`@e0 Ҙ #akcx @CҘ #akc @:㿠;a`@"@T㿠@e|;'a;Ӹ 'b㿠? @et @?  @@ek㿐;9q`Y;nc!&`"@e %@/53-Yc4%+'@ PN8@e?bJ)H YFD㿠;>`S<;`V8㿠N `;c<㿠7``"  =`$@d2 @d1 %3cD5& ` 㿠@d @6@d㿠@ `# 㿠97 ' 3ې`@<㿠1;a `a @dÒ ) #$aN`䀋 +` ?<1 b4 5"7-@9 @㿠@d9!97?; ad   KaҺ@(@@L@  ua   @@ '#$!֐a8Ԑ!P+-[@` /@c3ad  @c5@c@c҂a@Ҙ K#`cԘ #ad]Ҙ I#`W㿠;m9ma@;m@ ap7m@ !p5t@ X@  @c|J  * `  `%` . ` ""  ' `\"   J* `  `` ` "  `\"   2 "     2ߘ " ݐ 㿠N ` " @ i   @F@l㿠@@  @2    㿠@c" @Ր  @c1 && 㿠    & ]` @@ &  ^@ & @A?(H|| ,P#n#\`p#``H`I  `J `L  Ӡ `#haXㄔ" #dJ` `K ;ah#d aX)#h!hd #d    ;;|; ` M 5 ` `` M` @ +;#;`V;Ȑc Ő#`, `L;';/@;`,``O  `" @`K   @  @ `N  ` #l #l-#c#n``1  "`##|#p#t#x;$ ;;;;;;鄐 *f d #;;;;;;p;;;;;;;;;; ;;;;N;  #l;l   :;;)# T#'$ ` 7n  5&\  `%n ; ;%;ah';h3n;`;; ; !p!p!pC@2 `fh;;;;;;d@a2;"  * N  2  .& 45  %I !`;h+`@;;;;;;;@a; (.' ;;;;;;;;q;J ^2' а ;;;;;;;;@a^;@('  д ;;;;;;;#\;;wO?' ;;;;;;;@Q; Ͱ O ;;;;;;;@<; N ;;;;;;;@&;2 ;;;;;;;;@`< . O ㄀O 1!X# B"@ H"P 6#aX"Z`;;c;;;;;@`:;/%;;;;;;;@`$;;;;;;;;@[;@`` ;;;;;;;;`; ;;;;;;Z;;Ӑ;bܪ ;;;;;<;&`` W``;;;;;;;@;7N?\/`;;;;;;;@_;``@_@_" @_`@_` ``&``` ``N`  ;;;;;;;@ r;#n L~;;;;;;;@ >;gPd V P_[ WU;;;;;;;;@ ;<@P FȽ P''   +  V$Dz# Ɖ D V p#t#؅B;;;;;;;@ ;w ` ;; ;;;;;M;"[@ X@x*;;;;;;;; X`"ؔ >29 1 ;;;;;;;;@^f5;;;;;;;;Ԓ ;;;;;;;@^=;@^8Ԛ #3;-;;;;;;;`@p %Ԓ @@$`   #P  ` F<P&'J01 JҔ ਀ 2 2 +`;;;;;;;@];X  "; ;;;;;;u;n  ;;;;;;;@];@]=K``<`?@` ##ؑ؉ ;4=.A2 "8.##ع ؽ ;;;;;;;;;@]; @LH`<@   $ " ./  ҩ2Һ 3`?C;9;;;;;;-;ڍH#븐 #ܐ T#묒 ܁  +/;;;;;;t;|`2;/;;;;;;\-;;;;;;I;;;;;;;;;㿠;9b;Ӷ 5'b5'#`-@\ϐ /1/! %0@]㿠@] ;Ը 'a0;Ӷ 'c35a  ' @\ )!+Ґb/ -t@\Va0` Ԃ#!0 @\㿠;Ӡbb쀧`  @\ϒ '$?`!9?  u  +Uc)Ɛ#9/3a  975C9 @[㿠;Ҹ E'`;t7tb5t@ C 3t@ ? @ < b@ 9 㿠@  @ @ 㿐9!,;5'ҐI/H'''@I'aa `  IsS `jhLL ` $#@`   O // E B  `/㔀@ " t ´9-+)Ԣ#`!t3#`V@[. ,"N ` N  `&   `$," ` $ 2م,, "㿈97!H!H @[M *?"  @[0$`?$$`@[X$@ @ @Ԑ" t ` ``@[A$$`$@ 0@ -@@ ) @g$@ @ @@ @ @ Z"@  . 7  ;҂ J  !zst$   %$a  -Ԑ``?-w\@@ `Y? `E =,'!H79$H;@ a@!<@ THa<@Z<"  @Ғ<H@a@&HH!<@Z@ Da-\` 33Ӓ b ;Ԕ aH@ A5\ @u@Z9 㿘@)@;Ԑ'a  @fSMR@^a "@U? y  a  #a '  +Ԑa  5Բ & /,{@ ܐ㿠 @&@@ 㿠;a ,b䀢 Ԑ @  +@  `! ?M  ,&`$"#a /3a [1&!\9Դ '!  㿠;v9w'Lc̖ @ L㿐֐ @y@;Ԑ'a -#H@@i@ @Ӑ#b @@@@@!"ޒQ'@/L)+@a Β8@2@ $ & 3y`@  N  &  N "& @R@7 Ұ @Hܸ ;'a . )%#he #`@X㿘N @ N `E)Ԧ % %盐8 @ېs@[#Ԑ$a +@@ @ `@ /- N531ah$ ! |?7&;Ը 'a @}" !" " Ӓ c  2   `* " 2   +@* " #" A`" a ``" ` 2   ` * @ !2   ? `* * ! aa  є㷒 !J@ 㿠;Ӷcc`[( 9$"ހ  ."  \^ &@ & &  ^d  !##`# "  ? $`"`'   @$% '   &`%`]  &`  "  ] `- `& / -`% `] - 7 & 8&`& `$]" $          `  #`&    " &k!%a`^ &]! "!" OS "`I&`< `'`/" ' `> ! ! & `&5%& & -$'? %&`  A `  # $ ##`& & `"  `)" `|  㿠;Ӷ!c `&o ߐ& &`* `+ `?8 T  &D ` &p5#` # &^` &&` &&` &;`&&,&&$㿠 %Ӡ    @_Ӻ c `` `) `|6\& !!  & &G  &&&$@&- "( `&#  & m & b`&? $ ?$ 㿠;Ӷ 'cc#` #  C  = &`` ' `@2`` ,#`&`&` `d&`ː` @8  ``&``"' `&`  &`@ 㿠';Ҹ /` %%%%%, $@%%% !Ӗ #"!# %`+#Ő`$%c !!!! !c  3c `^` # 4$ $  c a""a "c a!"" " `   ( !!"  g acc  k o " " " @ Ҙ`Ā@   !  !      LdPd 㿈#p7҄܀$`  ?p9)| #`'{ `#h  #d #l  ` & ` pa`p#p (@d#d`#`&! - "(d1ll #l )"% @*dl6 , 2dl "ld d` d#` %l  #l p#p&` `&A  h a * @  ">dNll #l  ri@#\`d#`(l@*d#l6 @ ,2dl "ld d` d#` d`  `l``#lp#p& ``&A d #d`#` (   d` `#``#d #p! s A\% #\   \-\'@S$\@Sܔ.@%3%@c`*a< a<!H@Ԯ\< @SĔ@4% t`pd㿠;Ը 'a;7`1 <53@`1 /@S`ऀ"7耦9!p`#ap + ଐ@ *? htap'K G+%`9㿠9 `' @Sz @Ś㿠5`&@Sk+aa %n@SX $?&㿠7Ԑ&@S+aa%B@S $d ' 㿠9Ԑ `' @S &㿠7Ԑ`&@S^ ' 㿠9Ԑ `' @SM &㿠;9`;>`@@SD!?  &% 0?@S/?&㿠;`@N`/6@ 51ɐ! @Rd@ @_@}9Զ '!@㿠;[`! !@㿠9; a ' @R9Ө# `"    $@Rޔ$㿠5;a`&@Rϐ;Өc `  $@R?& & ?&㿠5;a`&@R;Ӫc` % @R?&㿠@R;c  c@R`"㿠@R;c c@Rw `"㿠@Rl;c c@Ra `"㿠@RX;a0`@Q 9!0& @R)ӂ#c@RC `K#` ` ``A@2` >  `   `  !  @  /    (    @   ``  @       ϐ    㺘;`耧`9@Q@QJ 3Ґ&`579@Q6  ?  A 4 G  >?  "? *``2   ?*`   333`̀S@0 2`"   *  *  ! ̀R@ @3 3  (`"@   0) ! Ә #c$㿠;Ӹ 'c$;`@PĐ  @P@P7$@㿠`4@P  @P2 J `J "A`8 J  *  J `@QC@Q?㿠9'#(#(@Ps @2* А'` '```'`㿠;Ԓ'c(c( '`` `'`㿠 " " 㿠 ` y& ` &   $&  @P $``%` % `%`%`  % ` `@P%` @Pȁ㿠 1@P@P   @P @P ` @P@P @O@P  @O @P  @P $ `  @O  @P㿠 ` ```  `   `2 㿠 ` @Of & 3` ;@O`?   @O   ` `  ` `  `㿠;Tc(;c, 7,5 &,@OX㿠&  & ` @ 㿠 @ '  '  ` T2'   '   ' . 㿘'L;5`` ' 6&  L #@  " '  &`  '*`$X㿠; a’@NĒ =)Ґ @N #Ӻ pc<"`$c< `@N2N@=2`$`2````@Np2J =2%`%2`%< <`+```'`  &.`@N&`'` 2;``2&&?& `@㿠;aH`9n#<7&H@NO1Բ &!<㿠! $#<gԔ #aH#8"` )!<L` -<%%< @;@N ="`;@N2`耦`. @@Ɂa<Ӕ  Ԇ * ##<8"`!!H㿠;9'aH;7`@!H/+<'Ԣ @M<@M%a<Hʒ*Ԟ`@MЁ㿠;Ӑ'ch;X b؎ 9ԁ  㿠;Ԓ`;Ը =@M`@M *  㿠@M`@`qɞ㿠79pp1 ``*@M`@Ma2N=H _2 `&$`H`_`$` ` `` 2`` `8` = @MK"'$` `"   @M#`@ML @M  $``& $`  㿠-"O` ++`AP/O`/ A;`wL15  A0+  `w&!`!-`A@25!Ҹ!$ @D`L`` &&`'`}31`| L/+ߐ -`  ` ܦPPPPPPPPPP```````XXXXXXXXXXXXXXXXXXXXXXXXXX````X`XXXXXXXXXXXXXXXXXXXXXXXXXX" 0| J + @ @    㿠;Ը '`;7ap =3@LHW*  @LDapa㿠@@LB ;@L5`L;a@L@LݔJX㿠;c@`'@K @?)% ?5Ԯ =p3-p+@L` . ap㿠s&` &/``@  e  /``@  Sw   /`c@ ;Ӑ`% (   =2 " 㿠@K =&"-Ԫ %)嶢  $;7樐 `5@KՔ@" /?@F  㿠;Ը``耧`   +' ap.' -*%p`7  =@Kfi*   Q ~㿠5Һa($/Ը `@`@`@KK&&%`' 㿠;7i``@K9  @  Ұ "  3 @K'`W@K7 吐`ˁ  @KWu @K _䊁 @K 1&#@ @J`A@ @JL@e @J_ @`_ f @JՒ;Ԑ `@@5/`$&@& @J} @+a -彐4俁 @Jc @l7/Ԑ%}7aߒY "!d* @J  <!PHc @Juw @J ˁ @Jimࠀ/" @J]` #\ |@JO @JF%h#(`  9' *3-Ү`0`0  @J)% @$$&Ł3`@Iԝ㿘@J) sLO&A $ `(ce$ `\ "[]F A"W DKEGPENCJfa O#T5Y3<": d.e*3t f$n"o" 'y!)"x`@Jk " -|@Jb     '㿠;a @Ie " 㿠"`N     N    ` `N `>&`㿠N &` "H& N `   & Ɛ1@Ii"ѿ L :2$ L  : $  L `:2$ L : $  $ M "    2@%㿘@IG 9' !p51/`!p/`@I~p@I`!p@I㿠54  N -  N `    N    &(`&#D  @HҒ #DcD? !'ΐ1 !  @H %@H#@Hc/Թ*`I %X!4  @ `)Ӻ#D Ԭ 4`y        H`    ` }  *Y R.@HG2! h .@H79 &&4 4& `''D !`;;``  @H ` "@ @ @ " @ Ԇ!!h`=N@@H`&*&)@G!@H``!p@G&+  @G@Hap@H+a@GА@H3ap@H.㿠;Ӹ 'cD743!4`/!!l+`!4` `@G``)!D@HZ `  `@G ``  5&D@G㿠N ;@Go`49Đ W@G/@G{`-@Gn4@H@H;cL'cL 㿠א9#H'#H {㿈@G/ @ '?' ;'c`   *` '!K`  @G `  7  @G1  @G @G ` 7`@G  `N `bԐ@G  /7@G"7 7 @Gy5&``7ӒP@F u㿠;c` [3`耧`WHH`RH@Fɸ`҈ `H``L`@# cH@F!  @G\a 5+)a'%!p  p@GJ /1@GD" @G@  @GT  7@F3ӔcP  @GI y ]㿠㿠HBDAahbfcwWiEerRcfile:Usage: procmail [-vptoY] [-f fromwhom] [parameter=value | rcfile] ... Or: procmail [-toY] [-f fromwhom] [-a argument] ... -d recipient ... Or: procmail [-ptY] [-f fromwhom] -m [parameter=value] ... rcfile [arg] ... Or: procmail [-toY] [-a argument] ... -z Missing recipient Extraneous ignored ..PATH=/bin:/usr/ucb:/usr/local/bin:/usr/X/bin$HOMESHELLLOCKFILE /bin/shUnexpected EOL $HOME/.procmailrc//dev/nullLOGNAMEExecuting "" procmail whilst waiting for HOMEHOST.%s "%s"Conflicting ORGMAILInsufficient privileges PATH=$HOME/bin:/bin:/usr/ucb:/usr/local/bin:/usr/X/binExceeded LINEBUF Error while writing to v3.22 2001/09/10 Copyright (c) 1990-2001, Stephen R. van den Berg Copyright (c) 1997-2001, Philip A. Guenther Submit questions/answers to the procmail-related mailinglist by sending to: And of course, subscription and information requests for this list to: Unknown user/etc/procmailrcs/Denying special privileges forSuspicious rcfile.,+%test From >Linking to Folder: /tmp/cur/newRenamed bogus "%s" into "%s"Couldn't rename bogus "%s" into "%s"BOGUS.Enforcing stricter permissions on path too long is not an absolute path: ;l;t;|; suppressed ;< ==>8><>>,Rescue of unfiltered data  MATCHMATCH=Out of memory/var/mail/LASTFOLDERMAILDIRCOMSATnoLINEBUFPROCMAIL_OVERFLOW=yesEXITCODEAAAAAAAAALOGFILELOGDELIVEREDINCLUDERCUMASKDROPPRIVSSHIFTSWITCHRCFrom >From Attempt to fake stamp byMAILER-DAEMONBBBBBBBBBB/etc/procmailrc -v display the version number and exit -p preserve (most of) the environment upon startup -t fail softly if mail is undeliverable -f fromwhom (re)generate the leading 'From ' line -o override the leading 'From ' line if necessary -Y Berkeley format mailbox, disregard Content-Length: -a argument will set $1, $2, etc -d recipient explicit delivery mode -z act as an LMTP server -m act as a general purpose mail filter Recipe flag quick reference: H egrep header (default) B egrep body D distinguish case A also execute this recipe if the common condition matched a same as 'A', but only if the previous recipe was successful E else execute this recipe, if the preceding condition didn't match e on error execute this recipe, if the previous recipe failed h deliver header (default) b deliver body (default) f filter i ignore write errors c carbon copy or clone message w wait for a program r raw mode, mail as is W same as 'w', but suppress 'Program failure' messages Missing name Missing argument LMTP support not enabled in this binary Unrecognised options:Processing continued options Descriptor %d was not open Insufficient privileges to deliver to "%s" Missing rcfile default rcfile Locking strategies: dotlocking, fcntl(), lockf() Default rcfile: Your system mailbox: #`'");Couldn't determine implicit lockfile fromcopy-flagIncomplete recipe filter-flaglocallockfiledeliver-body flagdeliver-head flagignore-write-error flagraw-mode flagForkingClosing brace unexpected LostMissing closing brace Failed to execute 0Bad substitution of(|)*?+.^$[\Bypassed lockingLockingForced unlock denied onForcing lock onTruncating and retrying lock Lock failure onlockfile|Deadlock attempted onUnlockingCouldn't unlockAcquiring kernel-lock Reiterating kernel-lock Kernel-lock failed Kernel-unlock failed Couldn't make link toNo space left to finish writingQuota exceeded while writingTruncated file to former size Couldn't create or rename temp file Renaming bogus mailbox "" infoInternal error: improper type () passed to foldertype for folder Unable to treat as directoryAutoforwarding mailbox found Couldn't createset%cid(%lu) failed with ruid/euid = %lu/%luFailed forkingCouldn't chdir toCouldn't read%s%s for LINEBUF for uid "%lu" %s%s for uid "%lu" full rcfile[] SkippedExcessively long rcfile path skipped memoryforka file descriptora kernel-lockTerminating prematurelyelse-if-flagalso-if-succeeded-flagMissing action ??HBBH^FROM_DAEMON(^(Mailing-List:|Precedence:.*(junk|bulk|list)|To: Multiple recipients of |(((Resent-)?(From|Sender)|X-Envelope-From):|>?From )([^>]*[^(.%@a-z0-9])?(Post(ma?(st(e?r)?|n)|office)|(send)?Mail(er)?|daemon|m(mdf|ajordomo)|n?uucp|LIST(SERV|proc)|NETSERV|o(wner|ps)|r(e(quest|sponse)|oot)|b(ounce|bs\.smtp)|echo|mirror|s(erv(ices?|er)|mtp(error)?|ystem)|A(dmin(istrator)?|MMGR|utoanswer))(([^).!:a-z0-9][-_a-z0-9]*)?[%@> ][^<)]*(\(.*\).*)?)?$([^>]|$)))^TO_(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(-Resent)?)-To):(.*[^-a-zA-Z0-9_.])?)^TO(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(-Resent)?)-To):(.*[^a-zA-Z])?)^FROM_MAILER(^(((Resent-)?(From|Sender)|X-Envelope-From):|>?From )([^>]*[^(.%@a-z0-9])?(Post(ma(st(er)?|n)|office)|(send)?Mail(er)?|daemon|mmdf|n?uucp|ops|r(esponse|oot)|(bbs\.)?smtp(error)?|s(erv(ices?|er)|ystem)|A(dmin(istrator)?|MMGR))(([^).!:a-z0-9][-_a-z0-9]*)?[%@> ][^<)]*(\(.*\).*)?)?$([^>]|$))Score: atch on !Timeout, failed succeeded Excessive output quenched fromInvalid regexpMatched %s as I tried to allocate %ld bytes buffer 0:buffer 1:OpeningLOCKSLEEPLOCKTIMEOUTSUSPENDNORESRETRYTIMEOUTVERBOSELOGABSTRACTSHELLMETAS&|<>~;?*[LOCKEXT.lockMSGPREFIXmsg.TRAPSHELLFLAGS-cDEFAULT$ORGMAILSENDMAIL/usr/lib/sendmailSENDMAILFLAGS-oiPROCMAIL_VERSION3.22AssigningTZLD__RLDLIBPATH=ELF_LD_AOUT_LD_//tmp/dead.letterIFSENVPWD=Assignment to variable with excessively long name skipped Assuming identity of the recipient, VERBOSE=off HOST mismatchednff rootdaemonuucpmailx400networklistslistlistsnews512udp@:Notified comsat:Gt00<0H0T0`0l0x00000000000000 0,080D0P0\0h0t0000000000000~0{0x(0u40r@0oL0lX0id0fp0c|0`0]0Z0W0T0Q0N0K0H0E0B0? 0<09$06003<00H0-T0*`0'l0$x0!0000000 0 00000 0,080D0P0\0h0 & 0 ? K W b *\ *h"T l  oo.oD/t/Ph ooBGd1dJ(,@,@I 8HH@@@@@@@@@@@AAA,@A A,A0A8ADAPAdAtAxA^Subject:.*$^Content-Length:Non-zero exitcode (Program failure () from) of**Lost****Requeued****Bounced**MNo mterminatingwas waiting for[^a-zA-Z0-9_]cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12cg: Sun Compiler Common 7.1 2003/03/12@(#)types.h 1.75 04/01/06 SMI@(#)isa_defs.h 1.20 99/05/04 SMI@(#)feature_tests.h 1.18 99/07/26 SMI@(#)machtypes.h 1.13 99/05/04 SMI@(#)int_types.h 1.6 97/08/20 SMI@(#)select.h 1.17 01/08/15 SMI@(#)time.h 2.71 03/08/07 SMI@(#)time.h 1.39 99/08/10 SMI@(#)time_iso.h 1.1 99/08/09 SMI@(#)time_impl.h 1.7 01/09/06 SMI@(#)limits.h 1.53 03/08/07 SMI@(#)limits_iso.h 1.1 99/08/09 SMI@(#)int_limits.h 1.6 99/08/06 SMI@(#)unistd.h 1.60 01/07/29 SMI@(#)unistd.h 1.39 01/07/29 SMI@(#)stdio.h 1.79 01/04/16 SMI@(#)stdio_iso.h 1.2 99/10/25 SMI@(#)va_list.h 1.13 01/02/08 SMI@(#)stdio_tag.h 1.3 98/04/20 SMI@(#)stdio_impl.h 1.13 01/11/16 SMI@(#)stddef.h 1.16 99/08/10 SMI@(#)stddef_iso.h 1.1 99/08/09 SMI@(#)stdlib.h 1.48 00/04/13 SMI@(#)stdlib_iso.h 1.3 01/03/09 SMI@(#)fcntl.h 1.15 01/07/29 SMI@(#)fcntl.h 1.48 01/12/17 SMI@(#)grp.h 1.18 96/03/12 SMI@(#)pwd.h 1.19 96/03/12 SMI@(#)dirent.h 1.31 01/07/29 SMI@(#)dirent.h 1.33 03/09/17 SMI@(#)wait.h 1.21 97/04/08 SMI@(#)resource.h 1.29 03/10/14 SMI@(#)siginfo.h 1.55 01/04/05 SMI@(#)machsig.h 1.15 99/08/15 SMI@(#)procset.h 1.20 00/01/11 SMI@(#)utsname.h 1.26 98/12/03 SMI@(#)stat.h 1.4 03/06/01 SMI@(#)stat_impl.h 1.3 03/06/01 SMI@(#)signal.h 1.39 01/11/07 SMI@(#)signal_iso.h 1.1 99/08/09 SMI@(#)signal_iso.h 1.2 01/04/05 SMI@(#)signal.h 1.56 01/05/28 SMI@(#)string.h 1.24 99/08/10 SMI@(#)string_iso.h 1.2 99/11/09 SMI@(#)math.h 2.11 00/09/07 SMI@(#)math_iso.h 1.3 03/04/08 SMI@(#)floatingpoint.h 2.5 99/06/22 SMI@(#)ieeefp.h 2.8 99/10/29@(#)syslog.h 1.11 96/05/17 SMI@(#)syslog.h 1.10 92/07/14 SMI@(#)errno.h 1.16 99/07/26 SMI@(#)errno.h 1.20 00/01/12 SMI@(#)sysexits.h 1.7 00/05/01 SMI@(#)socket.h 1.58 03/06/01 SMI@(#)uio.h 1.30 01/03/19 SMI@(#)netconfig.h 1.20 99/04/27 SMI@(#)in.h 1.36 02/10/02 SMI@(#)stream.h 1.92 03/01/28 SMI@(#)vnode.h 1.98 03/11/12 SMI@(#)t_lock.h 1.45 98/02/01 SMI@(#)machlock.h 1.22 01/10/31 SMI@(#)privregs.h 1.5 99/06/05 SMI@(#)psr.h 1.3 96/09/12 SMI@(#)fsr.h 1.3 97/02/11 SMI@(#)param.h 1.77 02/01/22 SMI@(#)mutex.h 1.20 98/02/01 SMI@(#)rwlock.h 1.9 98/02/18 SMI@(#)semaphore.h 1.5 98/02/01 SMI@(#)condvar.h 1.13 01/01/29 SMI@(#)rwstlock.h 1.2 03/03/11 SMI@(#)ksynch.h 1.6 97/10/22 SMI@(#)cred.h 1.21 97/01/09 SMI@(#)seg_enum.h 1.7 00/05/22 SMI@(#)poll.h 1.28 98/11/23 SMI@(#)strmdep.h 1.10 98/01/06 SMI@(#)model.h 1.21 01/08/31 SMI@(#)strft.h 1.2 00/03/17 SMI@(#)byteorder.h 1.14 98/04/19 SMI@(#)un.h 1.9 96/07/12 SMI@(#)if_dl.h 1.7 98/01/06 SMI@(#)netdb.h 1.26 03/02/14 SMIacomp: Sun C 5.5 2003/03/12iropt: Sun Compiler Common 7.1 2003/03/12ld: Software Generation Utilities - Solaris Link Editors: 5.9-1.380.interp.hash.dynsym.dynstr.SUNW_version.rela.data.rela.bss.rela.plt.text.init.fini.rodata.rodata1.got.plt.dynamic.data.data1.bss.comment.shstrtab  ,   @""T"T lo..-B/P/P  8B/\/\ BB/t/tD L33R*\*\ X*h*h ^*t*tf1d1doBBtBBx yGtGtHXHXIlIlJ(J(PJ& 07070100004ae7000041ed000000000000000100000003438ad61300000000000000880000000100000000000000000000000f00000000root/usr/share07070100006783000041ed000000000000000100000004438ad61300000000000000880000000100000000000000000000001300000000root/usr/share/man07070100007679000041ed000000000000000100000002438ad61300000000000000880000000100000000000000000000001800000000root/usr/share/man/man10707010000767a000081a4000000000000000200000001438ad31500003be6000000880000000100000000000000000000002200000000root/usr/share/man/man1/formail.1.\"if n .pl +(135i-\n(.pu) .de Id .ds Rv \\$3 .ds Dt \\$4 .. .Id $Id: formail.man,v 1.46 2001/08/04 06:08:17 guenther Exp $ .TH FORMAIL 1 \*(Dt BuGless .rn SH Sh .de SH .br .ne 11 .Sh "\\$1" .. .rn SS Ss .de SS .br .ne 10 .Ss "\\$1" .. .rn TP Tp .de TP .br .ne 9 .Tp \\$1 .. .rn RS Rs .de RS .na .nf .Rs .. .rn RE Re .de RE .Re .fi .ad .. .de Sx .PP .ne \\$1 .RS .. .de Ex .RE .PP .. .SH NAME formail \- mail (re)formatter .SH SYNOPSIS .na .B formail .RI [ "\fB\+\fPskip" ] .RI [ "\fB\-\fPtotal" ] .RB [ \-bczfrktedqBY ] .RB [ \-p .IR prefix ] .if n .ti +0.5i .RB [ \-D .IR "maxlen idcache" ] .if n .ti +0.5i .RB [ \-l .IR folder ] .if n .ti +0.5i .RB [ \-x .IR headerfield ] .RB [ \-X .IR headerfield ] .if n .ti +0.5i .RB [ \-a .IR headerfield ] .RB [ \-A .IR headerfield ] .if n .ti +0.5i .RB [ \-i .IR headerfield ] .RB [ \-I .IR headerfield ] .if n .ti +0.5i .RB [ \-u .IR headerfield ] .RB [ \-U .IR headerfield ] .if n .ti +0.5i .RB [ \-R .I oldfield .IR newfield ] .if n .ti +0.5i .RB [ \-n .RI [ maxprocs ]] .RB [ \-m .IR minfields ] .RB [ \-s .RI [ command .RI [ arg \&.\|.\|.\|]]] .br .B formail .B \-v .ad .SH DESCRIPTION .B formail is a filter that can be used to force mail into mailbox format, perform `From ' escaping, generate auto-replying headers, do simple header munging/extracting or split up a mailbox/digest/articles file. The mail/mailbox/article contents will be expected on stdin. .PP If formail is supposed to determine the sender of the mail, but is unable to find any, it will substitute `foo@bar'. .PP If formail is started without any command line options, it will force any mail coming from stdin into mailbox format and will escape .B all bogus `From ' lines with a `>'. .SH OPTIONS .TP 0.5i .B \-v Formail will print its version number and exit. .TP .B \-b Don't escape any bogus mailbox headers (i.e., lines starting with `From '). .TP .I "\fB\-p\fP prefix" Define a different quotation prefix. If unspecified it defaults to `>'. .TP .B \-Y Assume traditional Berkeley mailbox format, ignoring any .B Content-Length: fields. .TP .B \-c Concatenate continued fields in the header. Might be convenient when postprocessing mail with standard (line oriented) text utilities. .TP .B \-z Ensure a whitespace exists between field name and content. Zap fields which contain only a single whitespace character. Zap leading and trailing whitespace on fields extracted with .BR \-x . .TP .B \-f Force formail to simply pass along any non-mailbox format (i.e., don't generate a `From ' line as the first line). .TP .B \-r Generate an auto-reply header. This will normally throw away all the existing fields (except X-Loop:) in the original message, fields you wish to preserve need to be named using the .B \-i option. If you use this option in conjunction with .BR \-k , you can prevent the body from being `escaped' by also specifying .BR \-b . .TP .B \-k When generating the auto-reply header or when extracting fields, keep the body as well. .TP .B \-t Trust the sender to have used a valid return address in his header. This causes formail to select the .I header sender instead of the .I envelope sender for the reply. This option should be used when generating auto-reply headers from news articles or when the sender of the message is expecting a reply. .TP .B \-s The input will be split up into separate mail messages, and piped into a program one by one (a new program is started for every part). .B \-s has to be the last option specified, the first argument following it is expected to be the name of a program, any other arguments will be passed along to it. If you omit the program, then formail will simply concatenate the split mails on stdout again. See .BR FILENO . .TP .I "\fB\-n\fP [maxprocs]" Tell formail not to wait for every program to finish before starting the next (causes splits to be processed in parallel). .I Maxprocs optionally specifies an upper limit on the number of concurrently running processes. .TP .B \-e Do not require empty lines to be preceding the header of a new message (i.e., the messages could start on every line). .TP .B \-d Tell formail that the messages it is supposed to split need not be in strict mailbox format (i.e., allows you to split digests/articles or non-standard mailbox formats). This disables recognition of the .B Content-Length: field. .TP .B \-l folder Generate a log summary in the same style as procmail. This includes the entire "From " line, the Subject: header field, the folder, and the size of the message in bytes. The mailstat command can be used to summarize logs in this format. .TP .B \-B Makes formail assume that it is splitting up a BABYL rmail file. .TP .I "\fB\-m\fP minfields" Allows you to specify the number of consecutive headerfields formail needs to find before it decides it found the start of a new message, it defaults to 2. .TP .B \-q Tells formail to (still detect but) be quiet about write errors, duplicate messages and mismatched .B Content-Length: fields. This option is on by default, to make it display the messages use .BR \-q\- . .TP .I "\fB\-D\fP maxlen idcache" Formail will detect if the Message-ID of the current message has already been seen using an .I idcache file of approximately .I maxlen size. If not splitting, it will return success if a duplicate has been found. If splitting, it will not output duplicate messages. If used in conjunction with .BR \-r , formail will look at the .I mail address of the envelope sender .I instead at the Message-ID. .TP .I "\fB\-x\fP headerfield" Extract the contents of this .I headerfield from the header. Line continuations will be left intact; if you want the value on a single line then you'll also need the .B \-c option. .TP .I "\fB\-X\fP headerfield" Same as .BR \-x , but also preserves/includes the field name. .TP .I "\fB\-a\fP headerfield" Append a custom .I headerfield onto the header; but only if a similar field does not exist yet. If you specify either one of the field names .B Message-ID: or .B Resent-Message-ID: with no field contents, then formail will generate a unique message-ID for you. .TP .I "\fB\-A\fP headerfield" Append a custom .I headerfield onto the header in any case. .TP .I "\fB\-i\fP headerfield" Same as .BR \-A , except that any existing similar fields are renamed by prepending an ``Old-'' prefix. If .I headerfield consists only of a field-name, it will not be appended. .TP .I "\fB\-I\fP headerfield" Same as .BR \-i , except that any existing similar fields are simply removed. If .I headerfield consists only of a field-name, it effectively deletes the field. .TP .I "\fB\-u\fP headerfield" Make the first occurrence of this field unique, and thus delete all subsequent occurrences of it. .TP .I "\fB\-U\fP headerfield" Make the last occurrence of this field unique, and thus delete all preceding occurrences of it. .TP .I "\fB\-R\fP oldfield newfield" Renames all occurrences of the fieldname .I oldfield into .IR newfield . .TP .I "\fB\+\fPskip" Skip the first .I skip messages while splitting. .TP .I "\fB\-\fPtotal" Output at most .I total messages while splitting. .SH NOTES When renaming, removing, or extracting fields, partial fieldnames may be used to specify all fields that start with the specified value. .PP By default, when generating an auto-reply header procmail selects the envelope sender from the input message. This is correct for vacation messages and other automatic replies regarding the routing or delivery of the original message. If the sender is expecting a reply or the reply is being generated in response to the contents of the original message then the \-t option should be used. .PP .BR RFC822 , the original standard governing the format of Internet mail messages, did not specify whether Resent header fields (those that begin with `Resent\-', such as `Resent\-From:') should be considered when generating a reply. Since then, the recommended usage of the Resent headers has evolved to consider them as purely informational and not for use when generating a reply. This has been codified in .BR RFC2822 , the new Internet Message Format standard, which states in part: .IP Resent fields are used to identify a message as having been reintroduced into the transport system by a user. The purpose of using resent fields is to have the message appear to the final recipient as if it were sent directly by the original sender, with all of the original fields remaining the same.\|\|.\|.\|.\|\|They MUST NOT be used in the normal processing of replies or other such automatic actions on messages. .PP While formail now ignores Resent headers when generating header replies, versions of formail prior to 3.14 gave such headers a high precedence. If the old behavior is needed for established applications it can be specified by calling formail with the option `-a Resent-' in addition to the \-r and \-t options. This usage is deprecated and should not be used in new applications. .SH ENVIRONMENT .TP .5i .B FILENO While splitting, formail assigns the message number currently being output to this variable. By presetting FILENO, you can change the initial message number being used and the width of the zero-padded output. If FILENO is unset it will default to 000. If FILENO is non-empty and does not contain a number, FILENO generation is disabled. .SH EXAMPLES To split up a digest one usually uses: .RS formail +1 \-ds >>the_mailbox_of_your_choice .RE or .RS formail +1 \-ds procmail .RE .PP To remove all Received: fields from the header: .RS formail \-I Received: .RE .PP To remove all fields except From: and Subject: from the header: .RS formail \-k \-X From: \-X Subject: .RE .PP To supersede the Reply-To: field in a header you could use: .RS formail \-i "Reply-To: foo@bar" .RE .PP To convert a non-standard mailbox file into a standard mailbox file you can use: .RS formail \-ds >new_mailbox .RE .PP Or, if you have a very tolerant mailer: .RS formail \-a Date: \-ds >new_mailbox .RE .PP To extract the header from a message: .RS formail \-X "" .RE or .RS sed \-e '/^$/ q' .RE .PP To extract the body from a message: .RS formail \-I "" .RE or .RS sed \-e '1,/^$/ d' .RE .SH "SEE ALSO" .na .nh .BR mail (1), .BR binmail (1), .BR sendmail (8), .BR procmail (1), .BR sed (1), .BR sh (1), .BR RFC822 , .BR RFC2822 , .B RFC1123 .hy .ad .SH DIAGNOSTICS .TP 2.3i Can't fork Too many processes on this machine. .TP Content-Length: field exceeds actual length by nnn bytes The Content-Length: field in the header specified a length that was longer than the actual body. This causes this message to absorb a number of subsequent messages following it in the same mailbox. .TP Couldn't write to stdout The program that formail was trying to pipe into didn't accept all the data formail sent to it; this diagnostic can be suppressed by the .B \-q option. .TP Duplicate key found: x The Message-ID or sender x in this message was found in the idcache; this diagnostic can be suppressed by the .B \-q option. .TP Failed to execute "x" Program not in path, or not executable. .TP File table full Too many open files on this machine. .TP Invalid field-name: "x" The specified field-name "x" contains control characters, or cannot be a partial field-name for this option. .SH WARNINGS You can save yourself and others a lot of grief if you try to avoid using this autoreply feature on mails coming through mailinglists. Depending on the format of the incoming mail (which in turn depends on both the original sender's mail agent and the mailinglist setup) formail could decide to generate an autoreply header that replies to the list. .PP In the tradition of UN*X utilities, formail will do exactly what you ask it to, even if it results in a .RB non- RFC822 compliant message. In particular, formail will let you generate header fields whose name ends in a space instead of a colon. While this is correct for the leading `From ' line, that line is not a header field so much as the message separator for the mbox mailbox format. Multiple occurrences of such a line or any other colonless header field will be considered by many mail programs, including formail itself, as the beginning of a new message. Others will consider the message to be corrupt. Because of this, you should not use the .B \-i option with the `From ' line as the resulting renamed line, `Old-From ', will probably not do what you want it to. If you want to save the original `From ' line, rename it with the .B \-R option to a legal header field such as `X-From_:'. .SH BUGS When formail has to generate a leading `From ' line it normally will contain the current date. If formail is given the option `\-a Date:', it will use the date from the `Date:' field in the header (if present). However, since formail copies it verbatim, the format will differ from that expected by most mail readers. .PP If formail is instructed to delete or rename the leading `From ' line, it will not automatically regenerate it as usual. To force formail to regenerate it in this case, include \fB\-a 'From '\fP. .PP If formail is not called as the first program in a pipe and it is told to split up the input in several messages, then formail will not terminate until the program it receives the input from closes its output or terminates itself. .PP If formail is instructed to generate an autoreply mail, it will .B never put more than one address in the `To:' field. .SH MISCELLANEOUS Formail is eight-bit clean. .PP When formail has to determine the sender's address, every .B RFC822 conforming mail address is allowed. Formail will always strip down the address to its minimal form (deleting excessive comments and whitespace). .PP The regular expression that is used to find `real' postmarks is: .RS "\en\enFrom [\et ]*[^\et\en ]+[\et ]+[^\en\et ]" .RE .PP If a .B Content-Length: field is found in a header, formail will copy the number of specified bytes in the body verbatim before resuming the regular scanning for message boundaries (except when splitting digests or Berkeley mailbox format is assumed). .PP Any header lines immediately following the leading `From ' line that start with `>From ' are considered to be a continuation of the `From ' line. If instructed to rename the `From ' line, formail will change each leading `>' into a space, thereby transforming those lines into normal .B RFC822 continuations. .SH NOTES Calling up formail with the \-h or \-? options will cause it to display a command-line help page. .Sh SOURCE This program is part of the .I procmail mail-processing-package (v3.22) available at http://www.procmail.org/ or ftp.procmail.org in .BR pub/procmail/ . .Sh MAILINGLIST There exists a mailinglist for questions relating to any program in the procmail package: .RS .RS for submitting questions/answers. .RE .RS for subscription requests. .RE .PP .RE If you would like to stay informed about new versions and official patches send a subscription request to .RS procmail-announce-request@procmail.org .RE (this is a readonly list). .SH AUTHORS Stephen R. van den Berg .RS .RE Philip A. Guenther .RS .RE .\".if n .pl -(\n(.tu-1i) .rm SH .rn Sh SH .rm SS .rn Ss SS .rm TP .rn Tp TP .rm RS .rn Rs RS .rm RE .rn Re RE 0707010000767b000081a4000000000000000200000001438ad31500001aeb000000880000000100000000000000000000002300000000root/usr/share/man/man1/lockfile.1.\"if n .pl +(135i-\n(.pu) .de Id .ds Rv \\$3 .ds Dt \\$4 .. .Id $Id: lockfile.man,v 1.18 2001/06/23 08:22:25 guenther Exp $ .TH LOCKFILE 1 \*(Dt BuGless .rn SH Sh .de SH .br .ne 11 .Sh "\\$1" .. .rn SS Ss .de SS .br .ne 10 .Ss "\\$1" .. .rn TP Tp .de TP .br .ne 9 .Tp \\$1 .. .rn RS Rs .de RS .na .nf .Rs .. .rn RE Re .de RE .Re .fi .ad .. .de Sx .PP .ne \\$1 .RS .. .de Ex .RE .PP .. .na .SH NAME lockfile \- conditional semaphore-file creator .SH SYNOPSIS .B lockfile .I "\fB\-\fPsleeptime" | .I "\fB\-r \fPretries" | .if n .ti +0.5i .I "\fB\-l \fPlocktimeout" | .I "\fB\-s \fPsuspend" | .B "\-!" | .B "\-ml" | .B "\-mu" | .I filename \&.\|.\|. .ad .SH DESCRIPTION .B lockfile can be used to create one or more .I semaphore .IR files . If lockfile can't create all the specified files (in the specified order), it waits .I sleeptime (defaults to 8) seconds and retries the last file that didn't succeed. You can specify the number of .I retries to do until failure is returned. If the number of .I retries is \-1 (default, i.e., .BR \-r\-1 ) lockfile will retry forever. .PP If the number of .I retries expires before all files have been created, lockfile returns failure and removes all the files it created up till that point. .PP Using lockfile as the condition of a loop in a shell script can be done easily by using the .B \-! flag to invert the exit status. To prevent infinite loops, failures for any reason other than the lockfile already existing are not inverted to success but rather are still returned as failures. .PP All flags can be specified anywhere on the command line, they will be processed when encountered. The command line is simply parsed from left to right. .PP All files created by lockfile will be read-only, and therefore will have to be removed with .B rm .BR \-f . .PP If you specify a .I locktimeout then a lockfile will be removed by force after locktimeout seconds have passed since the lockfile was last modified/created (most likely by some other program that unexpectedly died a long time ago, and hence could not clean up any leftover lockfiles). Lockfile is clock skew immune. After a lockfile has been removed by force, a suspension of .I suspend seconds (defaults to 16) is taken into account, in order to prevent the inadvertent immediate removal of any newly created lockfile by another program (compare .BR SUSPEND in .BR procmail (1)). .SS "Mailbox locks" If the permissions on the system mail spool directory allow it, or if lockfile is suitably setgid, it will be able to lock and unlock your system mailbox by using the options .B "\-ml" and .B "\-mu" respectively. .SH EXAMPLES Suppose you want to make sure that access to the file "important" is serialised, i.e., no more than one program or shell script should be allowed to access it. For simplicity's sake, let's suppose that it is a shell script. In this case you could solve it like this: .RS \&.\|.\|. lockfile important.lock \&.\|.\|. access_"important"_to_your_hearts_content \&.\|.\|. rm \-f important.lock \&.\|.\|. .RE Now if all the scripts that access "important" follow this guideline, you will be assured that at most one script will be executing between the `lockfile' and the `rm' commands. .SH ENVIRONMENT .TP 2.3i .B LOGNAME used as a hint to determine the invoker's loginname .SH FILES .TP 2.3i .B /etc/passwd to verify and/or correct the invoker's loginname (and to find out his HOME directory, if needed) .TP .B /var/mail/$LOGNAME.lock lockfile for the system mailbox, the environment variables present in here will not be taken from the environment, but will be determined by looking in /etc/passwd .SH "SEE ALSO" .na .nh .BR rm (1), .BR mail (1), .BR binmail (1), .BR sendmail (8), .BR procmail (1) .hy .ad .SH DIAGNOSTICS .TP 2.3i Filename too long, .\|.\|. Use shorter filenames. .TP Forced unlock denied on "x" No write permission in the directory where lockfile "x" resides, or more than one lockfile trying to force a lock at exactly the same time. .TP Forcing lock on "x" Lockfile "x" is going to be removed by force because of a timeout (compare .BR LOCKTIMEOUT in .BR procmail (1)). .TP Out of memory, .\|.\|. The system is out of swap space. .TP Signal received, .\|.\|. Lockfile will remove anything it created till now and terminate. .TP Sorry, .\|.\|. The .I retries limit has been reached. .TP Truncating "x" and retrying lock "x" does not seem to be a valid filename. .TP Try praying, .\|.\|. Missing subdirectories or insufficient privileges. .SH BUGS Definitely less than one. .SH WARNINGS The behavior of the .B \-! flag, while useful, is not necessarily intuitive or consistent. When testing lockfile's return value, shell script writers should consider carefully whether they want to use the .B \-! flag, simply reverse the test, or do a switch on the exact exitcode. In general, the .B \-! flag should only be used when lockfile is the conditional of a loop. .SH MISCELLANEOUS Lockfile is NFS-resistant and eight-bit clean. .SH NOTES Calling up lockfile with the \-h or \-? options will cause it to display a command-line help page. Calling it up with the \-v option will cause it to display its version information. .PP Multiple .B \-! flags will toggle the return status. .PP Since flags can occur anywhere on the command line, any filename starting with a '-' has to be preceded by './'. .PP The number of .I retries will not be reset when any following file is being created (i.e., they are simply used up). It can, however, be reset by specifying .RI \-r newretries after every file on the command line. .PP Although files with any name can be used as lockfiles, it is common practice to use the extension `.lock' to lock mailfolders (it is appended to the mailfolder name). In case one does not want to have to worry about too long filenames and does not have to conform to any other lockfilename convention, then an excellent way to generate a lockfilename corresponding to some already existing file is by taking the prefix `lock.' and appending the i-node number of the file which is to be locked. .Sh SOURCE This program is part of the .I procmail mail-processing-package (v3.22) available at http://www.procmail.org/ or ftp.procmail.org in .BR pub/procmail/ . .Sh MAILINGLIST There exists a mailinglist for questions relating to any program in the procmail package: .RS .RS for submitting questions/answers. .RE .RS for subscription requests. .RE .PP .RE If you would like to stay informed about new versions and official patches send a subscription request to .RS procmail-announce-request@procmail.org .RE (this is a readonly list). .SH AUTHORS Stephen R. van den Berg .RS .RE Philip A. Guenther .RS .RE .\".if n .pl -(\n(.tu-1i) .rm SH .rn Sh SH .rm SS .rn Ss SS .rm TP .rn Tp TP .rm RS .rn Rs RS .rm RE .rn Re RE 0707010000767c000081a4000000000000000200000001438ad31500006d0a000000880000000100000000000000000000002300000000root/usr/share/man/man1/procmail.1.\"if n .pl +(135i-\n(.pu) .de Id .ds Rv \\$3 .ds Dt \\$4 .. .Id $Id: procmail.man,v 1.91 2001/08/27 08:44:04 guenther Exp $ .TH PROCMAIL 1 \*(Dt BuGless .rn SH Sh .de SH .br .ne 11 .Sh "\\$1" .. .rn SS Ss .de SS .br .ne 10 .Ss "\\$1" .. .rn TP Tp .de TP .br .ne 9 .Tp \\$1 .. .rn RS Rs .de RS .na .nf .Rs .. .rn RE Re .de RE .Re .fi .ad .. .de Sx .PP .ne \\$1 .RS .. .de Ex .RE .PP .. .na .SH NAME procmail \- autonomous mail processor .SH SYNOPSIS .B procmail .RB [ \-ptoY ] .RB [ "\-f \fIfromwhom\fP" ] .if n .ti +0.5i .RI [ "parameter\fB=\fPvalue " | " rcfile" ] \&.\|.\|. .br .B procmail .RB [ \-toY ] .RB [ "\-f \fIfromwhom\fP" ] .RB [ "\-a \fIargument\fP" ] \&.\|.\|. .if n .ti +0.5i .B \-d .I recipient \&.\|.\|. .br .B procmail .RB [ \-ptY ] .B \-m .RI [ "parameter\fB=\fPvalue" ] \&.\|.\|. .I rcfile .if n .ti +0.5i .RI [ argument ] \&.\|.\|..br .B procmail .B \-v .ad .SH DESCRIPTION For a quick start, see .B NOTES at the end. .PP .B Procmail should be invoked automatically over the .B .forward file mechanism as soon as mail arrives. Alternatively, when installed by a system administrator, it can be invoked from within the mailer immediately. When invoked, it first sets some environment variables to default values, reads the mail message from stdin until an EOF, separates the body from the header, and then, if no command line arguments are present, it starts to look for a file named .BR $HOME/.procmailrc . According to the processing recipes in this file, the mail message that just arrived gets distributed into the right folder (and more). If no rcfile is found, or processing of the rcfile falls off the end, procmail will store the mail in the default system mailbox. .PP If no rcfiles and no .B \-p have been specified on the command line, procmail will, prior to reading $HOME/.procmailrc, interpret commands from .B /etc/procmailrc (if present). Care must be taken when creating /etc/procmailrc, because, if circumstances permit, it will be executed with root privileges (contrary to the $HOME/.procmailrc file of course). .PP If running suid root or with root privileges, procmail will be able to perform as a functionally enhanced, backwards compatible mail delivery agent. .PP Procmail can also be used as a general purpose mail filter, i.e., provisions have been made to enable procmail to be invoked in a special sendmail rule. .PP The rcfile format is described in detail in the .BR procmailrc (5) man page. .PP The weighted scoring technique is described in detail in the .BR procmailsc (5) man page. .PP Examples for rcfile recipes can be looked up in the .BR procmailex (5) man page. .SS Signals .TP 1.2i .B TERMINATE Terminate prematurely and requeue the mail. .TP .B HANGUP Terminate prematurely and bounce the mail. .TP .B INTERRUPT Terminate prematurely and bounce the mail. .TP .B QUIT Terminate prematurely and silently lose the mail. .TP .B ALARM Force a timeout (see .BR TIMEOUT). .TP .B USR1 Equivalent to a .BR VERBOSE =off. .TP .B USR2 Equivalent to a .BR VERBOSE =on. .SH OPTIONS .TP 0.5i .B \-v Procmail will print its version number, display its compile time configuration and exit. .TP .B \-p Preserve any old environment. Normally procmail clears the environment upon startup, except for the value of TZ. However, in any case: any default values will override any preexisting environment variables, i.e., procmail will not pay any attention to any predefined environment variables, it will happily overwrite them with its own defaults. For the list of environment variables that procmail will preset see the .BR procmailrc (5) man page. If both \-p and \-m are specified, the list of preset environment variables shrinks to just: LOGNAME, HOME, SHELL, ORGMAIL and MAILDIR. .TP .B \-t Make procmail fail softly, i.e., if procmail cannot deliver the mail to any of the destinations you gave, the mail will not bounce, but will return to the mailqueue. Another delivery-attempt will be made at some time in the future. .TP .I "\fB\-f\fP fromwhom" Causes procmail to regenerate the leading `From ' line with .I fromwhom as the sender (instead of \-f one could use the alternate and obsolete \-r). If .I fromwhom consists merely of a single `-', then procmail will only update the timestamp on the `From ' line (if present, if not, it will generate a new one). .TP .B \-o Instead of allowing anyone to generate `From ' lines, simply override the fakes. .TP .B \-Y Assume traditional Berkeley mailbox format, ignore any .B Content-Length: fields. .TP .I "\fB\-a\fP argument" This will set $1 to be equal to .IR argument . Each succeeding .I "\fB\-a\fP argument" will set the next number variable ($2, $3, etc). It can be used to pass meta information along to procmail. This is typically done by passing along the $@x information from the sendmail mailer rule. .TP .I "\fB\-d\fP recipient .\|.\|." This turns on explicit delivery mode, delivery will be to the local user .IR recipient . This, of course, only is possible if procmail has root privileges (or if procmail is already running with the recipient's euid and egid). Procmail will setuid to the intended recipients and delivers the mail as if it were invoked by the recipient with no arguments (i.e., if no rcfile is found, delivery is like ordinary mail). This option is incompatible with .BR \-p . .TP .B \-m Turns procmail into a general purpose mail filter. In this mode one rcfile must be specified on the command line. After the rcfile, procmail will accept an unlimited number of arguments. If the rcfile is an absolute path starting with .B /etc/procmailrcs/ without backward references (i.e. the parent directory cannot be mentioned) procmail will, only if no security violations are found, take on the identity of the owner of the rcfile (or symbolic link). For some advanced usage of this option you should look in the .B EXAMPLES section below..SH ARGUMENTS Any arguments containing an '=' are considered to be environment variable assignments, they will .I all be evaluated after the default values have been assigned and before the first rcfile is opened. .PP Any other arguments are presumed to be rcfile paths (either absolute, or if they start with `./' relative to the current directory; .B any other relative path is relative to $HOME, unless the .B \-m option has been given, in which case all relative paths are relative to the current directory); procmail will start with the first one it finds on the command line. The following ones will only be parsed if the preceding ones have a not matching HOST-directive entry, or in case they should not exist. .PP If no rcfiles are specified, it looks for .BR $HOME/.procmailrc . If not even that can be found, processing will continue according to the default settings of the environment variables and the ones specified on the command line. .SH EXAMPLES Examples for rcfile recipes can be looked up in the .BR procmailex (5) man page. A small sample rcfile can be found in the .B NOTES section below. .PP Skip the rest of this EXAMPLES section unless you are a system administrator who is vaguely familiar with sendmail.cf syntax. .PP The .B \-m option is typically used when procmail is called from within a rule in the sendmail.cf file. In order to be able to do this it is convenient to create an extra `procmail' mailer in your sendmail.cf file (in addition to the perhaps already present `local' mailer that starts up procmail). To create such a `procmail' mailer I'd suggest something like: .Sx 2 Mprocmail, P=/usr/bin/procmail, F=mSDFMhun, S=11, R=21, A=procmail \-m $h $g $u .Ex This enables you to use rules like the following (most likely in ruleset 0) to filter mail through the procmail mailer (please note the leading tab to continue the rule, and the tab to separate the comments): .Sx 4 R$*<@some.where>$* $#procmail $@/etc/procmailrcs/some.rc $:$1@some.where.procmail$2 R$*<@$*.procmail>$* $1<@$2>$3 Already filtered, map back .Ex And /etc/procmailrcs/some.rc could be as simple as: .Sx 9 SENDER = "<$1>" # fix for empty sender addresses SHIFT = 1 # remove it from $@ :0 # sink all junk mail * ^Subject:.*junk /dev/null :0 w # pass along all other mail ! \-oi \-f "$SENDER" "$@" .Ex Do watch out when sending mail from within the /etc/procmailrcs/some.rc file, if you send mail to addresses which match the first rule again, you could be creating an endless mail loop. .SH FILES .TP 2.3i .B /etc/passwd to set the recipient's LOGNAME, HOME and SHELL variable defaults .TP .B /var/mail/$LOGNAME system mailbox; both the system mailbox and the immediate directory it is in will be created every time procmail starts and either one is not present .TP .B /etc/procmailrc initial global rcfile .TP .B /etc/procmailrcs/ special privileges path for rcfiles .TP .B $HOME/.procmailrc default rcfile .TP .B /var/mail/$LOGNAME.lock lockfile for the system mailbox (not automatically used by procmail, unless $DEFAULT equals /var/mail/$LOGNAME and procmail is delivering to $DEFAULT) .TP .B /usr/lib/sendmail default mail forwarder .TP .B _????`hostname` temporary `unique' zero-length files created by procmail .SH "SEE ALSO" .na .nh .BR procmailrc (5), .BR procmailsc (5), .BR procmailex (5), .BR sh (1), .BR csh (1), .BR mail (1), .BR mailx (1), .BR binmail (1), .BR uucp (1), .BR aliases (5), .BR sendmail (8), .BR egrep (1), .BR grep (1), .BR biff (1), .BR comsat (8), .BR lockfile (1), .BR formail (1), .BR cron (1) .hy .ad .SH DIAGNOSTICS .TP 2.3i Autoforwarding mailbox found The system mailbox had its suid or sgid bit set, procmail terminates with EX_NOUSER assuming that this mailbox must not be delivered to. .TP Bad substitution of "x" Not a valid environment variable name specified. .TP Closing brace unexpected There was no corresponding opening brace (nesting block). .TP Conflicting options Not all option combinations are useful .TP Conflicting x suppressed Flag x is not compatible with some other flag on this recipe. .TP Couldn't create "x" The system mailbox was missing and could not/will not be created. .TP Couldn't create maildir part "x" The maildir folder "x" is missing one or more required subdirectories and procmail could not create them. .TP Couldn't create or rename temp file "x" An error occurred in the mechanics of delivering to the directory folder "x". .TP Couldn't determine implicit lockfile from "x" There were no `>>' redirectors to be found, using simply `$LOCKEXT' as locallockfile. .TP Couldn't read "x" Procmail was unable to open an rcfile or it was not a regular file, or procmail couldn't open an MH directory to find the highest numbered file. .TP Couldn't unlock "x" Lockfile was already gone, or write permission to the directory where the lockfile is has been denied. .TP Deadlock attempted on "x" The locallockfile specified on this recipe is equal to a still active $LOCKFILE. .TP Denying special privileges for "x" Procmail will not take on the identity that comes with the rcfile because a security violation was found (e.g. .B \-p or variable assignments on the command line) or procmail had insufficient privileges to do so. .TP Descriptor "x" was not open As procmail was started, stdin, stdout or stderr was not connected (possibly an attempt to subvert security) .TP Enforcing stricter permissions on "x" The system mailbox of the recipient was found to be unsecured, procmail secured it. .TP Error while writing to "x" Nonexistent subdirectory, no write permission, pipe died or disk full. .TP Exceeded LINEBUF Buffer overflow detected, LINEBUF was too small, PROCMAIL_OVERFLOW has been set. .TP MAILDIR is not an absolute path .TP MAILDIR path too long .TP ORGMAIL is not an absolute path .TP ORGMAIL path too long .TP default rcfile is not an absolute path .TP default rcfile path too long The specified item's full path, when expanded, was longer than LINEBUF or didn't start with a file separator. .TP Excessive output quenched from "x" The program or filter "x" tried to produce too much output for the current LINEBUF, the rest was discarded and PROCMAIL_OVERFLOW has been set. .TP Extraneous x ignored The action line or other flags on this recipe makes flag x meaningless. .TP Failed forking "x" Process table is full (and NORESRETRY has been exhausted). .TP Failed to execute "x" Program not in path, or not executable. .TP Forced unlock denied on "x" No write permission in the directory where .B lockfile "x" resides, or more than one procmail trying to force a lock at exactly the same time. .TP Forcing lock on "x" .B Lockfile "x" is going to be removed by force because of a timeout (see also: .BR LOCKTIMEOUT ). .TP Incomplete recipe The start of a recipe was found, but it stranded in an EOF. .TP Insufficient privileges Procmail either needs root privileges, or must have the right (e)uid .B and (e)gid to run in delivery mode. The mail will bounce. .TP Invalid regexp "x" The regular expression "x" contains errors (most likely some missing or extraneous parens). .TP Kernel-lock failed While trying to use the kernel-supported locking calls, one of them failed (usually indicates an OS error), procmail ignores this error and proceeds. .TP Kernel-unlock failed See above. .TP Lock failure on "x" Can only occur if you specify some real weird (and illegal) lockfilenames or if the .B lockfile could not be created because of insufficient permissions or nonexistent subdirectories. .TP Lost "x" Procmail tried to clone itself but could not find back rcfile "x" (it either got removed or it was a relative path and you changed directory since procmail opened it last time). .TP Missing action The current recipe was found to be incomplete. .TP Missing closing brace A nesting block was started, but never finished. .TP Missing name The \-f option needs an extra argument. .TP Missing argument You specified the \-a option but forgot the argument. .TP Missing rcfile You specified the \-m option, procmail expects the name of an rcfile as argument. .TP Missing recipient You specified the \-d option or called procmail under a different name, it expects one or more recipients as arguments. .TP No space left to finish writing "x" The filesystem containing "x" does not have enough free space to permit delivery of the message to the file. .TP Out of memory The system is out of swap space (and NORESRETRY has been exhausted). .TP Processing continued The unrecognised options on the command line are ignored, proceeding as usual. .TP Program failure (nnn) of "x" Program that was started by procmail returned nnn instead of EXIT_SUCCESS (=0); if nnn is negative, then this is the signal the program died on. .TP Quota exceeded while writing "x" The filesize quota for the recipient on the filesystem containing "x" does not permit delivering the message to the file. .TP Renaming bogus "x" into "x" The system mailbox of the recipient was found to be bogus, procmail performed evasive actions. .TP Rescue of unfiltered data succeeded/failed A filter returned unsuccessfully, procmail tried to get back the original text. .TP Skipped: "x" Couldn't do anything with "x" in the rcfile (syntax error), ignoring it. .TP Suspicious rcfile "x" The owner of the rcfile was not the recipient or root, the file was world writable, or the directory that contained it was world writable, or this was the default rcfile ($HOME/.procmailrc) and either it was group writable or the directory that contained it was group writable (the rcfile was not used). .TP Terminating prematurely whilst waiting for .\|.\|. Procmail received a signal while it was waiting for .\|.\|. .TP Timeout, terminating "x" Timeout has occurred on program or filter "x". .TP Timeout, was waiting for "x" Timeout has occurred on program, filter or file "x". If it was a program or filter, then it didn't seem to be running anymore. .TP Truncated file to former size The file could not be delivered to successfully, so the file was truncated to its former size. .TP Truncating "x" and retrying lock "x" does not seem to be a valid filename or the file is not empty. .TP Unable to treat as directory "x" Either the suffix on "x" would indicate that it should be an MH or maildir folder, or it was listed as an second folder into which to link, but it already exists and is not a directory. .TP Unexpected EOL Missing closing quote, or trying to escape EOF. .TP Unknown user "x" The specified recipient does not have a corresponding uid. .SH "EXTENDED DIAGNOSTICS" Extended diagnostics can be turned on and off through setting the VERBOSE variable. .TP 2.3i [pid] time & date Procmail's pid and a timestamp. Generated whenever procmail logs a diagnostic and at least a second has elapsed since the last timestamp. .TP Acquiring kernel-lock Procmail now tries to kernel-lock the most recently opened file (descriptor). .TP Assigning "x" Environment variable assignment. .TP Assuming identity of the recipient, VERBOSE=off Dropping all privileges (if any), implicitly turns off extended diagnostics. .TP Bypassed locking "x" The mail spool directory was not accessible to procmail, it relied solely on kernel locks. .TP Executing "x" Starting program "x". If it is started by procmail directly (without an intermediate shell), procmail will show where it separated the arguments by inserting commas. .TP HOST mismatched "x" This host was called "x", HOST contained something else. .TP Locking "x" Creating lockfile "x". .TP Linking to "x" Creating a hardlink between directory folders. .TP Match on "x" Condition matched. .TP Matched "x" Assigned "x" to .BR MATCH . .TP No match on "x" Condition didn't match, recipe skipped. .TP Non-zero exitcode (nnn) by "x" Program that was started by procmail as a condition or as the action of a recipe with the `W' flag returned nnn instead of EXIT_SUCCESS (=0); the usage indicates that this is not an entirely unexpected condition. .TP Notified comsat: "$LOGNAME@offset:file" Sent comsat/biff a notice that mail arrived for user $LOGNAME at `offset' in `file'. .TP Opening "x" Opening file "x" for appending. .TP Rcfile: "x" Rcfile changed to "x". .TP Reiterating kernel-lock While attempting several locking methods, one of these failed. Procmail will reiterate until they all succeed in rapid succession. .TP Score: added newtotal "x" This condition scored `added' points, which resulted in a `newtotal' score. .TP Unlocking "x" Removing lockfile "x" again. .SH WARNINGS You should create a shell script that uses .BR lockfile (1) before invoking your mail shell on any mailbox file other than the system mailbox (unless of course, your mail shell uses the same lockfiles (local or global) you specified in your rcfile). .PP In the unlikely event that you absolutely need to kill procmail before it has finished, first try and use the regular kill command (i.e., .I not kill \-9, see the subsection .I Signals for suggestions), otherwise some .I lockfiles might not get removed. .PP Beware when using the .B \-t option, if procmail repeatedly is unable to deliver the mail (e.g., due to an incorrect rcfile), the system mailqueue could fill up. This could aggravate both the local postmaster and other users. .PP The .B /etc/procmailrc file might be executed with root privileges, so be very careful of what you put in it. .B SHELL will be equal to that of the current recipient, so if procmail has to invoke the shell, you'd better set it to some safe value first. See also\h'-\w' 'u' : .BR DROPPRIVS . .PP Keep in mind that if .BR chown (1) is permitted on files in .BR /etc/procmailrcs/ , that they can be chowned to root (or anyone else) by their current owners. For maximum security, make sure this directory is .I executable to root only. .PP Procmail is not the proper tool for sharing one mailbox among many users, such as when you have one POP account for all mail to your domain. It can be done if you manage to configure your MTA to add some headers with the envelope recipient data in order to tell Procmail who a message is for, but this is usually not the right thing to do. Perhaps you want to investigate if your MTA offers `virtual user tables', or check out the `multidrop' facility of Fetchmail. .SH BUGS After removing a lockfile by force, procmail waits $SUSPEND seconds before creating a new lockfile so that another process that decides to remove the stale lockfile will not remove the newly created lock by mistake. .PP Procmail uses the regular TERMINATE signal to terminate any runaway filter, but it does not check if the filter responds to that signal and it only sends it to the filter itself, not to any of the filter's children. .PP A continued .B Content-Length: field is not handled correctly. .PP The embedded newlines in a continued header should be skipped when matching instead of being treated as a single space as they are now. .SH MISCELLANEOUS If there is an existing .B Content-Length: field in the header of the mail and the .B \-Y option is not specified, procmail will trim the field to report the correct size. Procmail does not change the fieldwidth. .PP If there is no .B Content-Length: field or the .B \-Y option has been specified and procmail appends to regular mailfolders, any lines in the body of the message that look like postmarks are prepended with `>' (disarms bogus mailheaders). The regular expression that is used to search for these postmarks is: .RS `\\nFrom ' .RE .PP If the destination name used in explicit delivery mode is not in /etc/passwd, procmail will proceed as if explicit delivery mode was not in effect. If not in explicit delivery mode and should the uid procmail is running under, have no corresponding /etc/passwd entry, then HOME will default to /, LOGNAME will default to #uid, SHELL will default to /bin/sh, and ORGMAIL will default to /tmp/dead.letter. .PP When in explicit delivery mode, procmail will generate a leading `From ' line if none is present. If one is already present procmail will leave it intact. If procmail is not invoked with one of the following user or group ids\h'-\w' 'u' : root, daemon, uucp, mail, x400, network, list, slist, lists or news, but still has to generate or accept a new `From ' line, it will generate an additional `>From ' line to help distinguish fake mails. .PP For security reasons procmail will only use an absolute or $HOME-relative rcfile if it is owned by the recipient or root, not world writable, and the directory it is contained in is not world writable. The $HOME/.procmailrc file has the additional constraint of not being group-writable or in a group-writable directory. .PP If /var/mail/$LOGNAME is a bogus mailbox (i.e., does not belong to the recipient, is unwritable, is a symbolic link or is a hard link), procmail will upon startup try to rename it into a file starting with `BOGUS.$LOGNAME.' and ending in an inode-sequence-code. If this turns out to be impossible, .B ORGMAIL will have .I no initial value, and hence will inhibit delivery without a proper rcfile. .PP If /var/mail/$LOGNAME already is a valid mailbox, but has got too loose permissions on it, procmail will correct this. To prevent procmail from doing this make sure the u+x bit is set. .PP When delivering to directories, MH folders, or maildir folders, you .B don't need to use lockfiles to prevent several concurrently running procmail programs from messing up. .PP Delivering to MH folders is slightly more time consuming than delivering to normal directories or mailboxes, because procmail has to search for the next available number (instead of having the filename immediately available). .PP On general failure procmail will return EX_CANTCREAT, unless option .B \-t is specified, in which case it will return EX_TEMPFAIL. .PP To make `egrepping' of headers more consistent, procmail concatenates all continued header fields; but only internally. When delivering the mail, line breaks will appear as before. .PP If procmail is called under a name not starting with `procmail' (e.g., if it is linked to another name and invoked as such), it comes up in explicit delivery mode, and expects the recipients' names as command line arguments (as if \-d had been specified). .PP Comsat/biff notifications are done using udp. They are sent off once when procmail generates the regular logfile entry. The notification messages have the following extended format (or as close as you can get when final delivery was not to a file): .RS $LOGNAME@offset_of_message_in_mailbox\h'-\w' 'u' :absolute_path_to_mailbox .RE .PP Whenever procmail itself opens a file to deliver to, it consistently uses the following kernel locking strategies\h'-\w' 'u' : .BR fcntl (2) and .BR lockf (3). .PP Procmail is NFS-resistant and eight-bit clean. .br .ne 11 .SH NOTES Calling up procmail with the \-h or \-? options will cause it to display a command-line help and recipe flag quick-reference page. .PP There exists an excellent newbie FAQ about mailfilters (and procmail in particular); it is maintained by Nancy McGough and can be obtained by sending a mail to mail-server@rtfm.mit.edu with the following in the body: .RS send usenet/news.answers/mail/filtering-faq .RE .PP If procmail is .I not installed globally as the default mail delivery agent (ask your system administrator), you have to make sure it is invoked when your mail arrives. In this case your $HOME/.forward (beware, it .B has to be world readable) file should contain the line below. Be sure to include the single and double quotes, and unless you know your site to be running smrsh (the SendMail Restricted SHell), it must be an .I absolute path.The \efB#\efP\efIYOUR_USERNAME\efP is not actually a parameter that is required by procmail, in fact, it will be discarded by sh before procmail ever sees it; it is however a necessary kludge against overoptimising sendmail programs\h'-\w' 'u' : .PP .na .nf "\h'-\w' 'u' |IFS=' '&&p=/usr/bin/procmail&&test -f $p&&exec $p -Yf-\h'-\w' 'u' |\h'-\w' 'u' |exit 75 \fB#\fP\fIYOUR_USERNAME\fP" .fi .ad .PP Procmail can also be invoked to postprocess an already filled system mailbox. This can be useful if you don't want to or can't use a $HOME/.forward file (in which case the following script could periodically be called from within .BR cron (1), or whenever you start reading mail): .Sx 17 #!/bin/sh ORGMAIL=/var/mail/$LOGNAME if cd $HOME && test \-s $ORGMAIL && lockfile \-r0 \-l1024 .newmail.lock 2>/dev/null then trap "rm \-f .newmail.lock" 1 2 3 13 15 umask 077 lockfile \-l1024 \-ml cat $ORGMAIL >>.newmail && cat /dev/null >$ORGMAIL lockfile \-mu formail \-s procmail <.newmail && rm \-f .newmail rm \-f .newmail.lock fi exit 0 .Ex .ne 14 .SS "A sample small $HOME/.procmailrc:" .na .nf PATH=/bin:/usr/bin:/usr/bin MAILDIR=$HOME/Mail #you'd better make sure it exists DEFAULT=$MAILDIR/mbox #completely optional LOGFILE=$MAILDIR/from #recommended :0: * ^From.*berg from_me :0 * ^Subject:.*Flame /dev/null .fi .ad .PP Other examples for rcfile recipes can be looked up in the .BR procmailex (5) man page. .Sh SOURCE This program is part of the .I procmail mail-processing-package (v3.22) available at http://www.procmail.org/ or ftp.procmail.org in .BR pub/procmail/ . .Sh MAILINGLIST There exists a mailinglist for questions relating to any program in the procmail package: .RS .RS for submitting questions/answers. .RE .RS for subscription requests. .RE .PP .RE If you would like to stay informed about new versions and official patches send a subscription request to .RS procmail-announce-request@procmail.org .RE (this is a readonly list). .SH AUTHORS Stephen R. van den Berg .RS .RE Philip A. Guenther .RS .RE .\".if n .pl -(\n(.tu-1i) .rm SH .rn Sh SH .rm SS .rn Ss SS .rm TP .rn Tp TP .rm RS .rn Rs RS .rm RE .rn Re RE 0707010000a260000041ed000000000000000100000002438ad61300000000000000880000000100000000000000000000001800000000root/usr/share/man/man50707010000a263000081a4000000000000000200000001438ad319000041da000000880000000100000000000000000000002500000000root/usr/share/man/man5/procmailex.5.\"if n .pl +(135i-\n(.pu) .de Id .ds Rv \\$3 .ds Dt \\$4 .. .Id $Id: procmailex.man,v 1.54 2001/08/04 06:08:20 guenther Exp $ .TH PROCMAILEX 5 \*(Dt BuGless .rn SH Sh .de SH .br .ne 11 .Sh "\\$1" .. .rn SS Ss .de SS .br .ne 10 .Ss "\\$1" .. .rn TP Tp .de TP .br .ne 9 .Tp \\$1 .. .rn RS Rs .de RS .na .nf .Rs .. .rn RE Re .de RE .Re .fi .ad .. .de Sx .PP .ne \\$1 .RS .. .de Ex .RE .PP .. .na .SH NAME procmailex \- procmail rcfile examples .SH SYNOPSIS .B $HOME/.procmailrc examples .ad .SH DESCRIPTION For a description of the rcfile format see .BR procmailrc (5). .PP The weighted scoring technique is described in detail in the .BR procmailsc (5) man page. .PP This man page shows several example recipes. For examples of complete rcfiles you can check the NOTES section in .BR procmail (1), or look at the example rcfiles part of the procmail source distribution (procmail*/examples/?procmailrc). .SH EXAMPLES Sort out all mail coming from the scuba-dive mailing list into the mailfolder scubafile (uses the locallockfile scubafile.lock). .Sx 3 :0: * ^TOscuba scubafile .Ex Forward all mail from peter about compilers to william (and keep a copy of it here in petcompil). .Sx 10 :0 * ^From.*peter * ^Subject:.*compilers { :0 c ! william@somewhere.edu :0 petcompil } .Ex An equivalent solution that accomplishes the same: .Sx 7 :0 c * ^From.*peter * ^Subject:.*compilers ! william@somewhere.edu :0 A petcompil .Ex An equivalent, but slightly slower solution that accomplishes the same: .Sx 9 :0 c * ^From.*peter * ^Subject:.*compilers ! william@somewhere.edu :0 * ^From.*peter * ^Subject:.*compilers petcompil .Ex If you are fairly new to procmail and plan to experiment a little bit it often helps to have a .I safety net of some sort. Inserting the following two recipes above all other recipes will make sure that of all arriving mail always the last 32 messages will be preserved. In order for it to work as intended, you have to create a directory named `backup' in $MAILDIR prior to inserting these two recipes. .Sx 5 :0 c backup :0 ic | cd backup && rm \-f dummy `ls \-t msg.* | sed \-e 1,32d` .Ex If your system doesn't generate or generates incorrect leading `From ' lines on every mail, you can fix this by calling up procmail with the \-f- option. To fix the same problem by different means, you could have inserted the following two recipes above all other recipes in your rcfile. They will filter the header of any mail through formail which will strip any leading `From ', and automatically regenerates it subsequently. .Sx 2 :0 fhw | formail \-I "From " \-a "From " .Ex Add the headers of all messages that didn't come from the postmaster to your private header collection (for statistics or mail debugging); and use the lockfile `headc.lock'. In order to make sure the lockfile is not removed until the pipe has finished, you have to specify option `w'; otherwise the lockfile would be removed as soon as the pipe has accepted the mail. .Sx 3 :0 hwc: * !^FROM_MAILER | uncompress headc.Z; cat >>headc; compress headc .Ex Or, if you would use the more efficient gzip instead of compress: .Sx 3 :0 hwc: * !^FROM_MAILER | gzip >>headc.gz .Ex Forward all mails shorter than 1000 bytes to my home address (no lockfile needed on this recipe). .Sx 3 :0 * < 1000 ! myname@home .Ex Split up incoming digests from the surfing mailing list into their individual messages, and store them into surfing, using surfing.lock as the locallockfile. .Sx 3 :0: * ^Subject:.*surfing.*Digest | formail +1 \-ds >>surfing .Ex Store everything coming from the postmaster or mailer-daemon (like bounced mail) into the file postm, using postm.lock as the locallockfile. .Sx 3 :0: * ^FROM_MAILER postm .Ex A simple autoreply recipe. It makes sure that neither mail from any daemon (like bouncing mail or mail from mailing-lists), nor autoreplies coming from yourself will be autoreplied to. If this precaution would not be taken, disaster could result (`ringing' mail). In order for this recipe to autoreply to all the incoming mail, you should of course insert it before all other recipes in your rcfile. However, it is advisable to put it .I after any recipes that process the mails from subscribed mailinglists; it generally is not a good idea to generate autoreplies to mailinglists (yes, the !^FROM_DAEMON regexp should already catch those, but if the mailinglist doesn't follow accepted conventions, this might .I not be .IR enough ). .Sx 6 :0 h c * !^FROM_DAEMON * !^X-Loop: your@own.mail.address | (formail \-r \-I"Precedence: junk" \e \-A"X-Loop: your@own.mail.address" ; \e echo "Mail received.") | $SENDMAIL \-t .Ex A more complicated autoreply recipe that implements the functional equivalent of the well known .BR vacation (1) program. This recipe is based on the same principles as the last one (prevent `ringing' mail). In addition to that however, it maintains a vacation database by extracting the name of the sender and inserting it in the vacation.cache file if the name was new (the vacation.cache file is maintained by formail which will make sure that it always contains the most recent names, the size of the file is limited to a maximum of approximately 8192 bytes). If the name was new, an autoreply will be sent. .PP As you can see, the following recipe has comments .B between the conditions. This is allowed. Do .B not put comments on the same line as a condition though. .Sx 18 SHELL=/bin/sh # for other shells, this might need adjustment :0 Whc: vacation.lock # Perform a quick check to see if the mail was addressed to us * $^To:.*\e<$\eLOGNAME\e> # Don't reply to daemons and mailinglists * !^FROM_DAEMON # Mail loops are evil * !^X-Loop: your@own.mail.address | formail \-rD 8192 vacation.cache :0 ehc # if the name was not in the cache | (formail \-rI"Precedence: junk" \e \-A"X-Loop: your@own.mail.address" ; \e echo "I received your mail,"; \e echo "but I won't be back until Monday."; \e echo "-- "; cat $HOME/.signature \e ) | $SENDMAIL \-oi \-t .Ex Store all messages concerning TeX in separate, unique filenames, in a directory named texmail (this directory has to exist); there is no need to use lockfiles in this case, so we won't. .Sx 3 :0 * (^TO|^Subject:.*)TeX[^t] texmail .Ex The same as above, except now we store the mails in numbered files (MH mail folder). .Sx 3 :0 * (^TO|^Subject:.*)TeX[^t] texmail/. .Ex Or you could file the mail in several directory folders at the same time. The following recipe will deliver the mail to two MH-folders and one directory folder. It is actually only one file with two extra hardlinks. .Sx 3 :0 * (^TO|^Subject:.*)TeX[^t] texmail/. wordprocessing dtp/. .Ex Store all the messages about meetings in a folder that is in a directory that changes every month. E.g. if it were January 1994, the folder would have the name `94-01/meeting' and the locallockfile would be `94-01/meeting.lock'. .Sx 3 :0: * meeting `date +%y-%m`/meeting .Ex The same as above, but, if the `94-01' directory wouldn't have existed, it is created automatically: .Sx 9 MONTHFOLDER=`date +%y-%m` :0 Wic * ? test ! \-d $MONTHFOLDER | mkdir $MONTHFOLDER :0: * meeting ${MONTHFOLDER}/meeting .Ex The same as above, but now by slightly different means: .Sx 6 MONTHFOLDER=`date +%y-%m` DUMMY=`test \-d $MONTHFOLDER || mkdir $MONTHFOLDER` :0: * meeting ${MONTHFOLDER}/meeting .Ex If you are subscribed to several mailinglists and people cross-post to some of them, you usually receive several duplicate mails (one from every list). The following simple recipe eliminates duplicate mails. It tells formail to keep an 8KB cache file in which it will store the Message-IDs of the most recent mails you received. Since Message-IDs are guaranteed to be unique for every new mail, they are ideally suited to weed out duplicate mails. Simply put the following recipe at the top of your rcfile, and no duplicate mail will get past it. .Sx 2 :0 Wh: msgid.lock | formail \-D 8192 msgid.cache .Ex .B Beware if you have delivery problems in recipes below this one and procmail tries to requeue the mail, then on the next queue run, this mail will be considered a duplicate and will be thrown away. For those not quite so confident in their own scripting capabilities, you can use the following recipe instead. It puts duplicates in a separate folder instead of throwing them away. It is up to you to periodically empty the folder of course. .Sx 5 :0 Whc: msgid.lock | formail \-D 8192 msgid.cache :0 a: duplicates .Ex Procmail can deliver to MH folders directly, but, it does not update the unseen sequences the real MH manages. If you want procmail to update those as well, use a recipe like the following which will file everything that contains the word spam in the body of the mail into an MH folder called spamfold. Note the local lockfile, which is needed because MH programs do not lock the sequences file. Asynchronous invocations of MH programs that change the sequences file may therefore corrupt it or silently lose changes. Unfortunately, the lockfile doesn't completely solve the problem as rcvstore could be invoked while `show' or `mark' or some other MH program is running. This problem is expected to be fixed in some future version of MH, but until then, you'll have to balance the risk of lost or corrupt sequences against the benefits of the unseen sequence. .Sx 3 :0 :spamfold/$LOCKEXT * B ?? spam | rcvstore +spamfold .Ex When delivering to emacs folders (i.e., mailfolders managed by any emacs mail package, e.g., RMAIL or VM) directly, you should use emacs-compatible lockfiles. The emacs mailers are a bit braindamaged in that respect, they get very upset if someone delivers to mailfolders which they already have in their internal buffers. The following recipe assumes that $HOME equals /home/john. .Sx 5 MAILDIR=Mail :0:/usr/local/lib/emacs/lock/!home!john!Mail!mailbox * ^Subject:.*whatever mailbox .Ex Alternatively, you can have procmail deliver into its own set of mailboxes, which you then periodically empty and copy over to your emacs files using .BR movemail . Movemail uses mailbox.lock local lockfiles per mailbox. This actually is the preferred mode of operation in conjunction with procmail. .PP To extract certain headers from a mail and put them into environment variables you can use any of the following constructs: .Sx 5 SUBJECT=`formail \-xSubject:` # regular field FROM=`formail \-rt \-xTo:` # special case :0 h # alternate method KEYWORDS=| formail \-xKeywords: .Ex If you are using temporary files in a procmailrc file, and want to make sure that they are removed just before procmail exits, you could use something along the lines of: .Sx 2 TEMPORARY=$HOME/tmp/pmail.$$ TRAP="/bin/rm \-f $TEMPORARY" .Ex The TRAP keyword can also be used to change the exitcode of procmail. I.e. if you want procmail to return an exitcode of `1' instead of its regular exitcodes, you could use: .Sx 3 EXITCODE="" TRAP="exit 1;" # The trailing semi-colon is important # since exit is not a standalone program .Ex Or, if the exitcode does not need to depend on the programs run from the TRAP, you can use a mere: .Sx 1 EXITCODE=1 .Ex The following recipe prints every incoming mail that looks like a postscript file. .Sx 3 :0 Bb * ^^%! | lpr .Ex The following recipe does the same, but is a bit more selective. It only prints the postscript file if it comes from the print-server. The first condition matches only if it is found in the header. The second condition only matches at the start of the body. .Sx 4 :0 b * ^From[ :].*print-server * B ?? ^^%! | lpr .Ex The same as above, but now by slightly different means: .Sx 7 :0 * ^From[ :].*print-server { :0 B b * ^^%! | lpr } .Ex Likewise: .Sx 4 :0 HB b * ^^(.+$)*From[ :].*print-server * ^^(.+$)*^%! | lpr .Ex Suppose you have two accounts, you use both accounts regularly, but they are in very distinct places (i.e., you can only read mail that arrived at either one of the accounts). You would like to forward mail arriving at account one to account two, and the other way around. The first thing that comes to mind is using .forward files at both sites; this won't work of course, since you will be creating a mail loop. This mail loop can be avoided by inserting the following recipe in front of all other recipes in the $HOME/.procmailrc files on both sites. If you make sure that you add the same X-Loop: field at both sites, mail can now safely be forwarded to the other account from either of them. .Sx 4 :0 c * !^X-Loop: yourname@your.main.mail.address | formail \-A "X-Loop: yourname@your.main.mail.address" | \e $SENDMAIL \-oi yourname@the.other.account .Ex If someone sends you a mail with the word `retrieve' in the subject, the following will automatically send back the contents of info_file to the sender. Like in all recipes where we send mail, we watch out for mail loops. .Sx 6 :0 * !^From +YOUR_USERNAME * !^Subject:.*Re: * !^FROM_DAEMON * ^Subject:.*retrieve | (formail \-r ; cat info_file) | $SENDMAIL \-oi \-t .Ex Now follows an example for a very simple fileserver accessible by mail. For more demanding applications, I suggest you take a look at .B SmartList (available from the same place as the procmail distribution). As listed, this fileserver sends back at most one file per request, it ignores the body of incoming mails, the Subject: line has to look like "Subject: send file the_file_you_want" (the blanks are significant), it does not return files that have names starting with a dot, nor does it allow files to be retrieved that are outside the fileserver directory tree (if you decide to munge this example, make sure you do not inadvertently loosen this last restriction). .Sx 18 :0 * ^Subject: send file [0-9a-z] * !^X-Loop: yourname@your.main.mail.address * !^Subject:.*Re: * !^FROM_DAEMON * !^Subject: send file .*[/.]\e. { MAILDIR=$HOME/fileserver # chdir to the fileserver directory :0 fhw # reverse mailheader and extract name * ^Subject: send file \e/[^ ]* | formail \-rA "X-Loop: yourname@your.main.mail.address" FILE="$MATCH" # the requested filename :0 ah | cat \- ./$FILE 2>&1 | $SENDMAIL \-oi \-t } .Ex The following example preconverts all plain-text mail arriving in certain encoded MIME formats into a more compact 8-bit format which can be used and displayed more easily by most programs. The .BR mimencode (1) program is part of Nathaniel Borenstein's metamail package. .Sx 17 :0 * ^Content-Type: *text/plain { :0 fbw * ^Content-Transfer-Encoding: *quoted-printable | mimencode \-u \-q :0 Afhw | formail \-I "Content-Transfer-Encoding: 8bit" :0 fbw * ^Content-Transfer-Encoding: *base64 | mimencode \-u \-b :0 Afhw | formail \-I "Content-Transfer-Encoding: 8bit" } .Ex The following one is rather exotic, but it only serves to demonstrate a feature. Suppose you have a file in your HOME directory called ".urgent", and the (one) person named in that file is the sender of an incoming mail, you'd like that mail to be stored in $MAILDIR/urgent instead of in any of the normal mailfolders it would have been sorted in. Then this is what you could do (beware, the filelength of $HOME/.urgent should be well below $LINEBUF, increase LINEBUF if necessary): .Sx 5 URGMATCH=`cat $HOME/.urgent` :0: * $^From.*${URGMATCH} urgent .Ex An entirely different application for procmail would be to conditionally apply filters to a certain (outgoing) text or mail. A typical example would be a filter through which you pipe all outgoing mail, in order to make sure that it will be MIME encoded only if it needs to be. I.e. in this case you could start procmail in the middle of a pipe like: .Sx 1 cat newtext | procmail ./mimeconvert | mail chris@where.ever .Ex The .B mimeconvert rcfile could contain something like (the =0x80= and =0xff= should be substituted with the real 8-bit characters): .Sx 10 DEFAULT=| # pipe to stdout instead of # delivering mail as usual :0 Bfbw * [=0x80=-=0xff=] | mimencode \-q :0 Afhw | formail \-I 'MIME-Version: 1.0' \e \-I 'Content-Type: text/plain; charset=ISO-8859-1' \e \-I 'Content-Transfer-Encoding: quoted-printable' .Ex .SH "SEE ALSO" .na .nh .BR procmail (1), .BR procmailrc (5), .BR procmailsc (5), .BR sh (1), .BR csh (1), .BR mail (1), .BR mailx (1), .BR binmail (1), .BR uucp (1), .BR aliases (5), .BR sendmail (8), .BR egrep (1), .BR grep (1), .BR biff (1), .BR comsat (8), .BR mimencode (1), .BR lockfile (1), .BR formail (1) .hy .ad .SH AUTHORS Stephen R. van den Berg .RS .RE Philip A. Guenther .RS .RE .\".if n .pl -(\n(.tu-1i) .rm SH .rn Sh SH .rm SS .rn Ss SS .rm TP .rn Tp TP .rm RS .rn Rs RS .rm RE .rn Re RE 0707010000a2b4000081a4000000000000000200000001438ad31900007abd000000880000000100000000000000000000002500000000root/usr/share/man/man5/procmailrc.5.\"if n .pl +(135i-\n(.pu) .de Id .ds Rv \\$3 .ds Dt \\$4 .. .Id $Id: procmailrc.man,v 1.85 2001/08/04 06:08:21 guenther Exp $ .TH PROCMAILRC 5 \*(Dt BuGless .rn SH Sh .de SH .br .ne 11 .Sh "\\$1" .. .rn SS Ss .de SS .br .ne 10 .Ss "\\$1" .. .rn TP Tp .de TP .br .ne 9 .Tp \\$1 .. .rn RS Rs .de RS .na .nf .Rs .. .rn RE Re .de RE .Re .fi .ad .. .de Sx .PP .ne \\$1 .RS .. .de Ex .RE .PP .. .na .SH NAME procmailrc \- procmail rcfile .SH SYNOPSIS .B $HOME/.procmailrc .ad .SH DESCRIPTION For a quick start, see .B NOTES at the end of the .BR procmail (1) man page. .PP The rcfile can contain a mixture of environment variable assignments (some of which have special meanings to procmail), and recipes. In their most simple appearance, the recipes are simply one line regular expressions that are searched for in the header of the arriving mail. The first recipe that matches is used to determine where the mail has to go (usually a file). If processing falls off the end of the rcfile, procmail will deliver the mail to .BR $DEFAULT . .PP There are two kinds of recipes: delivering and non-delivering recipes. If a .I delivering recipe is found to match, procmail considers the mail (you guessed it) delivered and will .I cease processing the rcfile after having successfully executed the action line of the recipe. If a .I non-delivering recipe is found to match, processing of the rcfile will .I continue after the action line of this recipe has been executed. .PP Delivering recipes are those that cause header and/or body of the mail to be: written into a file, absorbed by a program or forwarded to a mailaddress. .PP Non-delivering recipes are: those that cause the output of a program or filter to be captured back by procmail or those that start a nesting block. .PP You can tell procmail to treat a .I delivering recipe as if it were a non-delivering recipe by specifying the `c' flag on such a recipe. This will make procmail generate a .I carbon copy of the mail by delivering it to this recipe, yet continue processing the rcfile. .PP By using any number of recipes you can presort your mail extremely straightforward into several mailfolders. Bear in mind though that the mail can arrive concurrently in these mailfolders (if several procmail programs happen to run at the same time, not unlikely if a lot of mail arrives). To make sure this does not result in a mess, proper use of lockfiles is highly recommended. .PP The environment variable .B assignments and .B recipes can be freely intermixed in the rcfile. If any environment variable has a special meaning to procmail, it will be used appropriately the moment it is parsed (i.e., you can change the current directory whenever you want by specifying a new .BR MAILDIR , switch lockfiles by specifying a new .BR LOCKFILE , change the umask at any time, etc., the possibilities are endless :\-). .PP The assignments and substitutions of these environment variables are handled exactly like in .BR sh (1) (that includes all possible quotes and escapes), with the added bonus that blanks around the '=' sign are ignored and that, if an environment variable appears without a trailing '=', it will be removed from the environment. Any program in backquotes started by procmail will have the entire mail at its stdin. .PP .SS Comments A word beginning with # and all the following characters up to a NEWLINE are ignored. This does not apply to condition lines, which cannot be commented. .SS Recipes .PP A line starting with ':' marks the beginning of a recipe. It has the following format: .Sx 3 :0 [\fIflags\fP] [ : [\fIlocallockfile\fP] ] .Ex Conditions start with a leading `*', everything after that character is passed on to the internal egrep .BR literally , except for leading and trailing whitespace. These regular expressions are .B completely compatible to the normal .BR egrep (1) extended regular expressions. See also .BR "Extended regular expressions" . .PP Conditions are anded; if there are no conditions the result will be true by default. .PP .I Flags can be any of the following: .TP 0.5i .B H Egrep the header (default). .TP .B B Egrep the body. .TP .B D Tell the internal egrep to distinguish between upper and lower case (contrary to the default which is to ignore case). .TP .B A This recipe will not be executed unless the conditions on the last preceding recipe (on the current block-nesting level) without the `A' or `a' flag matched as well. This allows you to chain actions that depend on a common condition. .TP .B a Has the same meaning as the `A' flag, with the additional condition that the immediately preceding recipe must have been .I successfully completed before this recipe is executed. .TP .B E This recipe only executes if the immediately preceding recipe was not executed. Execution of this recipe also disables any immediately following recipes with the 'E' flag. This allows you to specify `else if' actions. .TP .B e This recipe only executes if the immediately preceding recipe .IR failed (i.e., the action line was attempted, but resulted in an error). .TP .B h Feed the header to the pipe, file or mail destination (default). .TP .B b Feed the body to the pipe, file or mail destination (default). .TP .B f Consider the pipe as a filter. .TP .B c Generate a .B carbon copy of this mail. This only makes sense on .I delivering recipes. The only non-delivering recipe this flag has an effect on is on a nesting block, in order to generate a carbon copy this will .B clone the running procmail process (lockfiles will not be inherited), whereby the clone will proceed as usual and the parent will jump across the block. .TP .B w Wait for the filter or program to finish and check its exitcode (normally ignored); if the filter is unsuccessful, then the text will not have been filtered. .TP .B W Has the same meaning as the `w' flag, but will suppress any `Program failure' message. .TP .B i Ignore any write errors on this recipe (i.e., usually due to an early closed pipe). .TP .B r Raw mode, do not try to ensure the mail ends with an empty line, write it out as is. .PP There are some special conditions you can use that are not straight regular expressions. To select them, the condition must start with: .TP 0.5i .B ! Invert the condition. .TP .B $ Evaluate the remainder of this condition according to .BR sh (1) substitution rules inside double quotes, skip leading whitespace, then reparse it. .TP .B ? Use the exitcode of the specified program. .TP .B < Check if the total length of the mail is shorter than the specified (in decimal) number of bytes. .TP .B > Analogous to '<'. .TP .B "variablename \fI??\fP" Match the remainder of this condition against the value of this environment variable (which cannot be a pseudo variable). A special case is if variablename is equal to `B', `H', `HB' or `BH'; this merely overrides the default header/body search area defined by the initial flags on this recipe. .TP .B \e To quote any of the above at the start of the line. .SS "Local lockfile" .PP If you put a second (trailing) ':' on the first recipe line, then procmail will use a .I locallockfile (for this recipe only). You can optionally specify the locallockfile to use; if you don't however, procmail will use the destination filename (or the filename following the first '>>') and will append $LOCKEXT to it. .SS "Recipe action line" .PP The action line can start with the following characters: .TP .B ! Forwards to all the specified mail addresses. .TP .B | Starts the specified program, possibly in $SHELL if any of the characters $SHELLMETAS are spotted. You can optionally prepend this pipe symbol with .IR variable= , which will cause stdout of the program to be captured in the environment .I variable (procmail will .B not terminate processing the rcfile at this point). If you specify just this pipe symbol, without any program, then procmail will pipe the mail to stdout. .TP .B { Followed by at least one space, tab or newline will mark the start of a nesting block. Everything up till the next closing brace will depend on the conditions specified for this recipe. Unlimited nesting is permitted. The closing brace exists merely to delimit the block, it will .I not cause procmail to terminate in any way. If the end of a block is reached processing will continue as usual after the block. On a nesting block, the flags `H' and `B' only affect the conditions leading up to the block, the flags `h' and `b' have no effect whatsoever. .PP Anything else will be taken as a mailbox name (either a filename or a directory, absolute or relative to the current directory (see MAILDIR)). If it is a (possibly yet nonexistent) filename, the mail will be appended to it. .PP If it is a directory, the mail will be delivered to a newly created, guaranteed to be unique file named $MSGPREFIX* in the specified directory. If the mailbox name ends in "/.", then this directory is presumed to be an MH folder; i.e., procmail will use the next number it finds available. If the mailbox name ends in "/", then this directory is presumed to be a maildir folder; i.e., procmail will deliver the message to a file in a subdirectory named "tmp" and rename it to be inside a subdirectory named "new". If the mailbox is specified to be an MH folder or maildir folder, procmail will create the necessary directories if they don't exist, rather than treat the mailbox as a non-existent filename. When procmail is delivering to directories, you can specify multiple directories to deliver to (procmail will do so utilising hardlinks). .SS "Environment variable defaults" .TP 2.2i .B "LOGNAME, HOME and SHELL" Your (the recipient's) defaults .TP .B PATH .na \&$HOME/bin\h'-\w' 'u' :/bin\h'-\w' 'u' :/usr/ucb\h'-\w' 'u' :/usr/local/bin\h'-\w' 'u' :/usr/X/bin (Except .ad during the processing of an /etc/procmailrc file, when it will be set to .na `\&/bin\h'-\w' 'u' :/usr/ucb\h'-\w' 'u' :/usr/local/bin\h'-\w' 'u' :/usr/X/bin'.) .ad .TP .B SHELLMETAS \&&\h'-\w' 'u' |<>~;?*[ .TP .B SHELLFLAGS \&-c .TP .BR ORGMAIL \&/var/mail/$LOGNAME .br (Unless .B \-m has been specified, in which case it is unset) .TP .B MAILDIR \&$HOME .br (Unless the name of the first successfully opened rcfile starts with `./' or if .B \-m has been specified, in which case it defaults to `.') .TP .B DEFAULT \&$ORGMAIL .TP .B MSGPREFIX \&msg. .TP .B SENDMAIL \&/usr/lib/sendmail .TP .B SENDMAILFLAGS \&-oi .TP .B HOST The current hostname .TP .B COMSAT \&no .br (If an rcfile is specified on the command line) .TP .B PROCMAIL_VERSION \&3.22 .TP .B LOCKEXT \&.lock .na .PP Other cleared or preset environment variables are IFS, ENV and PWD. .ad .PP For security reasons, upon startup procmail will wipe out all environment variables that are suspected of modifying the behavior of the runtime linker. .SS Environment .PP Before you get lost in the multitude of environment variables, keep in mind that all of them have reasonable defaults. .TP 1.2i .B MAILDIR Current directory while procmail is executing (that means that all paths are relative to $MAILDIR). .TP .B DEFAULT Default .B mailbox file (if not told otherwise, procmail will dump mail in this mailbox). Procmail will automatically use $DEFAULT$LOCKEXT as lockfile prior to writing to this mailbox. You do not need to set this variable, since it already points to the standard system mailbox. .TP .B LOGFILE This file will also contain any error or diagnostic messages from procmail (normally none :\-) or any other programs started by procmail. If this file is not specified, any diagnostics or error messages will be mailed back to the sender. See also .BR LOGABSTRACT . .TP .B VERBOSE You can turn on .I extended diagnostics by setting this variable to `yes' or `on', to turn it off again set it to `no' or `off'. .TP .B LOGABSTRACT Just before procmail exits it logs an abstract of the delivered message in $LOGFILE showing the `From ' and `Subject:' fields of the header, what folder it finally went to and how long (in bytes) the message was. By setting this variable to `no', generation of this abstract is suppressed. If you set it to `all', procmail will log an abstract for every successful .I delivering recipe it processes. .TP .B LOG Anything assigned to this variable will be appended to $LOGFILE. .TP .B ORGMAIL Usually the system mailbox (\fBOR\fPi\fBG\fPinal \fBMAIL\fPbox). If, for some obscure reason (like `\fBfilesystem full\fP') the mail could not be delivered, then this mailbox will be the last resort. If procmail fails to save the mail in here (deep, deep trouble :\-), then the mail will bounce back to the sender. .TP .B LOCKFILE Global semaphore file. If this file already exists, procmail will wait until it has gone before proceeding, and will create it itself (cleaning it up when ready, of course). If more than one .I lockfile are specified, then the previous one will be removed before trying to create the new one. The use of a global lockfile is discouraged, whenever possible use locallockfiles (on a per recipe basis) instead. .TP .B LOCKEXT Default extension that is appended to a destination file to determine what local .I lockfile to use (only if turned on, on a per-recipe basis). .TP .B LOCKSLEEP Number of seconds procmail will sleep before retrying on a .I lockfile (if it already existed); if not specified, it defaults to 8 seconds. .TP .B LOCKTIMEOUT Number of seconds that have to have passed since a .I lockfile was last modified/created before procmail decides that this must be an erroneously leftover lockfile that can be removed by force now. If zero, then no timeout will be used and procmail will wait forever until the lockfile is removed; if not specified, it defaults to 1024 seconds. This variable is useful to prevent indefinite hangups of .BR sendmail /procmail. Procmail is immune to clock skew across machines. .TP .B TIMEOUT Number of seconds that have to have passed before procmail decides that some child it started must be hanging. The offending program will receive a TERMINATE signal from procmail, and processing of the rcfile will continue. If zero, then no timeout will be used and procmail will wait forever until the child has terminated; if not specified, it defaults to 960 seconds. .TP .B MSGPREFIX Filename prefix that is used when delivering to a directory (not used when delivering to a maildir or an MH directory). .TP .B HOST If this is not the .I hostname of the machine, processing of the current .I rcfile will immediately cease. If other rcfiles were specified on the command line, processing will continue with the next one. If all rcfiles are exhausted, the program will terminate, but will not generate an error (i.e., to the mailer it will seem that the mail has been delivered). .TP .B UMASK The name says it all (if it doesn't, then forget about this one :\-). Anything assigned to UMASK is taken as an .B octal number. If not specified, the umask defaults to 077. If the umask permits o+x, all the mailboxes procmail delivers to directly will receive an o+x mode change. This can be used to check if new mail arrived. .TP .B SHELLMETAS If any of the characters in SHELLMETAS appears in the line specifying a filter or program, the line will be fed to $SHELL instead of being executed directly. .TP .B SHELLFLAGS Any invocation of $SHELL will be like: .br "$SHELL" "$SHELLFLAGS" "$*"; .TP .B SENDMAIL If you're not using the .I forwarding facility don't worry about this one. It specifies the program being called to forward any mail. .br It gets invoked as: "$SENDMAIL" $SENDMAILFLAGS "$@"; .TP .B NORESRETRY Number of retries that are to be made if any `\fBprocess table full\fP', `\fBfile table full\fP', `\fBout of memory\fP' or `\fBout of swap space\fP' error should occur. If this number is negative, then procmail will retry indefinitely; if not specified, it defaults to 4 times. The retries occur with a $SUSPEND second interval. The idea behind this is that if, e.g., the .I swap .I space has been exhausted or the .I process .I table is full, usually several other programs will either detect this as well and abort or crash 8\-), thereby freeing valuable .I resources for procmail. .TP .B SUSPEND Number of seconds that procmail will pause if it has to wait for something that is currently unavailable (memory, fork, etc.); if not specified, it will default to 16 seconds. See also: .BR LOCKSLEEP . .TP .B LINEBUF Length of the internal line buffers, cannot be set smaller than 128. All lines read from the .I rcfile should not exceed $LINEBUF characters before and after expansion. If not specified, it defaults to 2048. This limit, of course, does .I not apply to the mail itself, which can have arbitrary line lengths, or could be a binary file for that matter. See also PROCMAIL_OVERFLOW. .TP .B DELIVERED If set to `yes' procmail will pretend (to the mail agent) the mail has been delivered. If mail cannot be delivered after having met this assignment (set to `yes'), the mail will be lost (i.e., it will not bounce). .TP .B TRAP When procmail terminates of its own accord and not because it received a signal, it will execute the contents of this variable. A copy of the mail can be read from stdin. Any output produced by this command will be appended to $LOGFILE. Possible uses for TRAP are: removal of temporary files, logging customised abstracts, etc. See also .B EXITCODE and .BR LOGABSTRACT . .TP .B EXITCODE By default, procmail returns an exitcode of zero (success) if it successfully delivered the message or if the .B HOST variable was misset and there were no more rcfiles on the command line; otherwise it returns failure. Before doing so, procmail examines the value of this variable. If it is set to a positive numeric value, procmail will instead use that value as its exitcode. If this variable is set but empty and .B TRAP is set, procmail will set the exitcode to whatever the .B TRAP program returns. If this variable is not set, procmail will set it shortly before calling up the .B TRAP program. .TP .B LASTFOLDER This variable is assigned to by procmail whenever it is delivering to a folder or program. It always contains the name of the last file (or program) procmail delivered to. If the last delivery was to several directory folders together then $LASTFOLDER will contain the hardlinked filenames as a space separated list. .TP .B MATCH This variable is assigned to by procmail whenever it is told to extract text from a matching regular expression. It will contain all text matching the regular expression past the `\fB\e/\fP' token. .TP .B SHIFT Assigning a positive value to this variable has the same effect as the `shift' command in .BR sh (1). This command is most useful to extract extra arguments passed to procmail when acting as a generic mailfilter. .TP .B INCLUDERC Names an rcfile (relative to the current directory) which will be included here as if it were part of the current rcfile. Nesting is permitted and only limited by systems resources (memory and file descriptors). As no checking is done on the permissions or ownership of the rcfile, users of .B INCLUDERC should make sure that only trusted users have write access to the included rcfile or the directory it is in. Command line assignments to .B INCLUDERC have no effect. .TP .B SWITCHRC Names an rcfile (relative to the current directory) to which processing will be switched. If the named rcfile doesn't exist or is not a normal file or /dev/null then an error will be logged and processing will continue in the current rcfile. Otherwise, processing of the current rcfile will be aborted and the named rcfile started. Unsetting .B SWITCHRC aborts processing of the current rcfile as if it had ended at the assignment. As with .BR INCLUDERC , no checking is done on the permissions or ownership of the rcfile and command line assignments have no effect. .TP .B PROCMAIL_VERSION The version number of the running procmail binary. .TP .B PROCMAIL_OVERFLOW This variable will be set to a non-empty value if procmail detects a buffer overflow. See the .B BUGS section below for other details of operation when overflow occurs. .TP .B COMSAT .BR Comsat (8)/ biff (1) notification is on by default, it can be turned off by setting this variable to `no'. Alternatively the biff-service can be customised by setting it to either `service@', `@hostname', or `service@hostname'. When not specified it defaults to biff@localhost. .TP .B DROPPRIVS If set to `yes' procmail will drop all privileges it might have had (suid or sgid). This is only useful if you want to guarantee that the bottom half of the /etc/procmailrc file is executed on behalf of the recipient. .SS "Extended regular expressions" The following tokens are known to both the procmail internal egrep and the standard .BR egrep (1) (beware that some egrep implementations include other non-standard extensions): .TP 1.0i .B ^ Start of a line. .TP .B $ End of a line. .TP .B . Any character except a newline. .TP .B a* Any sequence of zero or more a's. .TP .B a+ Any sequence of one or more a's. .TP .B a? Either zero or one a. .TP .B [^-a-d] Any character which is .B not either a dash, a, b, c, d or newline. .TP .B de|abc Either the sequence `de' or `abc'. .TP .B (abc)* Zero or more times the sequence `abc'. .TP .B \e. Matches a single dot; use \e to quote any of the magic characters to get rid of their special meaning. See also $\e variable substitution. .PP These were only samples, of course, any more complex combination is valid as well. .PP The following token meanings are special procmail extensions: .TP 1.0i \fB^\fP or \fB$\fP Match a newline (for multiline matches). .TP .B ^^ Anchor the expression at the very start of the search area, or if encountered at the end of the expression, anchor it at the very end of the search area. .TP \fB\e<\fP or \fB\e>\fP Match the character before or after a word. They are merely a shorthand for `[^a-zA-Z0-9_]', but can also match newlines. Since they match actual characters, they are only suitable to delimit words, not to delimit inter-word space. .TP .B \e/ Splits the expression in two parts. Everything matching the right part will be assigned to the MATCH environment variable. .SH EXAMPLES Look in the .BR procmailex (5) man page. .SH CAVEATS Continued lines in an action line that specifies a program always have to end in a backslash, even if the underlying shell would not need or want the backslash to indicate continuation. This is due to the two pass parsing process needed (first procmail, then the shell (or not, depending on .BR SHELLMETAS )). .PP Don't put comments on the regular expression condition lines in a recipe, these lines are fed to the internal egrep .I literally (except for continuation backslashes at the end of a line). .PP Leading whitespace on continued regular expression condition lines is usually ignored (so that they can be indented), but .B not on continued condition lines that are evaluated according to the .BR sh (1) substitution rules inside double quotes. .PP Watch out for deadlocks when doing unhealthy things like forwarding mail to your own account. Deadlocks can be broken by proper use of .BR LOCKTIMEOUT . .PP Any default values that procmail has for some environment variables will .B always override the ones that were already defined. If you really want to override the defaults, you either have to put them in the .B rcfile or on the command line as arguments. .PP The /etc/procmailrc file cannot change the PATH setting seen by user rcfiles as the value is reset when procmail finishes the /etc/procmailrc file. While future enhancements are expected in this area, recompiling procmail with the desired value is currently the only correct solution. .PP Environment variables set .B inside the shell-interpreted-`|' action part of a recipe will .B not retain their value after the recipe has finished since they are set in a subshell of procmail. To make sure the value of an environment variable is retained you have to put the assignment to the variable before the leading `|' of a recipe, so that it can capture stdout of the program. .PP If you specify only a `h' or a `b' flag on a delivering recipe, and the recipe matches, then, unless the `c' flag is present as well, the body respectively the header of the mail will be silently lost. .SH "SEE ALSO" .na .nh .BR procmail (1), .BR procmailsc (5), .BR procmailex (5), .BR sh (1), .BR csh (1), .BR mail (1), .BR mailx (1), .BR binmail (1), .BR uucp (1), .BR aliases (5), .BR sendmail (8), .BR egrep (1), .BR regexp (5), .BR grep (1), .BR biff (1), .BR comsat (8), .BR lockfile (1), .BR formail (1) .hy .ad .SH BUGS The only substitutions of environment variables that can be handled by procmail itself are of the type $name, ${name}, ${name:-text}, ${name:+text}, ${name-text}, ${name+text}, $\ename, $#, $n, $$, $?, $_, $\- and $=; whereby $\ename will be substituted by the all-magic-regular-expression-characters-disarmed equivalent of $name, $_ by the name of the current rcfile, $\- by $LASTFOLDER and $= will contain the score of the last recipe. Furthermore, the result of $\ename substitution will never be split on whitespace. When the .B \-a or .B \-m options are used, $# will expand to the number of arguments so specified and "$@" (the quotes are required) will expand to the specified arguments. However, "$@" will only be expanded when used in the argument list to a program, and then only one such occurrence will be expanded. .PP Unquoted variable expansions performed by procmail are always split on space, tab, and newline characters; the IFS variable is not used internally. .PP Procmail does not support the expansion of `~'. .PP A line buffer of length $LINEBUF is used when processing the .IR rcfile , any expansions that don't fit within this limit will be truncated and PROCMAIL_OVERFLOW will be set. If the overflowing line is a condition or an action line, then it will be considered failed and procmail will continue processing. If it is a variable assignment or recipe start line then procmail will abort the entire rcfile. .PP If the global lockfile has a .I relative path, and the current directory is not the same as when the global lockfile was created, then the global lockfile will not be removed if procmail exits at that point (remedy: use .I absolute paths to specify global lockfiles). .PP If an rcfile has a .I relative path and when the rcfile is first opened .B MAILDIR contains a relative path, and if at one point procmail is instructed to clone itself and the current directory has changed since the rcfile was opened, then procmail will not be able to clone itself (remedy: use an .I absolute path to reference the rcfile or make sure MAILDIR contains an absolute path as the rcfile is opened). .PP A locallockfile on the recipe that marks the start of a non-forking nested block does not work as expected. .PP When capturing stdout from a recipe into an environment variable, exactly one trailing newline will be stripped. .PP Some non-optimal and non-obvious regexps set MATCH to an incorrect value. The regexp can be made to work by removing one or more unneeded '*', '+', or '?' operator on the left-hand side of the \e/ token. .SH MISCELLANEOUS If the regular expression contains `\fB^TO_\fP' it will be substituted by .na .nh `\fB(^((Original-)?(Resent-)?(To\h'-\w' 'u' |Cc\h'-\w' 'u' |Bcc)\h'-\w' 'u' |(X-Envelope\h'-\w' 'u' |Apparently(-Resent)?)-To)\h'-\w' 'u' :(.*[^-a-zA-Z0-9_.])?)\fP', which should catch all destination specifications containing a specific .IR address . .hy .ad .PP If the regular expression contains `\fB^TO\fP' it will be substituted by .na .nh `\fB(^((Original-)?(Resent-)?(To\h'-\w' 'u' |Cc\h'-\w' 'u' |Bcc)\h'-\w' 'u' |(X-Envelope\h'-\w' 'u' |Apparently(-Resent)?)-To)\h'-\w' 'u' :(.*[^a-zA-Z])?)\fP', which should catch all destination specifications containing a specific .IR word . .hy .ad .PP If the regular expression contains `\fB^FROM_DAEMON\fP' it will be substituted by .na .nh `\fB(^(Mailing-List\h'-\w' 'u' :\h'-\w' 'u' |Precedence\h'-\w' 'u' :.*(junk\h'-\w' 'u' |bulk\h'-\w' 'u' |list)\h'-\w' 'u' |To\h'-\w' 'u' : Multiple recipients of |(((Resent-)?(From\h'-\w' 'u' |Sender)\h'-\w' 'u' |X-Envelope-From)\h'-\w' 'u' :\h'-\w' 'u' |>?From )([^>]*[^(.%@a-z0-9])?(Post(ma?(st(e?r)?\h'-\w' 'u' |n)\h'-\w' 'u' |office)\h'-\w' 'u' |(send)?Mail(er)?\h'-\w' 'u' |daemon\h'-\w' 'u' |m(mdf\h'-\w' 'u' |ajordomo)\h'-\w' 'u' |n?uucp\h'-\w' 'u' |LIST(SERV\h'-\w' 'u' |proc)\h'-\w' 'u' |NETSERV\h'-\w' 'u' |o(wner\h'-\w' 'u' |ps)\h'-\w' 'u' |r(e(quest\h'-\w' 'u' |sponse)\h'-\w' 'u' |oot)\h'-\w' 'u' |b(ounce\h'-\w' 'u' |bs\e.smtp)\h'-\w' 'u' |echo\h'-\w' 'u' |mirror\h'-\w' 'u' |s(erv(ices?\h'-\w' 'u' |er)\h'-\w' 'u' |mtp(error)?\h'-\w' 'u' |ystem)\h'-\w' 'u' |A(dmin(istrator)?\h'-\w' 'u' |MMGR\h'-\w' 'u' |utoanswer))(([^).!\h'-\w' 'u' :a-z0-9][-_a-z0-9]*)?[%@>\\t ][^<)]*(\e(.*\e).*)?)?$([^>]\h'-\w' 'u' |$)))\fP', which should catch mails coming from most daemons (how's that for a regular expression :\-). .hy .ad .PP If the regular expression contains `\fB^FROM_MAILER\fP' it will be substituted by .na .nh `\fB(^(((Resent-)?(From\h'-\w' 'u' |Sender)\h'-\w' 'u' |X-Envelope-From)\h'-\w' 'u' :\h'-\w' 'u' |>?From )([^>]*[^(.%@a-z0-9])?(Post(ma(st(er)?\h'-\w' 'u' |n)\h'-\w' 'u' |office)\h'-\w' 'u' |(send)?Mail(er)?\h'-\w' 'u' |daemon\h'-\w' 'u' |mmdf\h'-\w' 'u' |n?uucp\h'-\w' 'u' |ops\h'-\w' 'u' |r(esponse\h'-\w' 'u' |oot)\h'-\w' 'u' |(bbs\e.)?smtp(error)?\h'-\w' 'u' |s(erv(ices?\h'-\w' 'u' |er)\h'-\w' 'u' |ystem)\h'-\w' 'u' |A(dmin(istrator)?\h'-\w' 'u' |MMGR))(([^).!\h'-\w' 'u' :a-z0-9][-_a-z0-9]*)?[%@>\\t ][^<)]*(\e(.*\e).*)?)?$([^>]\h'-\w' 'u' |$))\fP' (a stripped down version of `\fB^FROM_DAEMON\fP'), which should catch mails coming from most mailer-daemons. .hy .ad .PP When assigning boolean values to variables like VERBOSE, DELIVERED or COMSAT, procmail accepts as true every string starting with: a non-zero value, `on', `y', `t' or `e'. False is every string starting with: a zero value, `off', `n', `f' or `d'. .PP If the action line of a recipe specifies a program, a sole backslash-newline pair in it on an otherwise empty line will be converted into a newline. .PP The regular expression engine built into procmail does not support named character classes. .SH NOTES Since unquoted leading whitespace is generally ignored in the rcfile you can indent everything to taste. .PP The leading `|' on the action line to specify a program or filter is stripped before checking for $SHELLMETAS. .PP Files included with the INCLUDERC directive containing only environment variable assignments can be shared with sh. .PP The current behavior of assignments on the command line to .B INCLUDERC and .B SWITCHRC is not guaranteed, has been changed once already, and may be changed again or removed in future releases. .PP For .I really complicated processing you can even consider calling .B procmail recursively. .PP In the old days, the `:0' that marks the beginning of a recipe, had to be changed to `:n', whereby `n' denotes the number of conditions that follow. .SH AUTHORS Stephen R. van den Berg .RS .RE Philip A. Guenther .RS .RE .\".if n .pl -(\n(.tu-1i) .rm SH .rn Sh SH .rm SS .rn Ss SS .rm TP .rn Tp TP .rm RS .rn Rs RS .rm RE .rn Re RE 0707010000a2b5000081a4000000000000000200000001438ad31900001f8a000000880000000100000000000000000000002500000000root/usr/share/man/man5/procmailsc.5.\"if n .pl +(135i-\n(.pu) .de Id .ds Rv \\$3 .ds Dt \\$4 .. .Id $Id: procmailsc.man,v 1.15 2001/08/04 06:08:22 guenther Exp $ .TH PROCMAILSC 5 \*(Dt BuGless .rn SH Sh .de SH .br .ne 11 .Sh "\\$1" .. .rn SS Ss .de SS .br .ne 10 .Ss "\\$1" .. .rn TP Tp .de TP .br .ne 9 .Tp \\$1 .. .rn RS Rs .de RS .na .nf .Rs .. .rn RE Re .de RE .Re .fi .ad .. .de Sx .PP .ne \\$1 .RS .. .de Ex .RE .PP .. .na .SH NAME procmailsc \- procmail weighted scoring technique .SH SYNOPSIS .RB [ * ] .B "w^x condition" .ad .SH DESCRIPTION In addition to the traditional true or false conditions you can specify on a recipe, you can use a weighted scoring technique to decide if a certain recipe matches or not. When weighted scoring is used in a recipe, then the final score for that recipe must be positive for it to match. A certain condition can contribute to the score if you allocate it a `weight' .RB ( w ) and an `exponent' .RB ( x ). You do this by preceding the condition (on the same line) with: .RS .B w^x .RE Whereas both .B w and .B x are real numbers between -2147483647.0 and 2147483647.0 inclusive. .SH "Weighted regular expression conditions" The first time the regular expression is found, it will add .I w to the score. The second time it is found, .I w*x will be added. The third time it is found, .I w*x*x will be added. The fourth time .I w*x*x*x will be added. And so forth. This can be described by the following concise formula: .Sx 4 n n k\-1 x \- 1 w * Sum x = w * \-\-\-\-\-\-\- k=1 x \- 1 .Ex It represents the total added score for this condition if .B n matches are found. Note that the following case distinctions can be made: .TP 8 x=0 Only the first match will contribute w to the score. Any subsequent matches are ignored. .TP x=1 Every match will contribute the same w to the score. The score grows linearly with the number of matches found. .TP 0 L .Ex will generate an additional score of: .Sx 4 x / M \e w * | \-\-\- | \e L / .Ex And: .Sx 1 * w^x < L .Ex will generate an additional score of: .Sx 4 x / L \e w * | \-\-\- | \e M / .Ex .PP In both cases, if L=M, this will add w to the score. In the former case however, larger mails will be favoured, in the latter case, smaller mails will be favoured. Although x can be varied to fine-tune the steepness of the function, typical usage sets x=1. .SH MISCELLANEOUS You can query the final score of all the conditions on a recipe from the environment variable .BR $= . This variable is set .I every time just after procmail has parsed all conditions on a recipe (even if the recipe is not being executed). .SH EXAMPLES The following recipe will ditch all mails having more than 150 lines in the body. The first condition contains an empty regular expression which, because it always matches, is used to give our score a negative offset. The second condition then matches every line in the mail, and consumes up the previous negative offset we gave (one point per line). In the end, the score will only be positive if the mail contained more than 150 lines. .Sx 5 :0 Bh * \-150^0 * 1^1 ^.*$ /dev/null .Ex Suppose you have a priority folder which you always read first. The next recipe picks out the priority mail and files them in this special folder. The first condition is a regular one, i.e., it doesn't contribute to the score, but simply has to be satisfied. The other conditions describe things like: john and claire usually have something important to say, meetings are usually important, replies are favoured a bit, mails about Elvis (this is merely an example :\-) are favoured (the more he is mentioned, the more the mail is favoured, but the maximum extra score due to Elvis will be 4000, no matter how often he is mentioned), lots of quoted lines are disliked, smileys are appreciated (the score for those will reach a maximum of 3500), those three people usually don't send interesting mails, the mails should preferably be small (e.g., 2000 bytes long mails will score \-100, 4000 bytes long mails do \-800). As you see, if some of the uninteresting people send mail, then the mail still has a chance of landing in the priority folder, e.g., if it is about a meeting, or if it contains at least two smileys. .Sx 11 :0 HB * !^Precedence:.*(junk|bulk) * 2000^0 ^From:.*(john@home|claire@work) * 2000^0 ^Subject:.*meeting * 300^0 ^Subject:.*Re: * 1000^.75 elvis|presley * \-100^1 ^> * 350^.9 :\-\e) * \-500^0 ^From:.*(boss|jane|henry)@work * \-100^3 > 2000 priority_folder .Ex If you are subscribed to a mailinglist, and just would like to read the quality mails, then the following recipes could do the trick. First we make sure that the mail is coming from the mailinglist. Then we check if it is from certain persons of whom we value the opinion, or about a subject we absolutely want to know everything about. If it is, file it. Otherwise, check if the ratio of quoted lines to original lines is at most 1:2. If it exceeds that, ditch the mail. Everything that survived the previous test, is filed. .Sx 15 :0 ^From mailinglist-request@some.where { :0: * ^(From:.*(paula|bill)|Subject:.*skiing) mailinglist :0 Bh * 20^1 ^> * \-10^1 ^[^>] /dev/null :0: mailinglist } .Ex For further examples you should look in the .BR procmailex (5) man page. .SH CAVEATS Because this speeds up the search by an order of magnitude, the procmail internal egrep will always search for the leftmost .I shortest match, unless it is determining what to assign to .BR MATCH , in which case it searches the leftmost .I longest match. E.g. for the leftmost .I shortest match, by itself, the regular expression: .TP .B .* will always match a zero length string at the same spot. .TP .B .+ will always match one character (except newlines of course). .SH "SEE ALSO" .na .nh .BR procmail (1), .BR procmailrc (5), .BR procmailex (5), .BR sh (1), .BR csh (1), .BR egrep (1), .BR grep (1), .hy .ad .SH BUGS If, in a length condition, you specify an .B x that causes an overflow, procmail is at the mercy of the .BR pow (3) function in your mathematical library. .PP Floating point numbers in `engineering' format (e.g., 12e5) are not accepted. .SH MISCELLANEOUS As soon as `plus infinity' (2147483647) is reached, any subsequent .I weighted conditions will simply be skipped. .PP As soon as `minus infinity' (-2147483647) is reached, the condition will be considered as `no match' and the recipe will terminate early. .SH NOTES If in a regular expression weighted formula .BR 0 .RE Philip A. Guenther .RS .RE .\".if n .pl -(\n(.tu-1i) .rm SH .rn Sh SH .rm SS .rn Ss SS .rm TP .rn Tp TP .rm RS .rn Rs RS .rm RE .rn Re RE 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000b00000000TRAILER!!!