Update to latest madtty.
[apps/madmutt.git] / alias.h
diff --git a/alias.h b/alias.h
index 59086f5..de39368 100644 (file)
--- 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 <me@mutt.org>
 #ifndef _MUTT_ALIAS_H
 #define _MUTT_ALIAS_H
 
+#include <lib-lib/lib-lib.h>
+#include <lib-lua/lib-lua.h>
+#include "alias.li"
+
 #include <lib-mime/mime.h>
 
-typedef struct alias {
-  struct alias *self;           /* XXX - ugly hack */
-  char *name;
-  address_t *addr;
-  struct alias *next;
-  short tagged;
-  short del;
-  short num;
-} ALIAS;
-
-void mutt_create_alias (ENVELOPE *, address_t *);
-int mutt_check_alias_name (const char *, char *);
-address_t *mutt_get_address (ENVELOPE *, const char **);
-address_t *mutt_lookup_alias (const char *s);
-address_t *mutt_expand_aliases (address_t *);
-void mutt_expand_aliases_env (ENVELOPE *);
-void mutt_free_alias (ALIAS **);
-address_t *alias_reverse_lookup (address_t *);
-int mutt_alias_complete (char *, size_t);
-int mutt_addr_is_user (address_t *);
-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 */