]> granicus.if.org Git - neomutt/commitdiff
libmutt: promote mutt_buffer_concat_path to the library
authorRichard Russon <rich@flatcap.org>
Thu, 11 Apr 2019 01:59:24 +0000 (02:59 +0100)
committerRichard Russon <rich@flatcap.org>
Tue, 16 Apr 2019 11:51:52 +0000 (12:51 +0100)
browser.h
mutt/buffer.c
mutt/buffer.h
muttlib.c

index 0cdee30921c5b7dd63f5b614f27dbd8f6d44471a..9bdef94bc6c4d442eb201abcfd61ce4feb503bdf 100644 (file)
--- a/browser.h
+++ b/browser.h
@@ -107,6 +107,5 @@ void mutt_select_file(char *file, size_t filelen, SelectFileFlags flags, char **
 void mutt_buffer_select_file(struct Buffer *f, SelectFileFlags flags, char ***files, int *numfiles);
 void mutt_browser_select_dir(const char *f);
 void mutt_browser_cleanup(void);
-void mutt_buffer_concat_path(struct Buffer *d, const char *dir, const char *fname);
 
 #endif /* MUTT_BROWSER_H */
index a1b0cc5b6b870028c2ed42d05a5eb0c657f4dffa..423fae5ebf1ea6ceaa8d318d6f4c05826b9572b7 100644 (file)
@@ -443,3 +443,22 @@ size_t mutt_buffer_len(const struct Buffer *buf)
 
   return buf->dptr - buf->data;
 }
+
+/**
+ * mutt_buffer_concat_path - Join a directory name and a filename
+ * @param buf   Buffer to add to
+ * @param dir   Directory name
+ * @param fname File name
+ *
+ * If both dir and fname are supplied, they are separated with '/'.
+ * If either is missing, then the other will be copied exactly.
+ */
+void mutt_buffer_concat_path(struct Buffer *buf, const char *dir, const char *fname)
+{
+  const char *fmt = "%s/%s";
+
+  if ((fname[0] == '\0') || ((dir[0] != '\0') && (dir[strlen(dir) - 1] == '/')))
+    fmt = "%s%s";
+
+  mutt_buffer_printf(buf, fmt, dir, fname);
+}
index d04b7b6ddf97ef005099fa979aa970d6b87326b4..400de48e7815e37c5bcaedb450da76e22f271bd3 100644 (file)
@@ -48,6 +48,7 @@ size_t         mutt_buffer_addstr       (struct Buffer *buf, const char *s);
 size_t         mutt_buffer_addstr_n     (struct Buffer *buf, const char *s, size_t len);
 int            mutt_buffer_add_printf   (struct Buffer *buf, const char *fmt, ...);
 struct Buffer *mutt_buffer_alloc        (size_t size);
+void           mutt_buffer_concat_path  (struct Buffer *buf, const char *dir, const char *fname);
 void           mutt_buffer_fix_dptr     (struct Buffer *buf);
 void           mutt_buffer_free         (struct Buffer **p);
 struct Buffer *mutt_buffer_from         (const char *seed);
index c923a7bfb25d3f366a1939b418b85b7f67a5a4f6..0a0a8bc40edc199b846ec58e013733708406efcc 100644 (file)
--- a/muttlib.c
+++ b/muttlib.c
@@ -1712,22 +1712,3 @@ int mutt_inbox_cmp(const char *a, const char *b)
 
   return 0;
 }
-
-/**
- * mutt_buffer_concat_path - Join a directory name and a filename
- * @param d     Buffer to add to
- * @param dir   Directory name
- * @param fname File name
- *
- * If both dir and fname are supplied, they are separated with '/'.
- * If either is missing, then the other will be copied exactly.
- */
-void mutt_buffer_concat_path(struct Buffer *d, const char *dir, const char *fname)
-{
-  const char *fmt = "%s/%s";
-
-  if (!*fname || (*dir && dir[strlen(dir) - 1] == '/'))
-    fmt = "%s%s";
-
-  mutt_buffer_printf(d, fmt, dir, fname);
-}