license statements.
[apps/madmutt.git] / rfc822.h
1 /*
2  * Copyright notice from original mutt:
3  * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>
4  *
5  * This file is part of mutt-ng, see http://www.muttng.org/.
6  * It's licensed under the GNU General Public License,
7  * please see the file GPL in the top level source directory.
8  */
9
10 #ifndef rfc822_h
11 #define rfc822_h
12
13 /* possible values for RFC822Error */
14 enum {
15   ERR_MEMORY = 1,
16   ERR_MISMATCH_PAREN,
17   ERR_MISMATCH_QUOTE,
18   ERR_BAD_ROUTE,
19   ERR_BAD_ROUTE_ADDR,
20   ERR_BAD_ADDR_SPEC
21 };
22
23 typedef struct address_t {
24   char *personal;               /* real name of address */
25   char *mailbox;                /* mailbox and host address */
26   int group;                    /* group mailbox? */
27   struct address_t *next;
28 } ADDRESS;
29
30 void rfc822_free_address (ADDRESS **);
31 void rfc822_qualify (ADDRESS *, const char *);
32 ADDRESS *rfc822_parse_adrlist (ADDRESS *, const char *s);
33 ADDRESS *rfc822_cpy_adr (ADDRESS * addr);
34 ADDRESS *rfc822_cpy_adr_real (ADDRESS * addr);
35 ADDRESS *rfc822_append (ADDRESS ** a, ADDRESS * b);
36 void rfc822_write_address (char *, size_t, ADDRESS *, int);
37 void rfc822_write_address_single (char *, size_t, ADDRESS *, int);
38 void rfc822_cat (char *, size_t, const char *, const char *);
39
40 extern int RFC822Error;
41 extern const char *RFC822Errors[];
42
43 #define rfc822_error(x) RFC822Errors[x]
44 #define rfc822_new_address() calloc(1,sizeof(ADDRESS))
45
46 #endif /* rfc822_h */