X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=alias.h;h=de39368a43bcdd56cbc015ad3ab6911e3f31d263;hp=f20e8af5c45f194b2c8e39b152b01cec2b0b45a2;hb=3438f31945bb94bc4f4b9603ac47fcde03d5c073;hpb=ab12fea9d01b3b9bc53081ae4ccc046243f1cb9f diff --git a/alias.h b/alias.h index f20e8af..de39368 100644 --- a/alias.h +++ b/alias.h @@ -1,3 +1,21 @@ +/* + * 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., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Copyright © 2006 Pierre Habouzit + */ /* * Copyright notice from original mutt: * Copyright (C) 1996-2000 Michael R. Elkins @@ -9,28 +27,43 @@ #ifndef _MUTT_ALIAS_H #define _MUTT_ALIAS_H +#include +#include +#include "alias.li" + #include -typedef struct alias { - struct alias *self; /* XXX - ugly hack */ - char *name; - ADDRESS *addr; - struct alias *next; - short tagged; - short del; - short num; -} ALIAS; - -void mutt_create_alias (ENVELOPE *, ADDRESS *); -int mutt_check_alias_name (const char *, char *); -ADDRESS *mutt_get_address (ENVELOPE *, const char **); -ADDRESS *mutt_lookup_alias (const char *s); -ADDRESS *mutt_expand_aliases (ADDRESS *); -void mutt_expand_aliases_env (ENVELOPE *); -void mutt_free_alias (ALIAS **); -ADDRESS *alias_reverse_lookup (ADDRESS *); -int mutt_alias_complete (char *, size_t); -int mutt_addr_is_user (ADDRESS *); -void mutt_alias_menu (char *, size_t, ALIAS *); +typedef struct alias_t { + struct alias_t *next; + char *name; + address_t *addr; + short tagged; + short del; + short num; +} alias_t; + +extern alias_t *Aliases; +extern rx_t *MailLists, *UnMailLists; +extern rx_t *SubscribedLists, *UnSubscribedLists; + + +DO_INIT(alias_t, alias); +static inline void alias_wipe(alias_t *a) { + address_list_wipe(&a->addr); +} +DO_NEW(alias_t, alias); +DO_DELETE(alias_t, alias); +DO_SLIST(alias_t, alias, alias_delete); + +const address_t *alias_lookup(const char *s); +const address_t *alias_reverse_lookup(const address_t *); + +int mutt_addr_is_user(address_t *); +address_t *mutt_get_address(ENVELOPE *, const char **); +void mutt_create_alias(ENVELOPE *, address_t *); + +address_t *mutt_expand_aliases(address_t *); +void mutt_expand_aliases_env(ENVELOPE *); +int mutt_alias_complete(char *, size_t); #endif /* !_MUTT_ALIAS_H */