/*
+ * Copyright notice from original mutt:
* Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ *
+ * This file is part of mutt-ng, see http://www.muttng.org/.
+ * It's licensed under the GNU General Public License,
+ * please see the file GPL in the top level source directory.
*/
#if HAVE_CONFIG_H
#include <ctype.h>
#include <stdlib.h>
-#ifndef TESTING
#include "mutt.h"
-#else
-#define safe_strdup strdup
-#define safe_malloc malloc
-#define SKIPWS(x) while(isspace(*x))x++
-#define FREE(x) safe_free(x)
-#define ISSPACE isspace
-#define strfcpy(a,b,c) {if (c) {strncpy(a,b,c);a[c-1]=0;}}
-#define STRING 128
-#include "rfc822.h"
-#endif
-
#include "mutt_idna.h"
+#include "lib/mem.h"
+#include "lib/intl.h"
+#include "lib/str.h"
+
#define terminate_string(a, b, c) do { if ((b) < (c)) a[(b)] = 0; else \
a[(c)] = 0; } while (0)
while (*p) {
t = *p;
*p = (*p)->next;
-#ifdef EXACT_ADDRESS
- FREE (&t->val);
-#endif
FREE (&t->personal);
FREE (&t->mailbox);
FREE (&t);
last->personal = safe_strdup (comment);
}
-#ifdef EXACT_ADDRESS
- if (last && !last->val)
- last->val = mutt_substrdup (begin, s);
-#endif
commentlen = 0;
phraselen = 0;
s++;
top = cur;
last = cur;
-#ifdef EXACT_ADDRESS
- last->val = mutt_substrdup (begin, s);
-#endif
-
phraselen = 0;
commentlen = 0;
s++;
terminate_buffer (comment, commentlen);
last->personal = safe_strdup (comment);
}
-#ifdef EXACT_ADDRESS
- if (last && !last->val)
- last->val = mutt_substrdup (begin, s);
-#endif
/* add group terminator */
cur = rfc822_new_address ();
terminate_buffer (comment, commentlen);
last->personal = safe_strdup (comment);
}
-#ifdef EXACT_ADDRESS
- if (last)
- last->val = mutt_substrdup (begin, s);
-#endif
return top;
}
buflen--; /* save room for the terminal nul */
-#ifdef EXACT_ADDRESS
- if (addr->val) {
- if (!buflen)
- goto done;
- strfcpy (pbuf, addr->val, buflen);
- len = mutt_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)
{
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->group = addr->group;
tmp = tmp->next;
return tmp;
}
-
-#ifdef TESTING
-int safe_free (void **p)
-{
- free (*p); /* __MEM_CHECKED__ */
- *p = 0;
-}
-
-int main (int argc, char **argv)
-{
- ADDRESS *list;
- char buf[256];
-
-# if 0
- char *str =
- "michael, Michael Elkins <me@mutt.org>, testing a really complex address: this example <@contains.a.source.route,@with.multiple.hosts:address@example.com>;, lothar@of.the.hillpeople (lothar)";
-# else
- char *str = "a b c ";
-# endif
-
- list = rfc822_parse_adrlist (NULL, str);
- buf[0] = 0;
- rfc822_write_address (buf, sizeof (buf), list);
- rfc822_free_address (&list);
- puts (buf);
- exit (0);
-}
-#endif