+@import "lib-lua/base.cpkg"
+
+static rx_t *Alternates = NULL, *UnAlternates = NULL;
+rx_t *MailLists = NULL, *UnMailLists = NULL;
+rx_t *SubscribedLists = NULL, *UnSubscribedLists = NULL;
+
+@static_package MAlias {
+ /*
+ ** .pp
+ ** Specifies the format of the data displayed for the ``alias'' menu. The
+ ** following \fTprintf(3)\fP-style sequences are available:
+ ** .pp
+ ** .dl
+ ** .dt %a .dd alias name
+ ** .dt %f .dd flags - currently, a "d" for an alias marked for deletion
+ ** .dt %n .dd index number
+ ** .dt %r .dd address which alias expands to
+ ** .dt %t .dd character which indicates if the alias is tagged for inclusion
+ ** .de
+ */
+ string_t alias_format = m_strdup("%4n %2f %t %-10a %r");
+ /*
+ ** .pp
+ ** The default file in which to save aliases created by the
+ ** ``$create-alias'' function.
+ ** .pp
+ ** \fBNote:\fP Madmutt will not automatically source this file; you must
+ ** explicitly use the ``$source'' command for it to be executed.
+ */
+ path_t alias_file = m_strdup("~/.madmutt/aliases");
+
+ void alternates(rx_t rx) {
+ rx_list_remove(&UnAlternates, rx);
+ rx_list_add(&Alternates, rx);
+ RETURN();
+ };
+ void unalternates(rx_t rx) {
+ rx_list_remove(&Alternates, rx);
+ rx_list_add(&UnAlternates, rx);
+ RETURN();
+ };
+
+ void lists(rx_t rx) {
+ rx_list_remove(&UnMailLists, rx);
+ rx_list_add(&MailLists, rx);
+ RETURN();
+ };
+ void unlists(rx_t rx) {
+ rx_list_remove(&MailLists, rx);
+ rx_list_remove(&SubscribedLists, rx);
+ rx_list_add(&UnMailLists, rx);
+ RETURN();
+ };
+
+ void subscribe(rx_t rx) {
+ rx_list_remove(&UnMailLists, rx);
+ rx_list_remove(&UnSubscribedLists, rx);
+ rx_list_add(&MailLists, rx);
+ rx_list_add(&SubscribedLists, rx_dup(rx));
+ RETURN();
+ };
+ void unsubscribe(rx_t rx) {
+ rx_list_remove(&SubscribedLists, rx);
+ rx_list_add(&UnSubscribedLists, rx);
+ RETURN();
+ };