]> granicus.if.org Git - mutt/commitdiff
Split mutt_buffer_new out of mutt_buffer_init.
authorBrendan Cully <brendan@kublai.com>
Sun, 22 Jul 2012 02:51:31 +0000 (19:51 -0700)
committerBrendan Cully <brendan@kublai.com>
Sun, 22 Jul 2012 02:51:31 +0000 (19:51 -0700)
Currently, no callers were providing a non-NULL buffer to
mutt_buffer_init, and splitting it will allow more sane semantics for
buffer allocation, initialization, and destruction in a later patch.

imap/imap.c
imap/util.c
mbyte.c
muttlib.c
parse.c
protos.h

index 6fb720f13e7dc841b347f3954bb3e025139f9890..35dac43d4b8bd5510f894b6036d5d16173c3cb7f 100644 (file)
@@ -963,7 +963,7 @@ int imap_exec_msgset (IMAP_DATA* idata, const char* pre, const char* post,
   int rc;
   int count = 0;
 
-  if (! (cmd = mutt_buffer_init (NULL)))
+  if (! (cmd = mutt_buffer_new ()))
   {
     dprint (1, (debugfile, "imap_exec_msgset: unable to allocate buffer\n"));
     return -1;
index f7e0ef5aa444932226f524e4c644166c93efdd0d..c8b002ef7a0c6cf132ce14cfd780937a881795e2 100644 (file)
@@ -374,7 +374,7 @@ IMAP_DATA* imap_new_idata (void)
   if (!idata)
     return NULL;
 
-  if (!(idata->cmdbuf = mutt_buffer_init (NULL)))
+  if (!(idata->cmdbuf = mutt_buffer_new ()))
     FREE (&idata);
 
   idata->cmdslots = ImapPipelineDepth + 2;
diff --git a/mbyte.c b/mbyte.c
index 6e4502464ae119baa0a2bfbf48a953713474301d..fb96a71479a5d65ae32fdb48b81ce6d6dae1d938 100644 (file)
--- a/mbyte.c
+++ b/mbyte.c
@@ -534,7 +534,7 @@ int mutt_filter_unprintable (char **s)
   char *p = *s;
   mbstate_t mbstate1, mbstate2;
 
-  if (!(b = mutt_buffer_init (b)))
+  if (!(b = mutt_buffer_new ()))
     return -1;
   memset (&mbstate1, 0, sizeof (mbstate1));
   memset (&mbstate2, 0, sizeof (mbstate2));
index f93fccd573985ab3f2f87d7a05acaaf69658043f..725a105d1c955983e1eee6b391ef227ad0a647a9 100644 (file)
--- a/muttlib.c
+++ b/muttlib.c
@@ -1105,10 +1105,10 @@ void mutt_FormatString (char *dest,             /* output buffer */
       srccopy[n-1] = '\0';
 
       /* prepare BUFFERs */
-      srcbuf = mutt_buffer_from(NULL, srccopy);
+      srcbuf = mutt_buffer_from (srccopy);
       srcbuf->dptr = srcbuf->data;
-      word = mutt_buffer_init(NULL);
-      command = mutt_buffer_init(NULL);
+      word = mutt_buffer_new ();
+      command = mutt_buffer_new ();
 
       /* Iterate expansions across successive arguments */
       do {
@@ -1643,7 +1643,18 @@ void mutt_sleep (short s)
   if (SleepTime > s)
     sleep (SleepTime);
   else if (s)
-    sleep (s);
+    sleep(s);
+}
+
+/* creates and initializes a BUFFER */
+BUFFER *mutt_buffer_new(void) {
+  BUFFER *b;
+
+  b = safe_malloc(sizeof(BUFFER));
+
+  mutt_buffer_init(b);
+
+  return b;
 }
 
 /*
@@ -1653,16 +1664,12 @@ void mutt_sleep (short s)
  * Disregards the 'destroy' flag, which seems reserved for caller.
  * This is bad, but there's no apparent protocol for it.
  */
-BUFFER * mutt_buffer_init(BUFFER *b)
-{
-  if (!b)
-  {
+BUFFER *mutt_buffer_init (BUFFER *b) {
+  if (!b) {
     b = safe_malloc(sizeof(BUFFER));
     if (!b)
-      return NULL;
-  }
-  else
-  {
+      return NULL ;
+  } else {
     FREE(&b->data);
   }
   memset(b, 0, sizeof(BUFFER));
@@ -1677,14 +1684,15 @@ BUFFER * mutt_buffer_init(BUFFER *b)
  * Disregards the 'destroy' flag, which seems reserved for caller.
  * This is bad, but there's no apparent protocol for it.
  */
-BUFFER * mutt_buffer_from(BUFFER *b, char *seed)
-{
+BUFFER *mutt_buffer_from (char *seed) {
+  BUFFER *b;
+
   if (!seed)
     return NULL;
 
-  b = mutt_buffer_init(b);
-  b->data = safe_strdup (seed);
-  b->dsize = mutt_strlen (seed);
+  b = mutt_buffer_new ();
+  b->data = safe_strdup(seed);
+  b->dsize = mutt_strlen(seed);
   b->dptr = (char *) b->data + b->dsize;
   return b;
 }
diff --git a/parse.c b/parse.c
index 9f227a8c5362e229251ee2dfcc08965468238d70..ebfd057c9d8eae65dd44b62e3b66eee12fcabafd 100644 (file)
--- a/parse.c
+++ b/parse.c
@@ -1392,13 +1392,13 @@ ENVELOPE *mutt_read_rfc822_header (FILE *f, HEADER *hdr, short user_hdrs,
        /* spam tag is new, and match expr is non-empty; copy */
        else if (!e->spam && *buf)
        {
-         e->spam = mutt_buffer_from(NULL, buf);
+         e->spam = mutt_buffer_from (buf);
        }
 
        /* match expr is empty; plug in null string if no existing tag */
        else if (!e->spam)
        {
-         e->spam = mutt_buffer_from(NULL, "");
+         e->spam = mutt_buffer_from("");
        }
 
        if (e->spam && e->spam->data)
index 95611ed10070f70e88c967d5589747e73962f7c7..4abd66bbe13bee523a300a053dea0e807858a66b 100644 (file)
--- a/protos.h
+++ b/protos.h
@@ -39,8 +39,9 @@ struct hdr_format_info
 void mutt_make_string_info (char *, size_t, const char *, struct hdr_format_info *, format_flag);
 
 int mutt_extract_token (BUFFER *, BUFFER *, int);
+BUFFER *mutt_buffer_new (void);
 BUFFER * mutt_buffer_init (BUFFER *);
-BUFFER * mutt_buffer_from (BUFFER *, char *);
+BUFFER * mutt_buffer_from (char *);
 void mutt_buffer_free(BUFFER **);
 int mutt_buffer_printf (BUFFER*, const char*, ...);
 void mutt_buffer_add (BUFFER*, const char*, size_t);