]> granicus.if.org Git - neomutt/commitdiff
Move group.[ch] to mutt/
authorPietro Cerutti <gahr@gahr.ch>
Fri, 25 May 2018 10:38:51 +0000 (10:38 +0000)
committerRichard Russon <rich@flatcap.org>
Wed, 12 Dec 2018 15:10:17 +0000 (15:10 +0000)
12 files changed:
Makefile.autosetup
email/address.c
email/address.h
globals.h
init.c
init.h
mutt/group.c [moved from group.c with 97% similarity]
mutt/group.h [moved from group.h with 96% similarity]
mutt/hash.h
mutt/mutt.h
pattern.c
send.c

index 3421e822401e7725d2480893e75c40666ad009f1..9b7addd815aef232e012bf59bafb944f6b972986 100644 (file)
@@ -64,7 +64,7 @@ NEOMUTT=      neomutt$(EXEEXT)
 NEOMUTTOBJS=   account.o addrbook.o alias.o bcache.o browser.o color.o commands.o \
                complete.o compose.o compress.o conststrings.o copy.o \
                curs_lib.o edit.o editmsg.o enriched.o enter.o \
-               filter.o flags.o git_ver.o group.o handler.o hdrline.o help.o hook.o \
+               filter.o flags.o git_ver.o handler.o hdrline.o help.o hook.o \
                index.o init.o keymap.o mailbox.o main.o menu.o muttlib.o \
                mutt_account.o mutt_attach.o mutt_body.o mutt_header.o \
                mutt_history.o mutt_logging.o mutt_parse.o mutt_signal.o \
@@ -249,7 +249,7 @@ ALLOBJS+=   $(LIBEMAILOBJS)
 # libmutt
 LIBMUTT=       libmutt.a
 LIBMUTTOBJS=   mutt/base64.o mutt/buffer.o mutt/charset.o mutt/date.o \
-               mutt/envlist.o mutt/exit.o mutt/file.o mutt/hash.o \
+               mutt/envlist.o mutt/exit.o mutt/file.o mutt/group.o mutt/hash.o \
                mutt/history.o mutt/list.o mutt/logging.o mutt/mapping.o \
                mutt/mbyte.o mutt/md5.o mutt/memory.o mutt/path.o mutt/regex.o \
                mutt/sha1.o mutt/signal.o mutt/string.o
index deed9e0515d5d980acf8bb523653d5ce15482998..f88e442c5045c2b36fc6ea110d19a205c06b2597 100644 (file)
@@ -1314,6 +1314,51 @@ struct Address *mutt_addrlist_dedupe(struct Address *addr)
       addr = addr->next;
     }
   }
+  return top;
+}
+
+/**
+ * mutt_addr_remove_xrefs - Remove cross-references
+ * @param a Reference list of Addresses
+ * @param b Address list to trim
+ * @retval ptr Updated Address list
+ *
+ * Remove addresses from "b" which are contained in "a"
+ */
+struct Address *mutt_addr_remove_xrefs(struct Address *a, struct Address *b)
+{
+  struct Address *p = NULL, *prev = NULL;
 
+  struct Address *top = b;
+  while (b)
+  {
+    for (p = a; p; p = p->next)
+    {
+      if (mutt_addr_cmp(p, b))
+        break;
+    }
+    if (p)
+    {
+      if (prev)
+      {
+        prev->next = b->next;
+        b->next = NULL;
+        mutt_addr_free(&b);
+        b = prev;
+      }
+      else
+      {
+        top = top->next;
+        b->next = NULL;
+        mutt_addr_free(&b);
+        b = top;
+      }
+    }
+    else
+    {
+      prev = b;
+      b = b->next;
+    }
+  }
   return top;
 }
index 4991876911e7e168deae8d13aa7a076bc537f5fb..55c46d39785b1c6f1623b1c737e2934aa2a002e1 100644 (file)
@@ -74,6 +74,7 @@ struct Address *mutt_addr_new(void);
 struct Address *mutt_addr_parse_list(struct Address *top, const char *s);
 struct Address *mutt_addr_parse_list2(struct Address *p, const char *s);
 void            mutt_addr_qualify(struct Address *addr, const char *host);
+struct Address *mutt_addr_remove_xrefs(struct Address *a, struct Address *b);
 int             mutt_addr_remove_from_list(struct Address **a, const char *mailbox);
 bool            mutt_addr_search(struct Address *a, struct Address *lst);
 void            mutt_addr_set_intl(struct Address *a, char *intl_mailbox);
index 09a161e518a9239e0dc1533a7ed1d6f488bde45f..d98e4b42c9b39bd111c634821f1e41d78e5125aa 100644 (file)
--- a/globals.h
+++ b/globals.h
@@ -54,7 +54,6 @@ WHERE char *LastFolder;    ///< Previously selected mailbox
 
 extern const char *GitVer;
 
-WHERE struct Hash *Groups;         ///< Hash table of alias groups (name -> Group)
 WHERE struct Hash *ReverseAliases; ///< Hash table of aliases (email address -> alias)
 WHERE struct Hash *TagFormats;     ///< Hash table of tag-formats (tag -> format string)
 
diff --git a/init.c b/init.c
index 9dea765cd7a91de317f1f2da8954fb610e32066d..20fdc8d265e014fc8bd56a1fa342250f39932027 100644 (file)
--- a/init.c
+++ b/init.c
@@ -48,7 +48,6 @@
 #include "alias.h"
 #include "context.h"
 #include "filter.h"
-#include "group.h"
 #include "hcache/hcache.h"
 #include "keymap.h"
 #include "menu.h"
diff --git a/init.h b/init.h
index 4f24f950de7b28b0f05045ee3f8ff257963d8cb2..9cd4f46400a12b8361678cf9742ec48f9343580b 100644 (file)
--- a/init.h
+++ b/init.h
@@ -43,7 +43,6 @@
 #include "curs_lib.h"
 #include "edit.h"
 #include "globals.h"
-#include "group.h"
 #include "handler.h"
 #include "hdrline.h"
 #include "hook.h"
similarity index 97%
rename from group.c
rename to mutt/group.c
index 8b8ed4c6d4570595323de1cf2cdda9108b09fba0..6b8a690f0e3a7d47feaf578df0f58b6c5ce05737 100644 (file)
--- a/group.c
 #include "mutt/mutt.h"
 #include "email/lib.h"
 #include "group.h"
-#include "globals.h"
-#include "send.h"
+#include "hash.h"
+#include "logging.h"
+#include "memory.h"
+#include "regex3.h"
+#include "string2.h"
+
+struct Hash *Groups;
 
 /**
  * mutt_pattern_group - Match a pattern to a Group
@@ -160,7 +165,7 @@ static void group_add_addrlist(struct Group *g, struct Address *a)
     ;
 
   q = mutt_addr_copy_list(a, false);
-  q = mutt_remove_xrefs(g->as, q);
+  q = mutt_addr_remove_xrefs(g->as, q);
   *p = q;
 }
 
similarity index 96%
rename from group.h
rename to mutt/group.h
index a36854e6fb604011764dea7ab08850065f3c54b1..d742e52901855f9ee155d40c279dcb1144ba6114 100644 (file)
--- a/group.h
 #define MUTT_GROUP_H
 
 #include <stdbool.h>
+#include "queue.h"
+#include "regex3.h"
 
 struct Address;
 struct Buffer;
+struct Hash;
+
+extern struct Hash *Groups;
 
 #define MUTT_GROUP   0
 #define MUTT_UNGROUP 1
index 74ee2e589c285492e9ec44c68137f7c6484c4b3d..68e36829595b06d7af63a194748577646c7b40a6 100644 (file)
@@ -26,7 +26,7 @@
 
 #include <stdbool.h>
 #include <stdint.h>
-#include <stdio.h>
+#include <stdlib.h>
 
 /**
  * union HashKey - The data item stored in a HashElem
index ffc53041f839f0ecd41d65e6703f223bdeef42a2..a25207cc2603b0d40b8bcc6dd3892b7fc7b5363c 100644 (file)
@@ -34,6 +34,7 @@
  * | mutt/envlist.c   | @subpage envlist   |
  * | mutt/exit.c      | @subpage exit      |
  * | mutt/file.c      | @subpage file      |
+ * | mutt/group.c     | @subpage group     |
  * | mutt/hash.c      | @subpage hash      |
  * | mutt/history.c   | @subpage history   |
  * | mutt/list.c      | @subpage list      |
@@ -62,6 +63,7 @@
 #include "envlist.h"
 #include "exit.h"
 #include "file.h"
+#include "group.h"
 #include "hash.h"
 #include "history.h"
 #include "list.h"
index 9d4af76f46d2e50be5564566907d67e0cbca142a..568c00184765c1c5ef7d45f76ca6c54043ac64ef 100644 (file)
--- a/pattern.c
+++ b/pattern.c
@@ -49,7 +49,6 @@
 #include "curs_lib.h"
 #include "filter.h"
 #include "globals.h"
-#include "group.h"
 #include "handler.h"
 #include "hdrline.h"
 #include "mailbox.h"
diff --git a/send.c b/send.c
index c3cf180f9b848273d2a0ee917b59b67266283ab5..1232b55c333c3c9f372a21abf504401a800151c3 100644 (file)
--- a/send.c
+++ b/send.c
@@ -146,52 +146,6 @@ static void append_signature(FILE *f)
   }
 }
 
-/**
- * mutt_remove_xrefs - Remove cross-references
- * @param a Reference list of Addresses
- * @param b Address list to trim
- * @retval ptr Updated Address list
- *
- * Remove addresses from "b" which are contained in "a"
- */
-struct Address *mutt_remove_xrefs(struct Address *a, struct Address *b)
-{
-  struct Address *p = NULL, *prev = NULL;
-
-  struct Address *top = b;
-  while (b)
-  {
-    for (p = a; p; p = p->next)
-    {
-      if (mutt_addr_cmp(p, b))
-        break;
-    }
-    if (p)
-    {
-      if (prev)
-      {
-        prev->next = b->next;
-        b->next = NULL;
-        mutt_addr_free(&b);
-        b = prev;
-      }
-      else
-      {
-        top = top->next;
-        b->next = NULL;
-        mutt_addr_free(&b);
-        b = top;
-      }
-    }
-    else
-    {
-      prev = b;
-      b = b->next;
-    }
-  }
-  return top;
-}
-
 /**
  * remove_user - Remove any address which matches the current user
  * @param a          List of addresses
@@ -836,7 +790,7 @@ void mutt_fix_reply_recipients(struct Envelope *env)
   /* the CC field can get cluttered, especially with lists */
   env->to = mutt_addrlist_dedupe(env->to);
   env->cc = mutt_addrlist_dedupe(env->cc);
-  env->cc = mutt_remove_xrefs(env->to, env->cc);
+  env->cc = mutt_addr_remove_xrefs(env->to, env->cc);
 
   if (env->cc && !env->to)
   {