]> granicus.if.org Git - neomutt/commitdiff
move mutt_str_split() to list.c
authorRichard Russon <rich@flatcap.org>
Sat, 15 Jun 2019 20:09:12 +0000 (21:09 +0100)
committerRichard Russon <rich@flatcap.org>
Sat, 15 Jun 2019 20:35:12 +0000 (21:35 +0100)
Remove List dependency from string.c

email/tags.c
mutt/list.c
mutt/list.h
mutt/string.c
mutt/string2.h

index b23aa19272e01997e32d4dccb96255492b51a799..c843f645d766182f18702cf2abae32d8e8fffbc5 100644 (file)
@@ -190,7 +190,7 @@ bool driver_tags_replace(struct TagHead *head, char *tags)
 
   if (tags)
   {
-    struct ListHead hsplit = mutt_str_split(tags, ' ');
+    struct ListHead hsplit = mutt_list_str_split(tags, ' ');
     struct ListNode *np = NULL;
     STAILQ_FOREACH(np, &hsplit, entries)
     {
index f6275f19fc60749c3f5bff86b1571582afe736b1..d136650f48e2a3987afbffa4a74b40d16e242607 100644 (file)
@@ -237,3 +237,32 @@ bool mutt_list_compare(const struct ListHead *ah, const struct ListHead *bh)
 
   return true;
 }
+
+/**
+ * mutt_list_str_split - Split a string into a list using a separator char
+ * @param src String to split
+ * @param sep Word separator
+ */
+struct ListHead mutt_list_str_split(const char *src, char sep)
+{
+  struct ListHead head = STAILQ_HEAD_INITIALIZER(head);
+
+  if (!src || !*src)
+    return head;
+
+  while (true)
+  {
+    const char *start = src;
+    while (*src && (*src != sep))
+      src++;
+
+    mutt_list_insert_tail(&head, mutt_str_substr_dup(start, src));
+
+    if (!*src)
+      break;
+
+    src++;
+  }
+
+  return head;
+}
index d5ee8df7bda0794a78673c9487d0f7740b5c9c36..3ee70a57c5b8060fd7d52607ec94ad3fdbccf8c9 100644 (file)
@@ -52,5 +52,6 @@ struct ListNode *mutt_list_insert_after(struct ListHead *h, struct ListNode *n,
 struct ListNode *mutt_list_insert_head(struct ListHead *h, char *s);
 struct ListNode *mutt_list_insert_tail(struct ListHead *h, char *s);
 bool             mutt_list_match(const char *s, struct ListHead *h);
+struct ListHead  mutt_list_str_split(const char *src, char sep);
 
 #endif /* MUTT_LIB_LIST_H */
index e841df7b420b853108deaba152621733f5c5b439..e6d44546b13b1572b753e1151e5685b1644e30db 100644 (file)
 #include <string.h>
 #include <strings.h>
 #include "exit.h"
-#include "list.h"
 #include "logging.h"
 #include "memory.h"
 #include "message.h"
-#include "queue.h"
 #include "string2.h"
 #ifdef HAVE_SYSEXITS_H
 #include <sysexits.h>
@@ -1188,35 +1186,6 @@ const char *mutt_str_strcasestr(const char *haystack, const char *needle)
   return NULL;
 }
 
-/**
- * mutt_str_split - return list of the words of the strings
- * @param src String to split
- * @param sep Word separator
- */
-struct ListHead mutt_str_split(const char *src, char sep)
-{
-  struct ListHead head = STAILQ_HEAD_INITIALIZER(head);
-
-  if (!src || !*src)
-    return head;
-
-  while (true)
-  {
-    const char *start = src;
-    while (*src && (*src != sep))
-      src++;
-
-    mutt_list_insert_tail(&head, mutt_str_substr_dup(start, src));
-
-    if (!*src)
-      break;
-
-    src++;
-  }
-
-  return head;
-}
-
 #ifdef HAVE_VASPRINTF
 /**
  * mutt_str_asprintf - Format a string, allocating space as necessary
index 89df8cb45459baad88913eeac638e5d38c8388bd..ae191e79a2aaa1815f49b3d6c5dc85f5ea3c6b31 100644 (file)
@@ -93,7 +93,6 @@ void        mutt_str_replace(char **p, const char *s);
 const char *mutt_str_rstrnstr(const char *haystack, size_t haystack_length, const char *needle);
 char *      mutt_str_skip_email_wsp(const char *s);
 char *      mutt_str_skip_whitespace(const char *p);
-struct ListHead mutt_str_split(const char *src, char sep);
 int         mutt_str_strcasecmp(const char *a, const char *b);
 size_t      mutt_str_startswith(const char *str, const char *prefix, enum CaseSensitivity cs);
 const char *mutt_str_strcasestr(const char *haystack, const char *needle);