Move (un)?lists and (un)subscribe to MAlias.
[apps/madmutt.git] / alias.cpkg
index 2651026..d1b536c 100644 (file)
@@ -39,6 +39,8 @@
 @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 {
     /*
@@ -70,12 +72,36 @@ static rx_t *Alternates = NULL, *UnAlternates = NULL;
         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();
+    };
 };
 
 alias_t *Aliases;