]> granicus.if.org Git - neomutt/commitdiff
refactor mutt_str_append_item()
authorRichard Russon <rich@flatcap.org>
Sat, 20 Apr 2019 01:43:54 +0000 (02:43 +0100)
committerRichard Russon <rich@flatcap.org>
Wed, 24 Apr 2019 11:35:07 +0000 (12:35 +0100)
mutt/string.c
mutt/string2.h

index efd3a47ea934817b5ca023a59d80e637943034bd..dc754b955170f960a0107302b4a611e169ed5bca 100644 (file)
@@ -474,23 +474,21 @@ void mutt_str_replace(char **p, const char *s)
  * @param[in]  item String to append
  * @param[in]  sep separator between string item
  *
- * This function appends a string to another separate them by sep
- * if needed
+ * Append a string to another, separating them by sep if needed.
  *
  * This function alters the pointer of the caller.
  */
-void mutt_str_append_item(char **str, const char *item, int sep)
+void mutt_str_append_item(char **str, const char *item, char sep)
 {
   if (!str || !item)
     return;
 
-  char *p = NULL;
-  size_t sz = strlen(item);
-  size_t ssz = *str ? strlen(*str) : 0;
+  size_t sz = mutt_str_strlen(item);
+  size_t ssz = mutt_str_strlen(*str);
 
-  mutt_mem_realloc(str, ssz + ((ssz && sep) ? 1 : 0) + sz + 1);
-  p = *str + ssz;
-  if (sep && ssz)
+  mutt_mem_realloc(str, ssz + (((ssz > 0) && (sep != '\0')) ? 1 : 0) + sz + 1);
+  char *p = *str + ssz;
+  if ((ssz > 0) && (sep != '\0'))
     *p++ = sep;
   memcpy(p, item, sz + 1);
 }
index a77eda023574abd7a6c4996b187700e7774fe92d..1f711052ff114c52f2de4a4667dd2c94d673cb77 100644 (file)
@@ -68,7 +68,7 @@ enum CaseSensitivity
 };
 
 void        mutt_str_adjust(char **p);
-void        mutt_str_append_item(char **str, const char *item, int sep);
+void        mutt_str_append_item(char **str, const char *item, char sep);
 int         mutt_str_asprintf(char **strp, const char *fmt, ...);
 int         mutt_str_atoi(const char *str, int *dst);
 int         mutt_str_atol(const char *str, long *dst);