projects
/
mmh
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
28183a4
)
Add this support for setting the CT_ADDR flag.
author
Ken Hornstein
<kenh@pobox.com>
Sat, 24 Mar 2012 06:15:49 +0000
(
02:15
-0400)
committer
Ken Hornstein
<kenh@pobox.com>
Sat, 24 Mar 2012 06:15:49 +0000
(
02:15
-0400)
uip/forwsbr.c
patch
|
blob
|
history
diff --git
a/uip/forwsbr.c
b/uip/forwsbr.c
index
20879ec
..
79dfd10
100755
(executable)
--- a/
uip/forwsbr.c
+++ b/
uip/forwsbr.c
@@
-21,6
+21,26
@@
static char msgbuf[256];
#define COMPFREE(c) if (c->c_text) free(c->c_text)
static char msgbuf[256];
#define COMPFREE(c) if (c->c_text) free(c->c_text)
+/*
+ * A list of components we treat as addresses
+ */
+
+static char *addrcomps[] = {
+ "from",
+ "sender",
+ "reply-to",
+ "to",
+ "cc",
+ "bcc",
+ "resent-from",
+ "resent-sender",
+ "resent-reply-to",
+ "resent-to",
+ "resent-cc",
+ "resent-bcc",
+ NULL
+};
+
int
build_form (char *form, char *digest, int *dat, char *from, char *to,
char *cc, char *fcc, char *subject, char *inputfile)
int
build_form (char *form, char *digest, int *dat, char *from, char *to,
char *cc, char *fcc, char *subject, char *inputfile)
@@
-29,7
+49,7
@@
build_form (char *form, char *digest, int *dat, char *from, char *to,
int fmtsize, state, char_read = 0;
unsigned i;
register char *nfs;
int fmtsize, state, char_read = 0;
unsigned i;
register char *nfs;
- char *line, tmpfil[BUFSIZ], name[NAMESZ];
+ char *line, tmpfil[BUFSIZ], name[NAMESZ], **ap;
FILE *tmp;
register struct comp *cptr;
struct format *fmt;
FILE *tmp;
register struct comp *cptr;
struct format *fmt;
@@
-50,6
+70,16
@@
build_form (char *form, char *digest, int *dat, char *from, char *to,
(void) fmt_compile (nfs, &fmt);
/*
(void) fmt_compile (nfs, &fmt);
/*
+ * Mark any components tagged as address components
+ */
+
+ for (ap = addrcomps; *ap; ap++) {
+ FINDCOMP (cptr, *ap);
+ if (cptr)
+ cptr->c_type |= CT_ADDR;
+ }
+
+ /*
* Process our message and save all relevant components
*
* A lot of this is taken from replsbr.c; should we try to merge
* Process our message and save all relevant components
*
* A lot of this is taken from replsbr.c; should we try to merge
@@
-71,9
+101,7
@@
build_form (char *form, char *digest, int *dat, char *from, char *to,
if (mh_strcasecmp(name, cptr->c_name) == 0) {
char_read += msg_count;
if (! cptr->c_text) {
if (mh_strcasecmp(name, cptr->c_name) == 0) {
char_read += msg_count;
if (! cptr->c_text) {
- i = strlen(cptr->c_text = strdup(msgbuf)) - 1;
- if (cptr->c_text[i] == '\n')
- cptr->c_text[i] = '\0';
+ cptr->c_text = strdup(msgbuf);
} else {
i = strlen(cptr->c_text) - 1;
if (cptr->c_text[i] == '\n') {
} else {
i = strlen(cptr->c_text) - 1;
if (cptr->c_text[i] == '\n') {