X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/942561da2455ee50a1eb82c8c4f2bdb5e25133d1..8374c3c:/sbr/addrsbr.c?ds=inline diff --git a/sbr/addrsbr.c b/sbr/addrsbr.c index 0196b217..bc93672a 100644 --- a/sbr/addrsbr.c +++ b/sbr/addrsbr.c @@ -76,18 +76,24 @@ static char *grp = NULL; static char *note = NULL; static char err[BUFSIZ]; static char adr[BUFSIZ]; +static int eai = 0; + +void +enable_eai() { + eai = 1; +} char * getname (const char *addrs) { struct adrx *ap; - pers = mbox = host = route = grp = note = NULL; err[0] = '\0'; - if ((ap = getadrx (addrs ? addrs : "")) == NULL) + if ((ap = getadrx (addrs ? addrs : "", eai)) == NULL) { return NULL; + } strncpy (adr, ap->text, sizeof(adr)); pers = ap->pers; @@ -139,16 +145,7 @@ getm (char *str, char *dfhost, int dftype, char *eresult, size_t eresultsize) dftype = LOCALHOST; } - mp = (struct mailname *) mh_xcalloc ((size_t) 1, sizeof(*mp)); - if (mp == NULL) { - if (eresult) { - strncpy (eresult, "insufficient memory to represent address", - eresultsize); - eresult[eresultsize - 1] = '\0'; - } - return NULL; - } - + NEW0(mp); mp->m_next = NULL; mp->m_text = getcpy (str); if (pers) @@ -289,9 +286,9 @@ int ismymbox (struct mailname *np) { int oops; - register int len, i; - register char *cp; - register char *pp; + int len, i; + char *cp; + char *pp; char buffer[BUFSIZ]; struct mailname *mp; static char *am = NULL; @@ -413,7 +410,8 @@ local_test: ; for (mp = &mq; mp->m_next;) { mp = mp->m_next; if (!np->m_mbox) - continue; if ((len = strlen (cp = np->m_mbox)) + continue; + if ((len = strlen (cp = np->m_mbox)) < (i = strlen (pp = mp->m_mbox))) continue; switch (mp->m_type & W_MBOX) {