Group all the tempdir protos together in protos.h and definitions in
muttlib.c.

Add underscore prefix to mutt_buffer_mktemp_pfx_sfx(), to make it
obvious that there are no, and shouldn't be any, external direct
callers to this function.

All external callers should use either mutt_adv_mktemp() with a
template parameter or else mutt_buffer_mktemp().
---
 muttlib.c | 32 ++++++++++++++++----------------
 protos.h  |  9 +++++----
 2 files changed, 21 insertions(+), 20 deletions(-)

diff --git a/muttlib.c b/muttlib.c
index 8c5b94a3..2022ee61 100644
--- a/muttlib.c
+++ b/muttlib.c
@@ -88,13 +88,28 @@ void mutt_adv_mktemp (BUFFER *buf)
       *suffix = 0;
       ++suffix;
     }
-    mutt_buffer_mktemp_pfx_sfx (buf, mutt_b2s (prefix), suffix);
+    _mutt_buffer_mktemp_pfx_sfx (buf, mutt_b2s (prefix), suffix);
 
   out:
     mutt_buffer_pool_release (&prefix);
   }
 }
 
+void _mutt_buffer_mktemp (BUFFER *buf, const char *prefix, const char *suffix,
+                          const char *src, int line)
+{
+  RANDOM64 random64;
+  mutt_random_bytes(random64.char_array, sizeof(random64));
+
+  mutt_buffer_printf (buf, "%s/%s-%s-%d-%d-%"PRIu64"%s%s",
+                      NONULL (Tempdir), NONULL (prefix), NONULL (Hostname),
+                      (int) getuid (), (int) getpid (), random64.int_64,
+                      suffix ? "." : "", NONULL (suffix));
+  muttdbg(3, "%s:%d: mutt_mktemp returns \"%s\".", src, line, mutt_b2s (buf));
+  if (unlink (mutt_b2s (buf)) && errno != ENOENT)
+    mutt_errno_dbg(1, "%s:%d: ERROR: unlink(\"%s\")", src, line, mutt_b2s 
(buf));
+}
+
 /* create a send-mode duplicate from a receive-mode body */
 
 int mutt_copy_body (FILE *fp, BODY **tgt, BODY *src)
@@ -959,21 +974,6 @@ void mutt_merge_envelopes(ENVELOPE* base, ENVELOPE** extra)
   mutt_free_envelope(extra);
 }
 
-void _mutt_buffer_mktemp (BUFFER *buf, const char *prefix, const char *suffix,
-                          const char *src, int line)
-{
-  RANDOM64 random64;
-  mutt_random_bytes(random64.char_array, sizeof(random64));
-
-  mutt_buffer_printf (buf, "%s/%s-%s-%d-%d-%"PRIu64"%s%s",
-                      NONULL (Tempdir), NONULL (prefix), NONULL (Hostname),
-                      (int) getuid (), (int) getpid (), random64.int_64,
-                      suffix ? "." : "", NONULL (suffix));
-  muttdbg(3, "%s:%d: mutt_mktemp returns \"%s\".", src, line, mutt_b2s (buf));
-  if (unlink (mutt_b2s (buf)) && errno != ENOENT)
-    mutt_errno_dbg(1, "%s:%d: ERROR: unlink(\"%s\")", src, line, mutt_b2s 
(buf));
-}
-
 /* these characters must be escaped in regular expressions */
 
 static const char rx_special_chars[] = "^.[$()|*+?{\\";
diff --git a/protos.h b/protos.h
index 10689e7a..2c6b1aef 100644
--- a/protos.h
+++ b/protos.h
@@ -172,8 +172,12 @@ group_t *mutt_pattern_group (const char *);
 
 REGEXP *mutt_compile_regexp (const char *, int);
 
-void mutt_account_hook (const char* url);
 void mutt_adv_mktemp (BUFFER *);
+#define mutt_buffer_mktemp(a) _mutt_buffer_mktemp_pfx_sfx (a, "mutt", NULL)
+#define _mutt_buffer_mktemp_pfx_sfx(a,b,c)  _mutt_buffer_mktemp (a, b, c, 
__FILE__, __LINE__)
+void _mutt_buffer_mktemp (BUFFER *, const char *, const char *, const char *, 
int);
+
+void mutt_account_hook (const char* url);
 void mutt_alias_menu (char *, size_t, ALIAS *);
 void mutt_allow_interrupt (int);
 void mutt_auto_subscribe (const char *);
@@ -246,9 +250,6 @@ void mutt_list_menu (CONTEXT *ctx, HEADER *cur);
 void mutt_make_help (char *, size_t, const char *, int, int);
 void mutt_merge_envelopes(ENVELOPE* base, ENVELOPE** extra);
 void mutt_message_to_7bit (BODY *, FILE *);
-#define mutt_buffer_mktemp(a) mutt_buffer_mktemp_pfx_sfx (a, "mutt", NULL)
-#define mutt_buffer_mktemp_pfx_sfx(a,b,c)  _mutt_buffer_mktemp (a, b, c, 
__FILE__, __LINE__)
-void _mutt_buffer_mktemp (BUFFER *, const char *, const char *, const char *, 
int);
 void mutt_normalize_time (struct tm *);
 void mutt_paddstr (int, const char *);
 void mutt_parse_mime_message (CONTEXT *ctx, HEADER *);
-- 
2.53.0

Reply via email to