diff options
| author | Sam Varshavchik | 2013-08-19 16:39:41 -0400 | 
|---|---|---|
| committer | Sam Varshavchik | 2013-08-25 14:43:51 -0400 | 
| commit | 9c45d9ad13fdf439d44d7443ae75da15ea0223ed (patch) | |
| tree | 7a81a04cb51efb078ee350859a64be2ebc6b8813 /maildrop/messageinfo.C | |
| parent | a9520698b770168d1f33d6301463bb70a19655ec (diff) | |
| download | courier-libs-9c45d9ad13fdf439d44d7443ae75da15ea0223ed.tar.bz2 | |
Initial checkin
Imported from subversion report, converted to git. Updated all paths in
scripts and makefiles, reflecting the new directory hierarchy.
Diffstat (limited to 'maildrop/messageinfo.C')
| -rw-r--r-- | maildrop/messageinfo.C | 45 | 
1 files changed, 45 insertions, 0 deletions
| diff --git a/maildrop/messageinfo.C b/maildrop/messageinfo.C new file mode 100644 index 0000000..9f1b203 --- /dev/null +++ b/maildrop/messageinfo.C @@ -0,0 +1,45 @@ +#include "config.h" +#include	"messageinfo.h" +#include	"message.h" + + +void MessageInfo::info(Message &msg) +{ +Buffer	buf; +off_t	msgstart=0; + +	msgoffset=0; +	msg.Rewind(); +	fromname.reset(); +	for (;;) +	{ +		msgstart=msg.tell(); +		buf.reset(); +		if (msg.appendline(buf) < 0)	return; + +	int	l=buf.Length(); +	const	char *p=buf; + +		if (l && p[l-1] == '\n') +		{ +			--l; +			buf.Length(l); +		} + +		if (l == 0)	continue; + +		if (l < 5)	break; +		if (p[0] == 'F' && p[1] == 'r' && p[2] == 'o' && p[3] == 'm' +			&& p[4] == ' ') +		{ +		int i; +			for (i=5; i<l; i++) +				if (p[i] == ' ')	break; + +			fromname.reset(); +			fromname.append(p+5, i-5); +		} +		else	break; +	} +	msgoffset=msgstart; +} | 
