home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-07-04 | 38.9 KB | 1,071 lines |
- Newsgroups: comp.sources.misc
- From: berg@pool.informatik.rwth-aachen.de (Stephen R. van den Berg)
- Subject: v38i020: procmail - mail processing package v2.90, Part01/11
- Message-ID: <1993Jul1.150616.20352@sparky.imd.sterling.com>
- X-Md4-Signature: b0dbd06c6730b7fb715c16e67e3010d9
- Sender: kent@sparky.imd.sterling.com (Kent Landfield)
- Organization: Sterling Software
- Date: Thu, 1 Jul 1993 15:06:16 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: berg@pool.informatik.rwth-aachen.de (Stephen R. van den Berg)
- Posting-number: Volume 38, Issue 20
- Archive-name: procmail/part01
- Environment: sendmail, smail, MMDF, mailsurr, UNIX, POSIX
- Supersedes: procmail: Volume 35, Issue 21-32,124,125
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 1 (of 11)."
- # Contents: procmail procmail/HISTORY procmail/README
- # procmail/examples procmail/examples/1rmail
- # procmail/examples/2rmail procmail/examples/dirname
- # procmail/mailinglist procmail/mailinglist/bin
- # procmail/mailinglist/bin/arch_trunc procmail/mailinglist/etc
- # procmail/mailinglist/etc/subscribe.txt
- # procmail/mailinglist/install.sh2 procmail/man
- # procmail/man/Makefile procmail/man/Makefile.0 procmail/man/README
- # procmail/patchlevel.h procmail/src procmail/src/Makefile
- # procmail/src/common.h procmail/src/cstdio.h procmail/src/ecommon.c
- # procmail/src/ecommon.h procmail/src/fields.h
- # procmail/src/goodies.h procmail/src/locking.h
- # procmail/src/network.h procmail/src/robust.h procmail/src/shell.h
- # procmail/src/sublib.h
- # Wrapped by berg@tubastos on Thu Jul 1 14:06:14 1993
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test ! -d 'procmail' ; then
- echo shar: Creating directory \"'procmail'\"
- mkdir 'procmail'
- fi
- if test -f 'procmail/HISTORY' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/HISTORY'\"
- else
- echo shar: Extracting \"'procmail/HISTORY'\" \(10828 characters\)
- sed "s/^X//" >'procmail/HISTORY' <<'END_OF_FILE'
- X Only the last entry is complete, the others might have been condensed.
- X
- X1990/12/07: v1.00
- X1990/12/12: v1.01
- X1991/02/04: v1.02
- X1991/02/13: v1.10
- X1991/02/21: v1.20
- X1991/02/22: v1.21
- X1991/03/01: v1.30
- X1991/03/15: v1.35
- X Started using RCS to manage the source
- X1991/06/04: v1.99
- X1991/06/10: v2.00
- X1991/06/11: v2.01
- X1991/06/12: v2.02
- X1991/06/20: v2.03
- X1991/07/04: v2.10
- X1991/07/12: v2.11
- X1991/10/02: v2.20 (never released)
- X1991/10/18: v2.30
- X Implemented a custom regular expression library (fully egrep
- X compatible), should eliminate the annoyances with incompatible
- X egreps
- X Reached the doubtful milestone of having a source file (regexp.c)
- X which provokes a compiler error on an old compiler
- X (if using the optimiser)
- X1991/10/22: v2.31
- X1991/12/05: v2.40
- X Made procmail capable of healing the recipient's mail spool file
- X Tricked NFS into supplying an access_time<modification_time for the
- X folders written
- X1991/12/13: v2.50
- X1992/01/22: v2.60
- X1992/01/31: v2.61
- X1992/04/30: v2.70
- X Made procmail & lockfile clock skew independent (important during
- X LOCKTIMEOUT)
- X Made special entries in config.h for semi-permanent environment-
- X variable overrides
- X1992/07/01: v2.71
- X Now throwing away all environment variables starting with LD_
- X (not just LD_LIBRARY_PATH), but only on those machines that
- X have the security hole (i.e. SunOS)
- X Gave procmail, formail, lockfile and mailstat a more verbose
- X command line help (called up by -h or -?)
- X1993/02/04: v2.80
- X Started using CVS to manage the source (god's gift to programmers)
- X Substantially changed the examples/advanced mailer integration
- X instructions (especially for smail)
- X Enhanced lockfile a lot:
- X - the -r option really specifies *re*tries now
- X - concatenated and/or seperate options are allowed now
- X - fixed an inconsistency with removing lockfiles by force
- X - lockfile is more intelligent about locks which are impossible
- X to acquire (it sees it now and displays an appropriate error
- X message)
- X - related to this, lockfile now can return a whole range of
- X standard exitcodes to describe the error
- X - dropped the suid support for lockfile, sgid support however
- X was consolidated (with more descriptive error messages)
- X Changes to formail:
- X - formail does *NOT* CONCATENATE continued header-fields by
- X default now anymore, specify the -c option for this
- X - fixed the sender-determination-code, v2.71 didn't comply
- X with RFC-822 on some points
- X - the sender-determination-code now minimises the mailaddress
- X - taught formail about some more headers, previously formail
- X would refuse to split some mail-articles because it didn't
- X recognise the second field
- X - made it strip the <> on generated mail addresses
- X - reorganised the known header-fields into the header.h file
- X (to allow convenient additions)
- X - introduced the -l option, for generating procmail-alike
- X summaries
- X - introduced the -R option for renaming header-fields
- X - taught it about the Resent- fields when looking for a reply
- X address
- X - made sure that it does not generate an extra empty line at
- X the end of a mail with no body
- X - fixed the '-nnn' option, somehow this got broken
- X - added the -X option for extracting complete fields (to make
- X the toolset complete)
- X - defined away one const, for buggy Convex "ANSI" C compilers
- X Changes to procmail:
- X - procmail does *NOT* CONCATENATE continued header-fields
- X anymore, filter through "formail -c" for this
- X - procmail only escapes bogus From_ lines now when writing a
- X regular mailfolder (otherwise it's unchanged)
- X - changed the method for turning on extended diagnostics, the
- X preceding colon is not supported anymore, use VERBOSE=on
- X - worked over the mailbox-healing code, some changes were
- X needed to ensure complete functionality when the system
- X mailbox is in the user's home directory
- X - taught procmail about $? (see sh(1))
- X - added the INCLUDERC keyword, to permit unlimited nesting
- X of included rcfiles
- X - any program started in backquotes by procmail now has the
- X complete mail on its stdin
- X - all diagnostics logged by procmail will now be preceded by
- X a "procmail: " for easy identification
- X - as long as no LOGFILE has been specified, all diagnostics
- X will be mailed back to the sender (instead of /dev/null)
- X - when a program is specified on an action line, you can
- X precede the line by an environment variable name and an
- X equal sign; this will read in the (unlimited length) text
- X from stdout into this variable
- X - backslash-newline pairs on continued program-action lines
- X will be simply passed on now; unless the backslash-newline
- X pair is on an otherwise empty line, in which case only the
- X newline remains
- X - comsat/biff is fully supported now
- X - added the TRAP keyword, to allow for temporary file cleanup
- X - in explicit delivery mode, unknown users are now rejected
- X - system mailboxes with their suid or sgid bits set will not
- X be delivered to anymore, they are presumed to contain SysV
- X autoforwarding information
- X - a condition line of a recipe can now start with '?' in order
- X to use the exitcode of a program as true or false
- X - the ^TO and ^FROM_DAEMON special keywords can now be used
- X anywhere in the regular expression (^TO has been extended
- X as well)
- X - taught the ^^ special token to the internal egrep
- X - more than doubled the speed of the builtin regexp library
- X (which was already fast :-)
- X - procmail uses and defines LOGNAME instead of USER
- X Changes to the installation scripts:
- X - preset values for $(MAKE), $(CC) and $(SHELL) are respected
- X in Makefiles now
- X - a POSIX conforming grep is recognised and used
- X - the need for any -D_POSIX_SOURCE is recognised automatically
- X - to make sure that all this is possible, the Makefiles are
- X created in a two step-process now (make init)
- X - missing libraries for network/socket and opendir support
- X are searched for (you won't believe what names people picked
- X for network support libraries, not in your wildest dreams :-)
- X - the autoconf script now performs a reliability test on kernel
- X locking support
- X - also, network support for comsat tries to build up a compile
- X time cache for trivial get*byname() calls
- X - reached the doubtful milestone of consistently crashing the
- X kernel on a Convex by running the locktst program
- X1993/02/19: v2.81
- X Fixed a major inconvenience when generating the Makefiles in
- X initmake
- X Loosened the formats accepted for (un)subscription requests (some
- X got rejected, but were valid)
- X Redirected archive requests away from the regular list address
- X Sharpened the FROM_MAIL_DAEMON detection
- X Flist, idhash and multigram now use the correct name on error
- X reports
- X Sped up multigram on duplicate names (also eliminates duplicates
- X in the best-matches list)
- X The locking tests in the autoconf scripts seemed to hang on
- X certain machines, I think I fixed that now
- X Procmail now uses saved-gids if available (allows for system-
- X mailbox locking from within an rcfile on systems that did not
- X have world-writeable /usr/mail directories)
- X Procmail ignores locallockfiles if the file that has to be locked
- X turns out to be /dev/null
- X Added a paragraph to the mailinglist/Manual (explaining multigram
- X and threshold values)
- X1993/06/02: v2.82 (never really released, was only available as prerelease 4)
- X Fixed sleeptime argument to lockfile
- X Refined the ^FROM_DAEMON macro again
- X Added a ^FROM_MAILER macro
- X Fixed the library conflict with openlog
- X Removed the dependencies on the structure of /usr/include
- X Removed the dependencies on the structure of /lib, /usr/lib etc.
- X Enhanced autoconf to ask for LOCKINGTEST directories
- X Added an extra paragraph to INSTALL explaining the necessity of
- X the LOCKINGTESTs
- X Made the internal egrep in procmail warn about mismatching parens
- X in a regexp
- X Made the regexp lib faster again (worst case performance improved)
- X Split up the manpage auto-generated sed scripts, some seds cannot
- X process scripts with more than 100 commands
- X Changed manpage substitions tokens to use @*@ instead of +*+
- X Added example recipe for emacs users in the procmailex man page
- X Extended recommend.c, it advises changing the permissions on
- X the system mail spool directory as well now (if needed)
- X Procmail can now deliver to multiple directories (using hardlinks)
- X If the umask permits o+x, this bit will be set on any mailbox
- X procmail delivers to directly
- X Added the LASTFOLDER & LOGABSTRACT variables to procmail in order
- X to ease the generation of custom logfile abstracts/summaries
- X Programs started from within TRAP can read the mail from stdin
- X Worked my way around the !@#$%^&*() POSIX setgid() semantics (if
- X your OS supports setrgid() or setregid())
- X Using off_t now (I seem to have overlooked it in my POSIX docs)
- X Eliminated all uses of "expr match"
- X Altered mailstat to work on really broken shells
- X Extended the FAQ
- X Changes to the mailinglist scripts:
- X - Finetuned some scripts
- X - Added digested lists
- X - Added standalone archive servers
- X - Extended logging for administrivia requests
- X - Flist can and should be setuid root now, POSIX setuid
- X semantics require it <sigh>
- X - Added support for multiple architectures
- X - Updated and extended the Manual file (reading recommended)
- X - Added the showlink convenience utility
- X - Added support for non-sendmail compatible mailers
- X1993/07/01: v2.90
- X Condition lines in recipes can now be started with a leading `*',
- X there is no longer a need to count condition lines, simply
- X set the number to zero, and let procmail find out by itself
- X Added the -a and -m options to procmail, for enhanced interfacing
- X to sendmail
- X Updated the recommended sendmail.cf mailer entry docs in
- X examples/advanced
- X Fixed a race condition when the recipient mailbox did not exist
- X and two procmails simultaneously tried to create it
- X Cleaned up main() in procmail.c (localised variables)
- X Made sure the logfile was flushed before procmail exits
- X When procmail gobbles up the leading From_ line, it reads in 2KB
- X blocks now (instead of character wise; saves a few system calls)
- END_OF_FILE
- if test 10828 -ne `wc -c <'procmail/HISTORY'`; then
- echo shar: \"'procmail/HISTORY'\" unpacked with wrong size!
- fi
- # end of 'procmail/HISTORY'
- fi
- if test -f 'procmail/README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/README'\"
- else
- echo shar: Extracting \"'procmail/README'\" \(4984 characters\)
- sed "s/^X//" >'procmail/README' <<'END_OF_FILE'
- XFor installation instructions see the INSTALL file.
- X----------------------
- XProcmail & formail mail processing package.
- XCopyright (c) 1990-1993, S.R. van den Berg, The Netherlands.
- X
- XSome legal stuff:
- X
- XUse this software package at your own risk. The programmer cannot
- Xbe held liable for any incurred damages, directly or indirectly due to
- Xthe use or inability to use this software.
- X
- XYou are encouraged to distribute this package freely. This package is
- Xhowever not to be sold (minor transfer costs excepted) or included in
- Xany commercially sold software package (if you want to do this anyway,
- Xcontact me (address below), and we'll work something out).
- X
- XIf you distribute it, please leave the package intact. You are allowed to
- Xtake parts from this distribution and distribute these separately as long
- Xas you retain the copyright messages. If you redistribute any part of this
- Xpackage in a modified form, be sure to mark the parts you changed.
- XIf you have some important changes that might be useful to the rest of the
- Xworld, contact me instead.
- X
- X-------------------------- SYSTEM REQUIREMENTS -------------------------------
- X
- XAny *NIX-alike system.
- X
- XSendmail, smail, MMDF, mailsurr or compatible mailers (in effect any mailer
- Xthat can process RFC-822 compliant mails).
- X
- XThe most important system calls that need to be supported (among others):
- Xdup(),wait(),getpwnam(),fork(),pipe()
- X
- XFor a more complete list of all library references see "src/includes.h"
- X
- X------------------------------ DESCRIPTION -----------------------------------
- X
- XThe procmail mail processing program. (v2.90 1993/07/01)
- X
- XCan be used to create mail-servers, mailing lists, sort your incoming mail
- Xinto separate folders/files (real convenient when subscribing to one or more
- Xmailing lists or for prioritising your mail), preprocess your mail, start
- Xany programs upon mail arrival (e.g. to generate different chimes on your
- Xworkstation for different types of mail) or selectively forward certain
- Xincoming mail automatically to someone.
- X
- XThe accompanying formail program enables you to generate autoreplies, split up
- Xdigests/mailboxes into the original messages, do some very simple
- Xheader-munging/extraction, or force mail into mail-format (with leading From
- Xline).
- X
- XAlso included is a comprehensive mailinglist/archive management system.
- X
- X----------------------
- X
- XI made the utmost effort to make procmail as robust as any program can be
- X(every conceivable system error is caught *and* handled).
- X
- XProcmail was designed to deliver the mail under the worst conditions
- X(file system full, out of swap space, process table full, file table full,
- Xmissing support files, unavailable executables; it all doesn't matter).
- XShould (in the unlikely event) procmail be unable to deliver your mail
- Xsomewhere, the mail will bounce back to the sender or reenter the mailqueue
- X(your choice).
- X
- XFor a more extensive list of features see the FEATURES file.
- X
- X----------------------
- X
- XHowever, as with any program, bugs cannot be completely ruled out.
- XI tested the program extensively, and believe it should be relatively
- Xbug free (no known bug at the time). Should, however, anyone find any
- Xbugs (highly unlikely :-), I would be pleased (well, sort of :-) to hear
- Xabout it. Please send me the patches or bug report.
- XI'll look at them and will try to fix it in a future release.
- X(BTW, if you should find any spelling or grammar errors in these files,
- Xdon't hesitate to point them out to me; I like correct English just as much
- Xas you do).
- X
- X----------------------
- X
- XI would like to take the opportunity to express my gratitude in particular
- Xto these devoted users of the procmail-package. Without their constant
- Xfeedback procmail would not have looked the same:
- X
- X David W. Tamkin An excellent proofreader and betatester
- X <dattier@gagme.chi.il.us>
- X Josh Laff For stresstesting procmail (and me :-)
- X <jal@uiuc.edu>
- X Dan Jacobson For his many useful suggestions
- X <Dan_Jacobson@ATT.COM>
- X Rick Troxel Because I crashed his Convex way too often :-)
- X <rick@helix.nih.gov>
- X
- X----------------------
- X
- XPlease note that this program essentially is supposed to be static, that
- Xmeans no extra features (honouring the VNIX spirit) are supposed to be
- Xadded (though any useful suggestions will be appreciated and evaluated if
- Xtime permits).
- X
- XCheers,
- X Stephen R. van den Berg at RWTH-Aachen, Germany.
- X
- XInternet E-mail: berg@pool.informatik.rwth-aachen.de
- X berg@physik.tu-muenchen.de
- X
- XSnail-Mail: P.O.Box 21074
- X 6369 ZG Simpelveld
- X The Netherlands
- X
- XProcmail mailinglist: procmail-request@informatik.rwth-aachen.de
- X
- X----------------------
- XA recent version can be picked up at various comp.sources.misc archives.
- XThe latest version can be obtained directly from the ftp-archive at:
- X
- X ftp.informatik.rwth-aachen.de (137.226.112.172)
- X
- X as zipped tar file: pub/unix/procmail.tar.zip <152KB
- X as compressed tar file: pub/unix/procmail.tar.Z <216KB
- X in compressed shar format: pub/unix/procmail.??.Z 11 parts
- X----------------------
- END_OF_FILE
- if test 4984 -ne `wc -c <'procmail/README'`; then
- echo shar: \"'procmail/README'\" unpacked with wrong size!
- fi
- # end of 'procmail/README'
- fi
- if test ! -d 'procmail/examples' ; then
- echo shar: Creating directory \"'procmail/examples'\"
- mkdir 'procmail/examples'
- fi
- if test -f 'procmail/examples/1rmail' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/examples/1rmail'\"
- else
- echo shar: Extracting \"'procmail/examples/1rmail'\" \(400 characters\)
- sed "s/^X//" >'procmail/examples/1rmail' <<'END_OF_FILE'
- X#!/bin/sh
- X#
- X# specify the mailbox file you want to read on the command line
- X#
- XMAILDIR=$HOME/Mail
- Xcd $MAILDIR
- XLOCKFILE=$HOME/.lockmail
- Xif lockfile -! -r1 $LOCKFILE
- Xthen
- X echo Mail is currently arriving, please wait...
- X while
- X lockfile -! -4 -r2 $LOCKFILE
- X do
- X echo Mail is still arriving...
- X done
- Xfi
- Xtrap "rm -f $LOCKFILE;exit 0" 0 1 2 3 15
- X#
- X# Call you favourite mailer here.
- X#
- X/usr/ucb/mail -f $*
- END_OF_FILE
- if test 400 -ne `wc -c <'procmail/examples/1rmail'`; then
- echo shar: \"'procmail/examples/1rmail'\" unpacked with wrong size!
- fi
- # end of 'procmail/examples/1rmail'
- fi
- if test -f 'procmail/examples/2rmail' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/examples/2rmail'\"
- else
- echo shar: Extracting \"'procmail/examples/2rmail'\" \(392 characters\)
- sed "s/^X//" >'procmail/examples/2rmail' <<'END_OF_FILE'
- X#!/bin/sh
- X#
- X# specify the mailbox file you want to read on the command line
- X#
- XMAILDIR=$HOME/Mail
- Xcd $MAILDIR
- XLOCKFILE=$1.lock
- Xif lockfile -! -r1 $LOCKFILE
- Xthen
- X echo Mail is currently arriving, please wait...
- X while
- X lockfile -! -4 -r2 $LOCKFILE
- X do
- X echo Mail is still arriving...
- X done
- Xfi
- Xtrap "rm -f $LOCKFILE;exit 0" 0 1 2 3 15
- X#
- X# Call you favourite mailer here.
- X#
- X/usr/ucb/mail -f $*
- END_OF_FILE
- if test 392 -ne `wc -c <'procmail/examples/2rmail'`; then
- echo shar: \"'procmail/examples/2rmail'\" unpacked with wrong size!
- fi
- # end of 'procmail/examples/2rmail'
- fi
- if test -f 'procmail/examples/dirname' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/examples/dirname'\"
- else
- echo shar: Extracting \"'procmail/examples/dirname'\" \(474 characters\)
- sed "s/^X//" >'procmail/examples/dirname' <<'END_OF_FILE'
- X#! /bin/sh
- X: &&O= || exec /bin/sh $0 $argv:q # we're in a csh, feed myself to sh
- X#########################################################################
- X# dirname A substitute, for the deprived #
- X# #
- X# Created by S.R. van den Berg, The Netherlands #
- X#########################################################################
- X#$Id: dirname,v 1.1 1993/06/23 12:55:40 berg Exp $
- X
- Xt=`expr "$1" : "\(.*/\)[^/]*$"`
- X
- Xif test -z "$t"
- Xthen
- X echo .
- Xelse
- X echo "$t"
- Xfi
- END_OF_FILE
- if test 474 -ne `wc -c <'procmail/examples/dirname'`; then
- echo shar: \"'procmail/examples/dirname'\" unpacked with wrong size!
- fi
- chmod +x 'procmail/examples/dirname'
- # end of 'procmail/examples/dirname'
- fi
- if test ! -d 'procmail/mailinglist' ; then
- echo shar: Creating directory \"'procmail/mailinglist'\"
- mkdir 'procmail/mailinglist'
- fi
- if test ! -d 'procmail/mailinglist/bin' ; then
- echo shar: Creating directory \"'procmail/mailinglist/bin'\"
- mkdir 'procmail/mailinglist/bin'
- fi
- if test -f 'procmail/mailinglist/bin/arch_trunc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/mailinglist/bin/arch_trunc'\"
- else
- echo shar: Extracting \"'procmail/mailinglist/bin/arch_trunc'\" \(440 characters\)
- sed "s/^X//" >'procmail/mailinglist/bin/arch_trunc' <<'END_OF_FILE'
- X#! /bin/sh
- X:
- X#$Id: arch_trunc,v 1.3 1993/03/02 14:40:37 berg Exp $
- X
- Xecho=echo # /bin/echo
- Xls=ls # /bin/ls
- Xsed=sed # /bin/sed
- Xrm=rm # /bin/rm
- X
- Xif cd archive && cd latest
- Xthen
- X case "$1" in # do not start removing every time, to decrease load
- X *[248])
- X $rm -f `$ls -t | $sed -e '1,'$archive_hist' d' -e '/[^0-9]/ d' ` ;;
- X esac
- X
- X $echo "$1"
- Xelse
- X $echo "Don't start this script directly, it is used in rc.request"
- X exit 64
- Xfi
- END_OF_FILE
- if test 440 -ne `wc -c <'procmail/mailinglist/bin/arch_trunc'`; then
- echo shar: \"'procmail/mailinglist/bin/arch_trunc'\" unpacked with wrong size!
- fi
- chmod +x 'procmail/mailinglist/bin/arch_trunc'
- # end of 'procmail/mailinglist/bin/arch_trunc'
- fi
- if test ! -d 'procmail/mailinglist/etc' ; then
- echo shar: Creating directory \"'procmail/mailinglist/etc'\"
- mkdir 'procmail/mailinglist/etc'
- fi
- if test -f 'procmail/mailinglist/etc/subscribe.txt' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/mailinglist/etc/subscribe.txt'\"
- else
- echo shar: Extracting \"'procmail/mailinglist/etc/subscribe.txt'\" \(351 characters\)
- sed "s/^X//" >'procmail/mailinglist/etc/subscribe.txt' <<'END_OF_FILE'
- XThis is an automated subscription mechanism. For your verification, a
- Xtranscript of the original subscription request is included below.
- X
- XIf the wrong address has been subscribed and you seem to be unable to fix it
- Xyourself, reply to this message now (quoting it entirely (for diagnostic
- Xpurposes), and of course adding any comments you see fit).
- X--
- END_OF_FILE
- if test 351 -ne `wc -c <'procmail/mailinglist/etc/subscribe.txt'`; then
- echo shar: \"'procmail/mailinglist/etc/subscribe.txt'\" unpacked with wrong size!
- fi
- # end of 'procmail/mailinglist/etc/subscribe.txt'
- fi
- if test -f 'procmail/mailinglist/install.sh2' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/mailinglist/install.sh2'\"
- else
- echo shar: Extracting \"'procmail/mailinglist/install.sh2'\" \(488 characters\)
- sed "s/^X//" >'procmail/mailinglist/install.sh2' <<'END_OF_FILE'
- X#! /bin/sh
- X: &&O= || exec /bin/sh install.sh2 # we're in a csh, feed myself to sh
- X#$Id: install.sh2,v 1.1 1993/04/13 15:47:47 berg Exp $
- X
- Xtest -z "$bindir" && echo "Call install.sh instead" && exit 64
- X
- Xhfile=targetdir.h
- X
- Xcat >$hfile <<HERE
- X#define TARGETDIR "$target"
- X#define LISTID "$listid"
- X#define PROCMAIL "../$bindir/procmail"
- X#define INIT_PATH "PATH=../$bindir"
- XHERE
- X
- Xcmp $hfile ../src/$hfile 2>/dev/null 1>&2 || cp $hfile ../src/$hfile
- X
- Xcd ../src
- Xmake multigram
- Xcd ../mailinglist
- END_OF_FILE
- if test 488 -ne `wc -c <'procmail/mailinglist/install.sh2'`; then
- echo shar: \"'procmail/mailinglist/install.sh2'\" unpacked with wrong size!
- fi
- chmod +x 'procmail/mailinglist/install.sh2'
- # end of 'procmail/mailinglist/install.sh2'
- fi
- if test ! -d 'procmail/man' ; then
- echo shar: Creating directory \"'procmail/man'\"
- mkdir 'procmail/man'
- fi
- if test -f 'procmail/man/Makefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/man/Makefile'\"
- else
- echo shar: Extracting \"'procmail/man/Makefile'\" \(320 characters\)
- sed "s/^X//" >'procmail/man/Makefile' <<'END_OF_FILE'
- X#$Id: Makefile,v 1.3 1992/11/11 13:58:08 berg Exp $
- X
- XHIDEMAKE=$(MAKE)
- X
- Xall: init
- X $(HIDEMAKE) make $@
- X
- X# The only real thing that can be made right now is:
- X
- Xinit:
- X cd ..; $(MAKE) make init
- X
- XMakefile makefile Makefiles makefiles: init
- X
- Xprocmail.1 procmailrc.5 procmailex.5 lockfile.1 formail.1: init
- X $(HIDEMAKE) make $@
- END_OF_FILE
- if test 320 -ne `wc -c <'procmail/man/Makefile'`; then
- echo shar: \"'procmail/man/Makefile'\" unpacked with wrong size!
- fi
- # end of 'procmail/man/Makefile'
- fi
- if test -f 'procmail/man/Makefile.0' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/man/Makefile.0'\"
- else
- echo shar: Extracting \"'procmail/man/Makefile.0'\" \(539 characters\)
- sed "s/^X//" >'procmail/man/Makefile.0' <<'END_OF_FILE'
- X
- X#$Id: Makefile.0,v 1.6 1993/04/13 15:48:19 berg Exp $
- X
- Xall: $(MANSS)
- X
- Xmake:
- X @$(SHELL) -c "exit 0"
- X
- X../config.check:
- X @cd ..; $(MAKE) config.check
- X
- Xman.sed: man_sed
- X
- Xman_sed:
- X @cd ../src; $(MAKE) ../man/man.sed
- X
- Xclean:
- X $(RM) $(MANSS) man.sed* _Makefile core
- X
- XMakefile: ../Makefile Makefile.0
- X @echo "You have made changes to the master Makefile, in order for"
- X @echo "these changes to show through, you will first have to do:"
- X @echo "$(MAKE) makefiles"
- X
- Xmakefiles Makefiles makefile:
- X cd ..; $(MAKE) makefiles
- X
- Xinit:
- X cd ..; $(MAKE) $@
- END_OF_FILE
- if test 539 -ne `wc -c <'procmail/man/Makefile.0'`; then
- echo shar: \"'procmail/man/Makefile.0'\" unpacked with wrong size!
- fi
- # end of 'procmail/man/Makefile.0'
- fi
- if test -f 'procmail/man/README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/man/README'\"
- else
- echo shar: Extracting \"'procmail/man/README'\" \(428 characters\)
- sed "s/^X//" >'procmail/man/README' <<'END_OF_FILE'
- XPlease note that the *.man files in this directory still need to be converted
- Xinto their *.1 and *.5 counterparts. You can convert them by typing "make" in
- Xthis directory or in the directory above.
- X
- XThe man pages *.1 and *.5 can then be displayed as readable plain text
- Xby typing something like this:
- X
- X nroff -man procmail.1
- X
- Xor they can be moved to man directories in your MANPATH to be be viewed with
- Xthe normal man command.
- END_OF_FILE
- if test 428 -ne `wc -c <'procmail/man/README'`; then
- echo shar: \"'procmail/man/README'\" unpacked with wrong size!
- fi
- # end of 'procmail/man/README'
- fi
- if test -f 'procmail/patchlevel.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/patchlevel.h'\"
- else
- echo shar: Extracting \"'procmail/patchlevel.h'\" \(429 characters\)
- sed "s/^X//" >'procmail/patchlevel.h' <<'END_OF_FILE'
- X#define VERSION "\
- Xprocmail v2.90 1993/07/01 written and created by Stephen R. van den Berg\n\
- X\t\t\t\tberg@pool.informatik.rwth-aachen.de\n\
- X\t\t\t\tberg@physik.tu-muenchen.de\n\
- X\n\
- XSubmit questions/answers to the procmail-related mailinglist by sending to:\n\
- X\tprocmail@informatik.rwth-aachen.de\n\
- X\n\
- XAnd of course, subscription and information requests for this list to:\n\
- X\tprocmail-request@informatik.rwth-aachen.de\n"
- END_OF_FILE
- if test 429 -ne `wc -c <'procmail/patchlevel.h'`; then
- echo shar: \"'procmail/patchlevel.h'\" unpacked with wrong size!
- fi
- # end of 'procmail/patchlevel.h'
- fi
- if test ! -d 'procmail/src' ; then
- echo shar: Creating directory \"'procmail/src'\"
- mkdir 'procmail/src'
- fi
- if test -f 'procmail/src/Makefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/src/Makefile'\"
- else
- echo shar: Extracting \"'procmail/src/Makefile'\" \(322 characters\)
- sed "s/^X//" >'procmail/src/Makefile' <<'END_OF_FILE'
- X#$Id: Makefile,v 1.3 1992/11/11 13:58:39 berg Exp $
- X
- XHIDEMAKE=$(MAKE)
- X
- Xall: init
- X $(HIDEMAKE) make $@
- X
- X# The only real thing that can be made right now is:
- X
- Xinit:
- X cd ..; $(MAKE) make init
- X
- XMakefile makefile Makefiles makefiles: init
- X
- Xprocmail lockfile formail mailstat ../autoconf.h autoconf.h: init
- X $(HIDEMAKE) make $@
- END_OF_FILE
- if test 322 -ne `wc -c <'procmail/src/Makefile'`; then
- echo shar: \"'procmail/src/Makefile'\" unpacked with wrong size!
- fi
- # end of 'procmail/src/Makefile'
- fi
- if test -f 'procmail/src/common.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/src/common.h'\"
- else
- echo shar: Extracting \"'procmail/src/common.h'\" \(462 characters\)
- sed "s/^X//" >'procmail/src/common.h' <<'END_OF_FILE'
- X/*$Id: common.h,v 1.5 1992/11/11 13:58:54 berg Exp $*/
- X
- Xvoid
- X shexec P((const char*const*argv)),
- X detab P((char*p)),
- X ultstr P((int minwidth,unsigned long val,char*dest));
- Xchar*
- X pstrspn P((const char*whole,const char*const sub));
- Xint
- X strnIcmp P((const char*a,const char*b,size_t l));
- X
- X#ifdef NOstrcspn
- Xint
- X strcspn P((const char*const whole,const char*const sub));
- X#endif
- X
- X#define LENoffset (TABWIDTH*LENtSTOP)
- X#define MAXfoldlen (LENoffset-STRLEN(sfolder)-1)
- END_OF_FILE
- if test 462 -ne `wc -c <'procmail/src/common.h'`; then
- echo shar: \"'procmail/src/common.h'\" unpacked with wrong size!
- fi
- # end of 'procmail/src/common.h'
- fi
- if test -f 'procmail/src/cstdio.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/src/cstdio.h'\"
- else
- echo shar: Extracting \"'procmail/src/cstdio.h'\" \(322 characters\)
- sed "s/^X//" >'procmail/src/cstdio.h' <<'END_OF_FILE'
- X/*$Id: cstdio.h,v 1.5 1992/11/24 15:59:58 berg Exp $*/
- X
- Xvoid
- X pushrc P((const char*const name)),
- X closerc P((void)),
- X ungetb P((const x)),
- X getlline P((char*target));
- Xint
- X poprc P((void)),
- X bopen P((const char*const name)),
- X getbl P((char*p)),
- X getb P((void)),
- X testb P((const x)),
- X sgetc P((void)),
- X skipspace P((void));
- END_OF_FILE
- if test 322 -ne `wc -c <'procmail/src/cstdio.h'`; then
- echo shar: \"'procmail/src/cstdio.h'\" unpacked with wrong size!
- fi
- # end of 'procmail/src/cstdio.h'
- fi
- if test -f 'procmail/src/ecommon.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/src/ecommon.c'\"
- else
- echo shar: Extracting \"'procmail/src/ecommon.c'\" \(449 characters\)
- sed "s/^X//" >'procmail/src/ecommon.c' <<'END_OF_FILE'
- X#include "includes.h"
- X#include "ecommon.h"
- X#include "common.h"
- X
- Xvoid
- X nlog P((const char*const a));
- X
- Xstatic const char outofmem[]="Out of memory\n";
- X
- Xvoid*tmalloc(len)const size_t len;
- X{ void*p;
- X if(p=malloc(len))
- X return p;
- X nlog(outofmem);exit(EX_OSERR);
- X}
- X
- Xvoid*trealloc(old,len)void*old;const size_t len;
- X{ if(old=realloc(old,len))
- X return old;
- X nlog(outofmem);exit(EX_OSERR);
- X}
- X
- Xvoid tfree(a)void*a;
- X{ free(a);
- X}
- X
- X#include "shell.h"
- END_OF_FILE
- if test 449 -ne `wc -c <'procmail/src/ecommon.c'`; then
- echo shar: \"'procmail/src/ecommon.c'\" unpacked with wrong size!
- fi
- # end of 'procmail/src/ecommon.c'
- fi
- if test -f 'procmail/src/ecommon.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/src/ecommon.h'\"
- else
- echo shar: Extracting \"'procmail/src/ecommon.h'\" \(158 characters\)
- sed "s/^X//" >'procmail/src/ecommon.h' <<'END_OF_FILE'
- X/*$Id: ecommon.h,v 1.3 1993/01/22 13:42:24 berg Exp $*/
- X
- Xvoid
- X *tmalloc Q((const size_t len)),
- X *trealloc Q((void*old,const size_t len)),
- X tfree P((void*a));
- END_OF_FILE
- if test 158 -ne `wc -c <'procmail/src/ecommon.h'`; then
- echo shar: \"'procmail/src/ecommon.h'\" unpacked with wrong size!
- fi
- # end of 'procmail/src/ecommon.h'
- fi
- if test -f 'procmail/src/fields.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/src/fields.h'\"
- else
- echo shar: Extracting \"'procmail/src/fields.h'\" \(496 characters\)
- sed "s/^X//" >'procmail/src/fields.h' <<'END_OF_FILE'
- X/*$Id: fields.h,v 1.4 1993/04/27 17:33:57 berg Exp $*/
- X
- Xstruct field
- X *findf P((const struct field*const p,const struct field*hdr)),
- X **addfield Q((struct field**pointer,const char*const text,
- X const size_t totlen));
- Xvoid
- X concatenate P((struct field*const fldp)),
- X renfield Q((struct field**const pointer,const size_t oldl,
- X const char*const newname,const size_t newl)),
- X flushfield P((struct field**pointer)),
- X dispfield P((const struct field*p)),
- X addbuf P((void));
- Xint
- X readhead P((void));
- END_OF_FILE
- if test 496 -ne `wc -c <'procmail/src/fields.h'`; then
- echo shar: \"'procmail/src/fields.h'\" unpacked with wrong size!
- fi
- # end of 'procmail/src/fields.h'
- fi
- if test -f 'procmail/src/goodies.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/src/goodies.h'\"
- else
- echo shar: Extracting \"'procmail/src/goodies.h'\" \(386 characters\)
- sed "s/^X//" >'procmail/src/goodies.h' <<'END_OF_FILE'
- X/*$Id: goodies.h,v 1.8 1993/06/21 14:24:20 berg Exp $*/
- X
- Xvoid
- X readparse P((char*p,int(*const fpgetc)(),const sarg)),
- X sputenv P((const char*const a)),
- X primeStdout P((void)),
- X retStdout P((char*const newmyenv)),
- X postStdout P((void));
- Xint
- X waitfor Q((const pid_t pid));
- X
- Xextern long Stdfilled;
- X#ifndef GOT_bin_test
- Xextern const char test[];
- X#endif
- X
- Xextern const char*Tmnate,*All_args;
- END_OF_FILE
- if test 386 -ne `wc -c <'procmail/src/goodies.h'`; then
- echo shar: \"'procmail/src/goodies.h'\" unpacked with wrong size!
- fi
- # end of 'procmail/src/goodies.h'
- fi
- if test -f 'procmail/src/locking.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/src/locking.h'\"
- else
- echo shar: Extracting \"'procmail/src/locking.h'\" \(434 characters\)
- sed "s/^X//" >'procmail/src/locking.h' <<'END_OF_FILE'
- X/*$Id: locking.h,v 1.4 1993/06/21 14:24:32 berg Exp $*/
- X
- Xvoid
- X lockit P((char*name,char**const lockp)),
- X lcllock P((void)),
- X unlock P((char**const lockp));
- Xint
- X xcreat Q((const char*const name,const mode_t mode,time_t*const tim,
- X const chownit));
- X
- X#ifdef NOfcntl_lock
- X#ifndef USElockf
- X#ifndef USEflock
- X#define fdlock(fd) 0
- X#define fdunlock() 0
- X#endif
- X#endif
- X#endif
- X#ifndef fdlock
- Xint
- X fdlock P((int fd)),
- X fdunlock P((void));
- X#endif
- END_OF_FILE
- if test 434 -ne `wc -c <'procmail/src/locking.h'`; then
- echo shar: \"'procmail/src/locking.h'\" unpacked with wrong size!
- fi
- # end of 'procmail/src/locking.h'
- fi
- if test -f 'procmail/src/network.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/src/network.h'\"
- else
- echo shar: Extracting \"'procmail/src/network.h'\" \(447 characters\)
- sed "s/^X//" >'procmail/src/network.h' <<'END_OF_FILE'
- X/*$Id: network.h,v 1.5 1993/01/28 14:22:17 berg Exp $*/
- X
- X#include <sys/socket.h> /* socket() sendto() AF_INET
- X /* SOCK_DGRAM */
- X#include <netdb.h> /* gethostbyname() getservbyname()
- X /* getprotobyname() */
- X#include <netinet/in.h> /* htons() struct sockaddr_in */
- X
- X#ifndef BIFF_serviceport
- X#define BIFF_serviceport COMSATservice
- X#endif
- X
- X#ifndef h_0addr_list
- X#define h_0addr_list h_addr_list[0] /* POSIX struct member */
- X#endif
- END_OF_FILE
- if test 447 -ne `wc -c <'procmail/src/network.h'`; then
- echo shar: \"'procmail/src/network.h'\" unpacked with wrong size!
- fi
- # end of 'procmail/src/network.h'
- fi
- if test -f 'procmail/src/robust.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/src/robust.h'\"
- else
- echo shar: Extracting \"'procmail/src/robust.h'\" \(486 characters\)
- sed "s/^X//" >'procmail/src/robust.h' <<'END_OF_FILE'
- X/*$Id: robust.h,v 1.5 1993/03/05 14:40:27 berg Exp $*/
- X
- Xvoid
- X *tmalloc Q((const size_t len)),
- X *trealloc Q((void*const old,const size_t len)),
- X tfree P((void*const p)),
- X opnlog P((const char*file));
- Xpid_t
- X sfork P((void));
- Xint
- X opena P((const char*const a)),
- X ropen Q((const char*const name,const mode,const mode_t mask)),
- X rpipe P((int fd[2])),
- X rdup P((const p)),
- X rclose P((const fd)),
- X rread P((const fd,void*const a,const len)),
- X rwrite P((const fd,const void*const a,const len));
- END_OF_FILE
- if test 486 -ne `wc -c <'procmail/src/robust.h'`; then
- echo shar: \"'procmail/src/robust.h'\" unpacked with wrong size!
- fi
- # end of 'procmail/src/robust.h'
- fi
- if test -f 'procmail/src/shell.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/src/shell.h'\"
- else
- echo shar: Extracting \"'procmail/src/shell.h'\" \(249 characters\)
- sed "s/^X//" >'procmail/src/shell.h' <<'END_OF_FILE'
- X/*$Id: shell.h,v 1.4 1993/06/14 13:13:26 berg Exp $*/
- X
- X#ifdef malloc
- X#undef malloc
- X#endif
- X#define malloc(n) tmalloc((size_t)(n))
- X#define realloc(p,n) trealloc(p,(size_t)(n))
- X#define free(p) tfree(p)
- X#define tmemmove(t,f,n) memmove(t,f,(size_t)(n))
- END_OF_FILE
- if test 249 -ne `wc -c <'procmail/src/shell.h'`; then
- echo shar: \"'procmail/src/shell.h'\" unpacked with wrong size!
- fi
- # end of 'procmail/src/shell.h'
- fi
- if test -f 'procmail/src/sublib.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'procmail/src/sublib.h'\"
- else
- echo shar: Extracting \"'procmail/src/sublib.h'\" \(385 characters\)
- sed "s/^X//" >'procmail/src/sublib.h' <<'END_OF_FILE'
- X/*$Id: sublib.h,v 1.7 1993/01/26 14:49:54 berg Exp $*/
- X
- X#ifdef NOmemmove
- Xvoid
- X *smemmove Q((void*To,const void*From,size_t count));
- X#endif
- X
- X#ifdef NOstrpbrk
- Xchar
- X *strpbrk P((const char*const st,const char*del));
- X#endif
- X
- X#ifdef NOstrstr
- Xchar
- X *strstr P((const char*whole,const char*const part));
- X#endif
- X
- X#ifdef NOstrtol
- Xlong
- X strtol P((const char*start,const char**const ptr));
- X#endif
- END_OF_FILE
- if test 385 -ne `wc -c <'procmail/src/sublib.h'`; then
- echo shar: \"'procmail/src/sublib.h'\" unpacked with wrong size!
- fi
- # end of 'procmail/src/sublib.h'
- fi
- echo shar: End of archive 1 \(of 11\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 11 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
- --
- Sincerely, berg@pool.informatik.rwth-aachen.de
- Stephen R. van den Berg (AKA BuGless). berg@physik.tu-muenchen.de
-
- "Always look on the bright side of life!"
-
- exit 0 # Just in case...
-