diff options
Diffstat (limited to 'maildrop/rematchmsg.h')
| -rw-r--r-- | maildrop/rematchmsg.h | 53 | 
1 files changed, 53 insertions, 0 deletions
| diff --git a/maildrop/rematchmsg.h b/maildrop/rematchmsg.h new file mode 100644 index 0000000..8b6360c --- /dev/null +++ b/maildrop/rematchmsg.h @@ -0,0 +1,53 @@ +#ifndef	rematchmsg_h +#define	rematchmsg_h + + +class Message; + +#include	"config.h" +#include	<sys/types.h> +// #include	<unistd.h> +#include	"rematch.h" + +///////////////////////////////////////////////////////////////////////////// +// +// ReMatchMsg - match regular expression against the message directly. +// +// This class is derived from ReMatch, and is used when a regular expression +// should be matched against the message directly. +// It defines the virtual functions from ReMatch to go against the Message +// class itself. +// +// The constructor takes two flags:  headeronly, and mergelines. +// "headeronly" forces and end-of-file condition when a blank line is found +// in the message.  "mergelines" causes a newline character to be silently +// eaten, when it is immediately followed by a space.  The flags must be +// set as follows, in the following situations: +// +// A)  Match header and body:  mergelines is true, headeronly is false +// B)  Match header only:      mergelines is true, headeronly is true +// C)  Match body only:        mergelines is false, headeronly is false, +//                             also the message must be seeked to the +//                             start of the message contents. +// +///////////////////////////////////////////////////////////////////////////// + +class ReMatchMsg : public ReMatch { +	Message *msg; + +	int header_only, mergelines; +	int eof; +	int lastc; + +	off_t end_headers; +	off_t start; +public: +	ReMatchMsg(Message *m, int flag, int flag2); +	virtual ~ReMatchMsg(); + +	int NextChar(); +	int CurrentChar(); +	off_t GetCurrentPos(); +	void SetCurrentPos(off_t); +} ; +#endif | 
