X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=rfc822.c;h=5dc33e2bb1b358622c2d15f61b1e1d5a3aca2ce2;hp=5f20de47290f7a1016b6809984141453f8855195;hb=47a98766051a91ceb5e60f7ff5eedc40ea161d61;hpb=0f44dc85fc1280372ffab911d701e703d803fb4b diff --git a/rfc822.c b/rfc822.c index 5f20de4..5dc33e2 100644 --- a/rfc822.c +++ b/rfc822.c @@ -16,6 +16,7 @@ #include #include "mutt.h" +#include "ascii.h" #include "mutt_idna.h" #include "lib/mem.h" @@ -70,12 +71,9 @@ void rfc822_free_address (ADDRESS ** p) while (*p) { t = *p; *p = (*p)->next; -#ifdef EXACT_ADDRESS - FREE (&t->val); -#endif - FREE (&t->personal); - FREE (&t->mailbox); - FREE (&t); + mem_free (&t->personal); + mem_free (&t->mailbox); + mem_free (&t); } } @@ -208,11 +206,11 @@ static const char *parse_address (const char *s, } terminate_string (token, *tokenlen, tokenmax); - addr->mailbox = safe_strdup (token); + addr->mailbox = str_dup (token); if (*commentlen && !addr->personal) { terminate_string (comment, *commentlen, commentmax); - addr->personal = safe_strdup (comment); + addr->personal = str_dup (comment); } return s; @@ -257,7 +255,7 @@ static const char *parse_route_addr (const char *s, } if (!addr->mailbox) - addr->mailbox = safe_strdup ("@"); + addr->mailbox = str_dup ("@"); s++; return s; @@ -325,13 +323,9 @@ ADDRESS *rfc822_parse_adrlist (ADDRESS * top, const char *s) } else if (commentlen && last && !last->personal) { terminate_buffer (comment, commentlen); - last->personal = safe_strdup (comment); + last->personal = str_dup (comment); } -#ifdef EXACT_ADDRESS - if (last && !last->val) - last->val = str_substrdup (begin, s); -#endif commentlen = 0; phraselen = 0; s++; @@ -352,7 +346,7 @@ ADDRESS *rfc822_parse_adrlist (ADDRESS * top, const char *s) else if (*s == ':') { cur = rfc822_new_address (); terminate_buffer (phrase, phraselen); - cur->mailbox = safe_strdup (phrase); + cur->mailbox = str_dup (phrase); cur->group = 1; if (last) @@ -361,10 +355,6 @@ ADDRESS *rfc822_parse_adrlist (ADDRESS * top, const char *s) top = cur; last = cur; -#ifdef EXACT_ADDRESS - last->val = str_substrdup (begin, s); -#endif - phraselen = 0; commentlen = 0; s++; @@ -379,12 +369,8 @@ ADDRESS *rfc822_parse_adrlist (ADDRESS * top, const char *s) } else if (commentlen && last && !last->personal) { terminate_buffer (comment, commentlen); - last->personal = safe_strdup (comment); + last->personal = str_dup (comment); } -#ifdef EXACT_ADDRESS - if (last && !last->val) - last->val = str_substrdup (begin, s); -#endif /* add group terminator */ cur = rfc822_new_address (); @@ -404,10 +390,10 @@ ADDRESS *rfc822_parse_adrlist (ADDRESS * top, const char *s) cur = rfc822_new_address (); if (phraselen) { if (cur->personal) - FREE (&cur->personal); + mem_free (&cur->personal); /* if we get something like "Michael R. Elkins" remove the quotes */ rfc822_dequote_comment (phrase); - cur->personal = safe_strdup (phrase); + cur->personal = str_dup (phrase); } if ((ps = parse_route_addr (s + 1, comment, &commentlen, @@ -449,12 +435,8 @@ ADDRESS *rfc822_parse_adrlist (ADDRESS * top, const char *s) } else if (commentlen && last && !last->personal) { terminate_buffer (comment, commentlen); - last->personal = safe_strdup (comment); + last->personal = str_dup (comment); } -#ifdef EXACT_ADDRESS - if (last) - last->val = str_substrdup (begin, s); -#endif return top; } @@ -465,9 +447,9 @@ void rfc822_qualify (ADDRESS * addr, const char *host) for (; addr; addr = addr->next) if (!addr->group && addr->mailbox && strchr (addr->mailbox, '@') == NULL) { - p = safe_malloc (safe_strlen (addr->mailbox) + safe_strlen (host) + 2); + p = mem_malloc (str_len (addr->mailbox) + str_len (host) + 2); sprintf (p, "%s@%s", addr->mailbox, host); /* __SPRINTF_CHECKED__ */ - FREE (&addr->mailbox); + mem_free (&addr->mailbox); addr->mailbox = p; } } @@ -508,25 +490,6 @@ void rfc822_write_address_single (char *buf, size_t buflen, ADDRESS * addr, buflen--; /* save room for the terminal nul */ -#ifdef EXACT_ADDRESS - if (addr->val) { - if (!buflen) - goto done; - strfcpy (pbuf, addr->val, buflen); - len = safe_strlen (pbuf); - pbuf += len; - buflen -= len; - if (addr->group) { - if (!buflen) - goto done; - *pbuf++ = ':'; - buflen--; - *pbuf = 0; - } - return; - } -#endif - if (addr->personal) { if (strpbrk (addr->personal, RFC822Specials)) { if (!buflen) @@ -554,7 +517,7 @@ void rfc822_write_address_single (char *buf, size_t buflen, ADDRESS * addr, if (!buflen) goto done; strfcpy (pbuf, addr->personal, buflen); - len = safe_strlen (pbuf); + len = str_len (pbuf); pbuf += len; buflen -= len; } @@ -577,11 +540,11 @@ void rfc822_write_address_single (char *buf, size_t buflen, ADDRESS * addr, goto done; if (ascii_strcmp (addr->mailbox, "@") && !display) { strfcpy (pbuf, addr->mailbox, buflen); - len = safe_strlen (pbuf); + len = str_len (pbuf); } else if (ascii_strcmp (addr->mailbox, "@") && display) { strfcpy (pbuf, mutt_addr_for_display (addr), buflen); - len = safe_strlen (pbuf); + len = str_len (pbuf); } else { *pbuf = '\0'; @@ -625,7 +588,7 @@ void rfc822_write_address (char *buf, size_t buflen, ADDRESS * addr, int display) { char *pbuf = buf; - size_t len = safe_strlen (buf); + size_t len = str_len (buf); buflen--; /* save room for the terminal nul */ @@ -652,7 +615,7 @@ void rfc822_write_address (char *buf, size_t buflen, ADDRESS * addr, /* this should be safe since we always have at least 1 char passed into the above call, which means `pbuf' should always be nul terminated */ - len = safe_strlen (pbuf); + len = str_len (pbuf); pbuf += len; buflen -= len; @@ -678,11 +641,8 @@ ADDRESS *rfc822_cpy_adr_real (ADDRESS * addr) { ADDRESS *p = rfc822_new_address (); -#ifdef EXACT_ADDRESS - p->val = safe_strdup (addr->val); -#endif - p->personal = safe_strdup (addr->personal); - p->mailbox = safe_strdup (addr->mailbox); + p->personal = str_dup (addr->personal); + p->mailbox = str_dup (addr->mailbox); p->group = addr->group; return p; }