|
|
1.1 root 1: #include <stdio.h>
2: #include "mail.h"
3: #include "string.h"
4:
5: /* format of REMOTE FROM lines */
6: char *REMFROMRE =
7: "^>?From[ \t]+([^ \t]+)[ \t]+(.+)[ \t]+remote[ \t]+from[ \t]+(.*)\n$";
8: int REMSENDERMATCH = 1;
9: int REMDATEMATCH = 2;
10: int REMSYSMATCH = 3;
11:
12: /* format of LOCAL FROM lines */
13: char *FROMRE =
14: "^>?From[ \t]+([^ \t]+)[ \t]+(.+)\n$";
15: int SENDERMATCH = 1;
16: int DATEMATCH = 2;
17:
18: /* output a unix style local header */
19: void
20: print_header(fp, sender, date)
21: FILE *fp;
22: char *sender, *date;
23: {
24: fprintf(fp, "From %s %s\n", sender, date);
25: }
26:
27: /* output a unix style remote header */
28: void
29: print_remote_header(fp, sender, date, system)
30: FILE *fp;
31: char *sender, *date, *system;
32: {
33: fprintf(fp, "From %s %s remote from %s\n", sender, date, system);
34: }
35:
36: /* parse a mailbox style header */
37: int
38: parse_header(line, sender, date)
39: register char *line;
40: register string *sender, *date;
41: {
42: if (!IS_HEADER(line))
43: return -1;
44: line += sizeof("From ") - 1;
45: s_restart(sender);
46: while(*line==' '||*line=='\t')
47: line++;
48: while(*line&&*line!=' '&&*line!='\t')
49: s_putc(sender, *line++);
50: s_terminate(sender);
51: s_restart(date);
52: while(*line==' '||*line=='\t')
53: line++;
54: while(*line)
55: s_putc(date, *line++);
56: s_terminate(date);
57: return 0;
58: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.