diff options
Diffstat (limited to 'contrib/sendmail/src/parseaddr.c')
-rw-r--r-- | contrib/sendmail/src/parseaddr.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/contrib/sendmail/src/parseaddr.c b/contrib/sendmail/src/parseaddr.c index eca60f9..19bcf73 100644 --- a/contrib/sendmail/src/parseaddr.c +++ b/contrib/sendmail/src/parseaddr.c @@ -13,7 +13,7 @@ #include <sendmail.h> -SM_RCSID("@(#)$Id: parseaddr.c,v 8.401 2007/09/27 23:33:59 ca Exp $") +SM_RCSID("@(#)$Id: parseaddr.c,v 8.403 2008/02/08 02:27:35 ca Exp $") #include <sm/sendmail.h> #include "map.h" @@ -1460,6 +1460,7 @@ rewrite(pvp, ruleset, reclevel, e, maxatom) size_t trsize; char *replac; int endtoken; + bool external; STAB *map; char *mapname; char **key_rvp; @@ -1575,6 +1576,7 @@ rewrite(pvp, ruleset, reclevel, e, maxatom) true); argvect[0] = cbuf; replac = map_lookup(map, cbuf, argvect, &rstat, e); + external = replac != NULL; /* if no replacement, use default */ if (replac == NULL && default_rvp != NULL) @@ -1599,7 +1601,8 @@ rewrite(pvp, ruleset, reclevel, e, maxatom) { /* scan the new replacement */ xpvp = prescan(replac, '\0', pvpbuf, - sizeof(pvpbuf), NULL, NULL, + sizeof(pvpbuf), NULL, + external ? NULL : IntTokenTab, false); if (xpvp == NULL) { @@ -2263,7 +2266,7 @@ cataddr(pvp, evp, buf, sz, spacesub, external) { char *q; - natomtok = (ExtTokenTab[**pvp & 0xff] == ATM); + natomtok = (IntTokenTab[**pvp & 0xff] == ATM); if (oatomtok && natomtok) { *p++ = spacesub; |