use safer p_clear when possible.
authorPierre Habouzit <madcoder@debian.org>
Sun, 29 Oct 2006 14:48:45 +0000 (15:48 +0100)
committerPierre Habouzit <madcoder@debian.org>
Sun, 29 Oct 2006 14:48:45 +0000 (15:48 +0100)
48 files changed:
alias.c
attach.c
browser.c
buffer.c
buffy.c
color.c
commands.c
copy.c
crypt-gpgme.c
curs_lib.c
enter.c
handler.c
help.c
hook.c
imap/auth_cram.c
imap/command.c
imap/imap.c
imap/message.c
init.c
keymap.c
lib.c
main.c
makedoc.c
mbyte.c
menu.c
mh.c
mutt_sasl.c
mutt_socket.c
muttlib.c
mx.c
nntp/newsrc.c
nntp/nntp.c
pager.c
parse.c
pattern.c
pgp.c
pgpinvoke.c
pgpmicalg.c
pgppubring.c
postpone.c
query.c
recvattach.c
recvcmd.c
score.c
sendlib.c
sidebar.c
signal.c
smime.c

diff --git a/alias.c b/alias.c
index 1ef818e..e287551 100644 (file)
--- a/alias.c
+++ b/alias.c
@@ -403,7 +403,7 @@ int mutt_alias_complete (char *s, size_t buflen)
 #define min(a,b)        ((a<b)?a:b)
 
   if (s[0] != 0) {              /* avoid empty string as strstr argument */
-    memset (bestname, 0, sizeof (bestname));
+    p_clear(bestname, sizeof(bestname));
 
     while (a) {
       if (a->name && strstr (a->name, s) == a->name) {
index 0daba27..5480710 100644 (file)
--- a/attach.c
+++ b/attach.c
@@ -566,18 +566,18 @@ int mutt_view_attachment (FILE * fp, BODY * a, int flag, HEADER * hdr,
 
   if (use_pager) {
     pager_t info;
+    p_clear(&info, 1);
 
-    memset (&info, 0, sizeof (info));
-    info.fp = fp;
+    info.fp  = fp;
     info.bdy = a;
     info.ctx = Context;
     info.idx = idx;
     info.idxlen = idxlen;
     info.hdr = hdr;
 
-    rc = mutt_do_pager (descrip, pagerfile,
-                        M_PAGER_ATTACHMENT | (is_message ? M_PAGER_MESSAGE :
-                                              0), &info);
+    rc = mutt_do_pager(descrip, pagerfile,
+                       M_PAGER_ATTACHMENT | (is_message ? M_PAGER_MESSAGE : 0),
+                       &info);
     *pagerfile = '\0';
   }
   else
@@ -616,16 +616,13 @@ int mutt_pipe_attachment (FILE * fp, BODY * b, const char *path,
 
   if (fp) {
     /* recv case */
-
     STATE s;
-
-    memset (&s, 0, sizeof (STATE));
+    p_clear(&s, 1);
 
     if (outfile && *outfile)
-      thepid =
-        mutt_create_filter_fd (path, &s.fpout, NULL, NULL, -1, out, -1);
+      thepid = mutt_create_filter_fd(path, &s.fpout, NULL, NULL, -1, out, -1);
     else
-      thepid = mutt_create_filter (path, &s.fpout, NULL, NULL);
+      thepid = mutt_create_filter(path, &s.fpout, NULL, NULL);
 
     if (thepid < 0) {
       mutt_perror (_("Can't create filter"));
@@ -754,8 +751,8 @@ int mutt_save_attachment (FILE * fp, BODY * m, char *path, int flags,
       /* In recv mode, extract from folder and decode */
 
       STATE s;
+      p_clear(&s, 1);
 
-      memset (&s, 0, sizeof (s));
       if ((s.fpout = mutt_save_attachment_open (path, flags)) == NULL) {
         mutt_perror ("fopen");
         return (-1);
@@ -808,7 +805,7 @@ int mutt_decode_save_attachment (FILE * fp, BODY * m, char *path,
   BODY *saved_parts = NULL;
   HEADER *saved_hdr = NULL;
 
-  memset (&s, 0, sizeof (s));
+  p_clear(&s, 1);
   s.flags = displaying;
 
   if (flags == M_SAVE_APPEND)
index 03e1db9..18b442f 100644 (file)
--- a/browser.c
+++ b/browser.c
@@ -738,7 +738,7 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files,
 
   buffy = buffy && folder;
 
-  memset (&state, 0, sizeof (struct browser_state));
+  p_clear(&state, 1);
 
   if (!folder)
     strfcpy (LastDirBackup, LastDir, sizeof (LastDirBackup));
index 7f06132..e16b590 100644 (file)
--- a/buffer.c
+++ b/buffer.c
  */
 BUFFER *mutt_buffer_init(BUFFER *b)
 {
-  if (!b) {
-    b = p_new(BUFFER, 1);
-    if (!b)
-      return NULL;
-  }
-  else {
+    if (!b) {
+        b = p_new(BUFFER, 1);
+    }
     p_delete(&b->data);
-  }
-  memset (b, 0, sizeof (BUFFER));
-  return b;
+    p_clear(b, 1);
+    return b;
 }
 
 /*
@@ -213,7 +209,7 @@ int mutt_extract_token (BUFFER * dest, BUFFER * tok, int flags)
       tok->dptr = pc + 1;
 
       /* read line */
-      memset (&expn, 0, sizeof (expn));
+      p_clear(&expn, 1);
       expn.data = mutt_read_line (NULL, &expn.dsize, fp, &line);
       fclose (fp);
       mutt_wait_filter (pid);
diff --git a/buffy.c b/buffy.c
index 09b281a..11e2b0d 100644 (file)
--- a/buffy.c
+++ b/buffy.c
@@ -60,7 +60,7 @@ static int fseeko_last_message (FILE * f)
   int bytes_read;
   int i;                        /* Index into `buffer' for scanning.  */
 
-  memset (buffer, 0, sizeof (buffer));
+  p_clear(buffer, 1);
   fseeko (f, 0, SEEK_END);
   pos = ftello (f);
 
diff --git a/color.c b/color.c
index ab2a500..82180f7 100644 (file)
--- a/color.c
+++ b/color.c
@@ -132,23 +132,23 @@ static void mutt_free_color_line (COLOR_LINE ** l, int free_colors)
 
 void ci_start_color (void)
 {
-  memset (ColorDefs, A_NORMAL, sizeof (int) * MT_COLOR_MAX);
-  ColorQuote = p_new(int, COLOR_QUOTE_INIT);
-  memset (ColorQuote, A_NORMAL, sizeof (int) * COLOR_QUOTE_INIT);
-  ColorQuoteSize = COLOR_QUOTE_INIT;
-  ColorQuoteUsed = 0;
-
-  /* set some defaults */
-  ColorDefs[MT_COLOR_STATUS] = A_REVERSE;
-  ColorDefs[MT_COLOR_INDICATOR] = A_REVERSE;
-  ColorDefs[MT_COLOR_SEARCH] = A_REVERSE;
-  ColorDefs[MT_COLOR_MARKERS] = A_REVERSE;
-  /* special meaning: toggle the relevant attribute */
-  ColorDefs[MT_COLOR_BOLD] = 0;
-  ColorDefs[MT_COLOR_UNDERLINE] = 0;
+    memset(ColorDefs, A_NORMAL, sizeof(int) * MT_COLOR_MAX);
+    ColorQuote = p_new(int, COLOR_QUOTE_INIT);
+    memset(ColorQuote, A_NORMAL, sizeof(int) * COLOR_QUOTE_INIT);
+    ColorQuoteSize = COLOR_QUOTE_INIT;
+    ColorQuoteUsed = 0;
+
+    /* set some defaults */
+    ColorDefs[MT_COLOR_STATUS] = A_REVERSE;
+    ColorDefs[MT_COLOR_INDICATOR] = A_REVERSE;
+    ColorDefs[MT_COLOR_SEARCH] = A_REVERSE;
+    ColorDefs[MT_COLOR_MARKERS] = A_REVERSE;
+    /* special meaning: toggle the relevant attribute */
+    ColorDefs[MT_COLOR_BOLD] = 0;
+    ColorDefs[MT_COLOR_UNDERLINE] = 0;
 
 #ifdef HAVE_COLOR
-  start_color ();
+    start_color ();
 #endif
 }
 
index 0cfc226..889ac8a 100644 (file)
@@ -214,7 +214,7 @@ int mutt_display_message (HEADER * cur)
     }
 
     /* Invoke the builtin pager */
-    memset (&info, 0, sizeof (pager_t));
+    p_clear(&info, 1);
     info.hdr = cur;
     info.ctx = Context;
     rc = mutt_pager (NULL, tempfile, M_PAGER_MESSAGE, &info);
@@ -580,7 +580,7 @@ void mutt_enter_command (void)
     return;
   err.data = errbuf;
   err.dsize = sizeof (errbuf);
-  memset (&token, 0, sizeof (token));
+  p_clear(&token, 1);
   r = mutt_parse_rc_line (buffer, &token, &err);
   p_delete(&token.data);
   if (errbuf[0]) {
diff --git a/copy.c b/copy.c
index bb429f4..b265b66 100644 (file)
--- a/copy.c
+++ b/copy.c
@@ -603,7 +603,7 @@ _mutt_copy_message (FILE * fpout, FILE * fpin, HEADER * hdr, BODY * body,
 
   if (flags & M_CM_DECODE) {
     /* now make a text/plain version of the message */
-    memset (&s, 0, sizeof (STATE));
+    p_clear(&s, 1);
     s.fpin = fpin;
     s.fpout = fpout;
     if (flags & M_CM_PREFIX)
index ea750ec..2a370b0 100644 (file)
@@ -1488,7 +1488,7 @@ int pgp_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b, BODY ** cur)
 
   b = b->parts->next;
 
-  memset (&s, 0, sizeof (s));
+  p_clear(&s, 1);
   s.fpin = fpin;
   mutt_mktemp (tempfile);
   if (!(*fpout = safe_fopen (tempfile, "w+"))) {
@@ -1532,7 +1532,7 @@ int smime_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b,
   saved_b_type = b->type;
   saved_b_offset = b->offset;
   saved_b_length = b->length;
-  memset (&s, 0, sizeof (s));
+  p_clear(&s, 1);
   s.fpin = fpin;
   fseeko (s.fpin, b->offset, 0);
   mutt_mktemp (tempfile);
@@ -1549,7 +1549,7 @@ int smime_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b,
   b->offset = 0;
   rewind (tmpfp);
 
-  memset (&s, 0, sizeof (s));
+  p_clear(&s, 1);
   s.fpin = tmpfp;
   s.fpout = 0;
   mutt_mktemp (tempfile);
@@ -1584,7 +1584,7 @@ int smime_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b,
     saved_b_type = bb->type;
     saved_b_offset = bb->offset;
     saved_b_length = bb->length;
-    memset (&s, 0, sizeof (s));
+    p_clear(&s, 1);
     s.fpin = *fpout;
     fseeko (s.fpin, bb->offset, 0);
     mutt_mktemp (tempfile);
@@ -1602,7 +1602,7 @@ int smime_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b,
     rewind (tmpfp);
     fclose (*fpout);
 
-    memset (&s, 0, sizeof (s));
+    p_clear(&s, 1);
     s.fpin = tmpfp;
     s.fpout = 0;
     mutt_mktemp (tempfile);
index 80c81dd..be5583f 100644 (file)
@@ -566,7 +566,7 @@ int mutt_addwch (wchar_t wc)
   mbstate_t mbstate;
   size_t n1, n2;
 
-  memset (&mbstate, 0, sizeof (mbstate));
+  p_clear(&mbstate, 1);
   if ((n1 = wcrtomb (buf, wc, &mbstate)) == (size_t) (-1) ||
       (n2 = wcrtomb (buf + n1, 0, &mbstate)) == (size_t) (-1))
     return -1;                  /* ERR */
@@ -594,8 +594,8 @@ void mutt_format_string (char *dest, size_t destlen,
   char scratch[MB_LEN_MAX];
   mbstate_t mbstate1, mbstate2;
 
-  memset (&mbstate1, 0, sizeof (mbstate1));
-  memset (&mbstate2, 0, sizeof (mbstate2));
+  p_clear(&mbstate1, 1);
+  p_clear(&mbstate2, 1);
   --destlen;
   p = dest;
   for (; n && (k = mbrtowc (&wc, s, n, &mbstate1)); s += k, n -= k) {
@@ -693,7 +693,7 @@ void mutt_paddstr (int n, const char *s)
   size_t len = m_strlen(s);
   mbstate_t mbstate;
 
-  memset (&mbstate, 0, sizeof (mbstate));
+  p_clear(&mbstate, 1);
   for (; len && (k = mbrtowc (&wc, s, len, &mbstate)); s += k, len -= k) {
     if (k == (size_t) (-1) || k == (size_t) (-2)) {
       k = (k == (size_t) (-1)) ? 1 : len;
@@ -730,7 +730,7 @@ int mutt_strwidth (const char *s)
 
   n = m_strlen(s);
 
-  memset (&mbstate, 0, sizeof (mbstate));
+  p_clear(&mbstate, 1);
   for (w = 0; n && (k = mbrtowc (&wc, s, n, &mbstate)); s += k, n -= k) {
     if (k == (size_t) (-1) || k == (size_t) (-2)) {
       k = (k == (size_t) (-1)) ? 1 : n;
diff --git a/enter.c b/enter.c
index b742739..95c26bd 100644 (file)
--- a/enter.c
+++ b/enter.c
@@ -87,7 +87,7 @@ static void my_wcstombs (char *dest, size_t dlen, const wchar_t * src,
   size_t k;
 
   /* First convert directly into the destination buffer */
-  memset (&st, 0, sizeof (st));
+  p_clear(&st, 1);
   for (; slen && dlen >= MB_LEN_MAX; dest += k, dlen -= k, src++, slen--)
     if ((k = wcrtomb (dest, *src, &st)) == (size_t) (-1))
       break;
@@ -129,7 +129,7 @@ size_t my_mbstowcs (wchar_t ** pwbuf, size_t * pwbuflen, size_t i, char *buf)
   size_t wbuflen;
 
   wbuf = *pwbuf, wbuflen = *pwbuflen;
-  memset (&st, 0, sizeof (st));
+  p_clear(&st, 1);
   for (; (k = mbrtowc (&wc, buf, MB_LEN_MAX, &st)) &&
        k != (size_t) (-1) && k != (size_t) (-2); buf += k) {
     if (i >= wbuflen) {
@@ -205,7 +205,7 @@ int _mutt_enter_string (char *buf, size_t buflen, int y, int x,
 
   int rv = 0;
 
-  memset (&mbstate, 0, sizeof (mbstate));
+  p_clear(&mbstate, 1);
 
   if (state->wbuf) {
     /* Coming back after return 1 */
@@ -616,7 +616,7 @@ int _mutt_enter_string (char *buf, size_t buflen, int y, int x,
         if (k == (size_t) (-2))
           continue;
         else if (k && k != 1) {
-          memset (&mbstate, 0, sizeof (mbstate));
+          p_clear(&mbstate, 1);
           continue;
         }
       }
index 137cc7d..553ff29 100644 (file)
--- a/handler.c
+++ b/handler.c
@@ -678,7 +678,7 @@ int text_enriched_handler (BODY * a, STATE * s)
   int tag_len = 0;
   char tag[LONG_STRING + 1];
 
-  memset (&stte, 0, sizeof (stte));
+  p_clear(&stte, 1);
   stte.s = s;
   stte.WrapMargin =
     ((s->flags & M_DISPLAY) ? (COLS - 4) : ((COLS - 4) <
diff --git a/help.c b/help.c
index abccfac..249882e 100644 (file)
--- a/help.c
+++ b/help.c
@@ -88,8 +88,8 @@ static int print_macro (FILE * f, int maxwidth, const char **macro)
   size_t len = m_strlen(*macro);
   mbstate_t mbstate1, mbstate2;
 
-  memset (&mbstate1, 0, sizeof (mbstate1));
-  memset (&mbstate2, 0, sizeof (mbstate2));
+  p_clear(&mbstate1, 1);
+  p_clear(&mbstate2, 1);
   for (; len && (k = mbrtowc (&wc, *macro, len, &mbstate1));
        *macro += k, len -= k) {
     if (k == (size_t) (-1) || k == (size_t) (-2)) {
diff --git a/hook.c b/hook.c
index d6db820..ab9898e 100644 (file)
--- a/hook.c
+++ b/hook.c
@@ -56,8 +56,8 @@ int mutt_parse_hook (BUFFER * buf, BUFFER * s, unsigned long data,
   pattern_t *pat = NULL;
   char path[_POSIX_PATH_MAX];
 
-  memset (&pattern, 0, sizeof (pattern));
-  memset (&command, 0, sizeof (command));
+  p_clear(&pattern, 1);
+  p_clear(&command, 1);
 
   if (*s->dptr == '!') {
     s->dptr++;
@@ -91,7 +91,7 @@ int mutt_parse_hook (BUFFER * buf, BUFFER * s, unsigned long data,
     strfcpy (path, pattern.data, sizeof (path));
     _mutt_expand_path (path, sizeof (path), 1);
     p_delete(&pattern.data);
-    memset (&pattern, 0, sizeof (pattern));
+    p_clear(&pattern, 1);
     pattern.data = m_strdup(path);
   }
 #ifdef USE_COMPRESSED
@@ -110,7 +110,7 @@ int mutt_parse_hook (BUFFER * buf, BUFFER * s, unsigned long data,
     strfcpy (tmp, pattern.data, sizeof (tmp));
     mutt_check_simple (tmp, sizeof (tmp), DefaultHook);
     p_delete(&pattern.data);
-    memset (&pattern, 0, sizeof (pattern));
+    p_clear(&pattern, 1);
     pattern.data = m_strdup(tmp);
   }
 
@@ -118,7 +118,7 @@ int mutt_parse_hook (BUFFER * buf, BUFFER * s, unsigned long data,
     strfcpy (path, command.data, sizeof (path));
     mutt_expand_path (path, sizeof (path));
     p_delete(&command.data);
-    memset (&command, 0, sizeof (command));
+    p_clear(&command, 1);
     command.data = m_strdup(path);
   }
 
@@ -282,7 +282,7 @@ void mutt_folder_hook (char *path)
 
   err.data = buf;
   err.dsize = sizeof (buf);
-  memset (&token, 0, sizeof (token));
+  p_clear(&token, 1);
   for (; tmp; tmp = tmp->next) {
     if (!tmp->command)
       continue;
@@ -328,7 +328,7 @@ void mutt_message_hook (CONTEXT * ctx, HEADER * hdr, int type)
 
   err.data = buf;
   err.dsize = sizeof (buf);
-  memset (&token, 0, sizeof (token));
+  p_clear(&token, 1);
   for (hook = Hooks; hook; hook = hook->next) {
     if (!hook->command)
       continue;
@@ -455,7 +455,7 @@ void mutt_account_hook (const char *url)
 
   err.data = buf;
   err.dsize = sizeof (buf);
-  memset (&token, 0, sizeof (token));
+  p_clear(&token, 1);
 
   for (hook = Hooks; hook; hook = hook->next) {
     if (!(hook->command && (hook->type & M_ACCOUNTHOOK)))
index e4ea149..2b8e130 100644 (file)
@@ -149,8 +149,8 @@ static void hmac_md5 (const char *password, char *challenge,
   else
     strfcpy ((char *) secret, password, sizeof (secret));
 
-  memset (ipad, 0, sizeof (ipad));
-  memset (opad, 0, sizeof (opad));
+  p_clear(ipad, 1);
+  p_clear(opad, 1);
   memcpy (ipad, secret, secret_len);
   memcpy (opad, secret, secret_len);
 
index b4b3fc9..411dc50 100644 (file)
@@ -436,7 +436,7 @@ static void cmd_parse_capabilities (IMAP_DATA * idata, char *s)
   p_delete(&idata->capstr);
   idata->capstr = m_strdup(s);
 
-  memset (idata->capabilities, 0, sizeof (idata->capabilities));
+  p_clear(idata->capabilities, 1);
 
   while (*s) {
     for (x = 0; x < CAPMAX; x++)
@@ -576,7 +576,7 @@ static void cmd_parse_lsub (IMAP_DATA* idata, char* s) {
       url.user = NULL;
     url_ciss_tostring (&url, buf + 11, sizeof (buf) - 10, 0);
     str_cat (buf, sizeof (buf), "\"");
-    memset (&token, 0, sizeof (token));
+    p_clear(&token, 1);
     err.data = errstr;
     err.dsize = sizeof (errstr);
     if (mutt_parse_rc_line (buf, &token, &err))
@@ -596,7 +596,7 @@ static void cmd_parse_myrights (IMAP_DATA * idata, char *s)
   s = imap_next_word (s);
 
   /* zero out current rights set */
-  memset (idata->rights, 0, sizeof (idata->rights));
+  p_clear(idata->rights, 1);
 
   while (*s && !isspace ((unsigned char) *s)) {
     switch (*s) {
index e7fcb77..3945456 100644 (file)
@@ -975,7 +975,7 @@ int imap_sync_mailbox (CONTEXT * ctx, int expunge, int *index_hint)
   if ((rc = imap_check_mailbox (ctx, index_hint, 0)) != 0)
     return rc;
 
-  memset (&cmd, 0, sizeof (cmd));
+  p_clear(&cmd, 1);
 
   /* if we are expunging anyway, we can do deleted messages very quickly... */
   if (expunge && mutt_bit_isset (idata->rights, ACL_DELETE)) {
@@ -1345,7 +1345,7 @@ int imap_search (CONTEXT* ctx, const pattern_t* pat) {
   if (!do_search (pat, 1))
     return 0;
 
-  memset (&buf, 0, sizeof (buf));
+  p_clear(&buf, 1);
   mutt_buffer_addstr (&buf, "UID SEARCH ");
   if (imap_compile_search (pat, &buf) < 0) {
     p_delete(&buf.data);
@@ -1457,7 +1457,7 @@ int imap_subscribe (char *path, int subscribe)
   imap_fix_path (idata, mx.mbox, buf, sizeof (buf));
 
   if (option (OPTIMAPCHECKSUBSCRIBED)) {
-    memset (&token, 0, sizeof (token));
+    p_clear(&token, 1);
     err.data = errstr;
     err.dsize = sizeof (errstr);
     snprintf (mbox, sizeof (mbox), "%smailboxes \"%s\"",
index 1e77cb6..7bc797f 100644 (file)
@@ -131,7 +131,7 @@ int imap_read_headers (IMAP_DATA * idata, int msgbegin, int msgend)
         mutt_message (_("Evaluating cache... [%d/%d]"), msgno + 1, msgend + 1);
 
       rewind (fp);
-      memset (&h, 0, sizeof (h));
+      p_clear(&h, 1);
       h.data = p_new(IMAP_HEADER_DATA, 1);
       do {
         mfhrc = 0;
@@ -222,7 +222,7 @@ int imap_read_headers (IMAP_DATA * idata, int msgbegin, int msgend)
 
     /* freshen fp, h */
     rewind (fp);
-    memset (&h, 0, sizeof (h));
+    p_clear(&h, 1);
     h.data = p_new(IMAP_HEADER_DATA, 1);
 
     /* this DO loop does two things:
@@ -641,8 +641,8 @@ int imap_copy_messages (CONTEXT * ctx, HEADER * h, char *dest, int delete)
 
   imap_fix_path (idata, mx.mbox, mbox, sizeof (mbox));
 
-  memset (&sync_cmd, 0, sizeof (sync_cmd));
-  memset (&cmd, 0, sizeof (cmd));
+  p_clear(&sync_cmd, 1);
+  p_clear(&cmd, 1);
   mutt_buffer_addstr (&cmd, "UID COPY ");
 
   /* Null HEADER* means copy tagged messages */
@@ -794,7 +794,7 @@ char *imap_set_flags (IMAP_DATA * idata, HEADER * h, char *s)
   IMAP_HEADER newh;
   unsigned char readonly;
 
-  memset (&newh, 0, sizeof (newh));
+  p_clear(&newh, 1);
   newh.data = p_new(IMAP_HEADER_DATA, 1);
 
   debug_print (2, ("parsing FLAGS\n"));
diff --git a/init.c b/init.c
index f01fb9d..1ecdf17 100644 (file)
--- a/init.c
+++ b/init.c
@@ -827,7 +827,7 @@ static int parse_ifdef (BUFFER * tmp, BUFFER * s, unsigned long data,
   BUFFER token;
   struct option_t* option = NULL;
 
-  memset (&token, 0, sizeof(token));
+  p_clear(&token, 1);
   mutt_extract_token (tmp, s, 0);
 
   /* is the item defined as a variable or a function? */
@@ -974,7 +974,7 @@ static int parse_spam_list (BUFFER * buf, BUFFER * s, unsigned long data,
 {
   BUFFER templ;
 
-  memset (&templ, 0, sizeof(templ));
+  p_clear(&templ, 1);
 
   /* Insist on at least one parameter */
   if (!MoreArgs (s)) {
@@ -1537,7 +1537,7 @@ static int parse_my_hdr (BUFFER * buf, BUFFER * s, unsigned long data,
         /* replace the old value */
         p_delete(&tmp->data);
         tmp->data = buf->data;
-        memset (buf, 0, sizeof(BUFFER));
+        p_clear(buf, 1);
         return 0;
       }
       if (!tmp->next)
@@ -1551,7 +1551,7 @@ static int parse_my_hdr (BUFFER * buf, BUFFER * s, unsigned long data,
     UserHeader = tmp;
   }
   tmp->data = buf->data;
-  memset (buf, 0, sizeof(BUFFER));
+  p_clear(buf, 1);
   return 0;
 }
 
@@ -1639,8 +1639,8 @@ static int init_expand (char** dst, struct option_t* src) {
     /* only expand for string as it's the only place where
      * we want to expand vars right now */
     if (src->init && *src->init) {
-      memset (&token, 0, sizeof(BUFFER));
-      memset (&in, 0, sizeof(BUFFER));
+      p_clear(&token, 1);
+      p_clear(&in, 1);
       len = m_strlen(src->init) + 2;
       in.data = p_new(char, len + 1);
       snprintf (in.data, len, "\"%s\"", src->init);
@@ -2082,7 +2082,7 @@ static int source_rc (const char *rcfile, BUFFER * err)
     return (-1);
   }
 
-  memset (&token, 0, sizeof(token));
+  p_clear(&token, 1);
   while ((linebuf = mutt_read_line (linebuf, &buflen, f, &line)) != NULL) {
     conv = ConfigCharset && (*ConfigCharset) && Charset;
     if (conv) {
@@ -2167,7 +2167,7 @@ int mutt_parse_rc_line ( /* const */ char *line, BUFFER * token, BUFFER * err)
   int i, r = -1;
   BUFFER expn;
 
-  memset (&expn, 0, sizeof(expn));
+  p_clear(&expn, 1);
   expn.data = expn.dptr = line;
   expn.dsize = m_strlen(line);
 
@@ -2255,8 +2255,8 @@ int mutt_command_complete (char *buffer, size_t len, int pos, int numtabs)
     if (numtabs == 1) {
       Num_matched = 0;
       strfcpy (User_typed, pt, sizeof(User_typed));
-      memset (Matches, 0, sizeof(Matches));
-      memset (Completed, 0, sizeof(Completed));
+      p_clear(Matches, sizeof(Matches));
+      p_clear(Completed, sizeof(Completed));
       for (num = 0; Commands[num].name; num++)
         candidate (Completed, User_typed, Commands[num].name,
                    sizeof(Completed));
@@ -2304,11 +2304,11 @@ int mutt_command_complete (char *buffer, size_t len, int pos, int numtabs)
     if (numtabs == 1) {
       Num_matched = 0;
       strfcpy (User_typed, pt, sizeof(User_typed));
-      memset (Matches, 0, sizeof(Matches));
-      memset (Completed, 0, sizeof(Completed));
+      p_clear(Matches, sizeof(Matches));
+      p_clear(Completed, sizeof(Completed));
       for (num = 0; MuttVars[num].option; num++)
-        candidate (Completed, User_typed, MuttVars[num].option,
-                   sizeof(Completed));
+        candidate(Completed, User_typed, MuttVars[num].option,
+                  sizeof(Completed));
       Matches[Num_matched++] = User_typed;
 
       /* All matches are stored. Longest non-ambiguous string is ""
@@ -2342,8 +2342,8 @@ int mutt_command_complete (char *buffer, size_t len, int pos, int numtabs)
     if (numtabs == 1) {
       Num_matched = 0;
       strfcpy (User_typed, pt, sizeof(User_typed));
-      memset (Matches, 0, sizeof(Matches));
-      memset (Completed, 0, sizeof(Completed));
+      p_clear(Matches, sizeof(Matches));
+      p_clear(Completed, sizeof(Completed));
       for (num = 0; menu[num].name; num++)
         candidate (Completed, User_typed, menu[num].name, sizeof(Completed));
       /* try the generic menu */
@@ -2507,8 +2507,8 @@ int mutt_query_variables (LIST * queries)
 
   BUFFER err, token;
 
-  memset (&err, 0, sizeof(err));
-  memset (&token, 0, sizeof(token));
+  p_clear(&err, 1);
+  p_clear(&token, 1);
 
   err.data = errbuff;
   err.dsize = sizeof(errbuff);
@@ -2552,10 +2552,10 @@ static int mutt_execute_commands (LIST * p)
   BUFFER err, token;
   char errstr[SHORT_STRING];
 
-  memset (&err, 0, sizeof(err));
+  p_clear(&err, 1);
   err.data = errstr;
   err.dsize = sizeof(errstr);
-  memset (&token, 0, sizeof(token));
+  p_clear(&token, 1);
   for (; p; p = p->next) {
     if (mutt_parse_rc_line (p->data, &token, &err) != 0) {
       fprintf (stderr, _("Error in command line: %s\n"), err.data);
@@ -2576,7 +2576,7 @@ void mutt_init (int skip_sys_rc, LIST * commands)
   int i, default_rc = 0, need_pause = 0;
   BUFFER err;
 
-  memset (&err, 0, sizeof(err));
+  p_clear(&err, 1);
   err.data = error;
   err.dsize = sizeof(error);
 
@@ -2717,11 +2717,11 @@ void mutt_init (int skip_sys_rc, LIST * commands)
 
     snprintf (buffer, sizeof(buffer), "Reply-To: %s", p);
 
-    memset (&buf, 0, sizeof(buf));
+    p_clear(&buf, 1);
     buf.data = buf.dptr = buffer;
     buf.dsize = m_strlen(buffer);
 
-    memset (&token, 0, sizeof(token));
+    p_clear(&token, 1);
     parse_my_hdr (&token, &buf, 0, &err);
     p_delete(&token.data);
   }
index 641f232..abfc8c3 100644 (file)
--- a/keymap.c
+++ b/keymap.c
@@ -516,7 +516,7 @@ struct keymap_t *km_find_func (int menu, int func)
 
 void km_init (void)
 {
-  memset (Keymaps, 0, sizeof (struct keymap_t *) * MENU_MAX);
+  p_clear(Keymaps, MENU_MAX);
 
   create_bindings (OpAttach, MENU_ATTACH);
   create_bindings (OpBrowser, MENU_FOLDER);
@@ -677,7 +677,7 @@ static char *parse_keymap (int *menu, BUFFER * s, int maxmenus, int *nummenus,
   int i = 0;
   char *p, *q;
 
-  memset (&buf, 0, sizeof (buf));
+  p_clear(&buf, 1);
 
   /* menu name */
   mutt_extract_token (&buf, s, 0);
diff --git a/lib.c b/lib.c
index 7c704b9..3212015 100644 (file)
--- a/lib.c
+++ b/lib.c
@@ -148,7 +148,7 @@ void mutt_unlink (const char *s)
 
     if ((f = fdopen (fd, "r+"))) {
       unlink (s);
-      memset (buf, 0, sizeof (buf));
+      p_clear(buf, sizeof(buf));
       while (sb.st_size > 0) {
         fwrite (buf, 1, MIN (sizeof (buf), sb.st_size), f);
         sb.st_size -= MIN (sizeof (buf), sb.st_size);
diff --git a/main.c b/main.c
index 27b8bc2..916f7f0 100644 (file)
--- a/main.c
+++ b/main.c
@@ -602,8 +602,8 @@ int main (int argc, char **argv)
   SRAND (time (NULL));
   umask (077);
 
-  memset (Options, 0, sizeof (Options));
-  memset (QuadOptions, 0, sizeof (QuadOptions));
+  p_clear(Options, sizeof(Options));
+  p_clear(QuadOptions, sizeof(QuadOptions));
 
 #ifdef USE_NNTP
   while ((i =
index 4829215..3148ca4 100644 (file)
--- a/makedoc.c
+++ b/makedoc.c
@@ -513,7 +513,7 @@ static void handle_confline (char *s)
       return;
   }
 
-  memset (val, 0, sizeof (val));
+  memset(val, 0, sizeof(val));
 
   do {
     if (!strcmp (buff, "}"))
diff --git a/mbyte.c b/mbyte.c
index ce26508..6c9a76c 100644 (file)
--- a/mbyte.c
+++ b/mbyte.c
@@ -172,7 +172,7 @@ size_t mbrtowc_iconv (wchar_t * pwc, const char *s, size_t n,
     r = my_iconv(cd, &ib, &ibl, &ob, &obl);
     if (ob > bufo && (!k || ib > bufi + k)) {
       /* we have a character */
-      memset (ps, 0, sizeof (*ps));
+      p_clear(ps, 1);
       utf8rtowc (pwc, bufo, ob - bufo, &mbstate);
       return (pwc && *pwc) ? (ib - (k ? bufi + k : s)) : 0;
     }
@@ -189,7 +189,7 @@ size_t mbrtowc_iconv (wchar_t * pwc, const char *s, size_t n,
       }
       else {
         /* save the state and give up */
-        memset (ps, 0, sizeof (*ps));
+        p_clear(ps, 1);
         if (ibl <= sizeof (mbstate_t))  /* need extra condition here! */
           memcpy (ps, ib, ibl);
         return (size_t) (-2);
@@ -216,7 +216,7 @@ size_t mbrtowc (wchar_t * pwc, const char *s, size_t n, mbstate_t * ps)
     return mbrtowc_iconv (pwc, s, n, ps, charset_to_utf8);
   else {
     if (!s) {
-      memset (ps, 0, sizeof (*ps));
+      p_clear(ps, 1);
       return 0;
     }
     if (!n)
diff --git a/menu.c b/menu.c
index 54d36dd..52547de 100644 (file)
--- a/menu.c
+++ b/menu.c
@@ -41,7 +41,7 @@ static void print_enriched_string (int attr, unsigned char *s, int do_color)
   size_t n = m_strlen((char *) s);
   mbstate_t mbstate;
 
-  memset (&mbstate, 0, sizeof (mbstate));
+  p_clear(&mbstate, 1);
   while (*s) {
     if (*s < M_TREE_MAX) {
       if (do_color)
diff --git a/mh.c b/mh.c
index fc75d78..1b9c7a6 100644 (file)
--- a/mh.c
+++ b/mh.c
@@ -185,7 +185,7 @@ int mh_buffy (const char *path)
   int i, r = 0;
   struct mh_sequences mhs;
 
-  memset (&mhs, 0, sizeof (mhs));
+  p_clear(&mhs, 1);
 
   mh_read_sequences (&mhs, path);
   for (i = 0; !r && i <= mhs.max; i++)
@@ -290,7 +290,7 @@ void mh_update_sequences (CONTEXT * ctx)
 
   struct mh_sequences mhs;
 
-  memset (&mhs, 0, sizeof (mhs));
+  p_clear(&mhs, 1);
 
   snprintf (seq_unseen, sizeof (seq_unseen), "%s:", NONULL (MhUnseen));
   snprintf (seq_replied, sizeof (seq_replied), "%s:", NONULL (MhReplied));
@@ -928,7 +928,7 @@ static int _mh_read_dir (CONTEXT * ctx, const char *subdir)
   int count;
 
 
-  memset (&mhs, 0, sizeof (mhs));
+  p_clear(&mhs, 1);
 
   maildir_update_mtime (ctx);
 
@@ -1737,7 +1737,7 @@ static int mh_check_mailbox (CONTEXT * ctx, int *index_hint, int unused)
   ctx->mtime_cur = st_cur.st_mtime;
   ctx->mtime = st.st_mtime;
 
-  memset (&mhs, 0, sizeof (mhs));
+  p_clear(&mhs, 1);
 
   md = NULL;
   last = &md;
index 15f8c0e..699e677 100644 (file)
@@ -257,7 +257,7 @@ int mutt_sasl_client_new (CONNECTION * conn, sasl_conn_t ** saslconn)
    * just fall back to LOGIN in the IMAP case anyway. If that doesn't
    * work for POP, we can make it a flag or move this code into
    * imap/auth_sasl.c */
-  memset (&secprops, 0, sizeof (secprops));
+  p_clear(&secprops, 1);
   /* Work around a casting bug in the SASL krb4 module */
   secprops.max_ssf = 0x7fff;
   secprops.maxbufsize = M_SASL_MAXBUF;
index 2c49da9..e5fc1a3 100644 (file)
@@ -379,7 +379,7 @@ int raw_socket_open (CONNECTION * conn)
   struct addrinfo *cur;
 
   /* we accept v4 or v6 STREAM sockets */
-  memset (&hints, 0, sizeof (hints));
+  p_clear(&hints, 1);
 
   if (option (OPTUSEIPV6))
     hints.ai_family = AF_UNSPEC;
@@ -439,7 +439,7 @@ int raw_socket_open (CONNECTION * conn)
   struct hostent *he;
   int i;
 
-  memset (&sin, 0, sizeof (sin));
+  p_clear(&sin, 1);
   sin.sin_port = htons (conn->account.port);
   sin.sin_family = AF_INET;
 
index 9be7e75..d57433e 100644 (file)
--- a/muttlib.c
+++ b/muttlib.c
@@ -454,7 +454,7 @@ char *mutt_gecos_name (char *dest, size_t destlen, struct passwd *pw)
   if (!pw || !pw->pw_gecos)
     return NULL;
 
-  memset (dest, 0, destlen);
+  p_clear(dest, destlen);
 
   if (GecosMask.rx) {
     if (regexec (GecosMask.rx, pw->pw_gecos, 1, pat_match, 0) == 0)
diff --git a/mx.c b/mx.c
index 5a815fe..cf924ca 100644 (file)
--- a/mx.c
+++ b/mx.c
@@ -193,7 +193,7 @@ int mx_lock_file (const char *path, int fd, int excl, int dot, int timeout)
   struct flock lck;
 
 
-  memset (&lck, 0, sizeof (struct flock));
+  p_clear(&lck, 1);
   lck.l_type = excl ? F_WRLCK : F_RDLCK;
   lck.l_whence = SEEK_SET;
 
@@ -294,7 +294,7 @@ int mx_unlock_file (const char *path, int fd, int dot)
 #ifdef USE_FCNTL
   struct flock unlockit;
 
-  memset (&unlockit, 0, sizeof (struct flock));
+  p_clear(&unlockit, 1);
   unlockit.l_type = F_UNLCK;
   unlockit.l_whence = SEEK_SET;
   fcntl (fd, F_SETLK, &unlockit);
@@ -625,7 +625,7 @@ void mx_fastclose_mailbox (CONTEXT * ctx)
   if (ctx->limit_pattern)
     mutt_pattern_free (&ctx->limit_pattern);
   safe_fclose (&ctx->fp);
-  memset (ctx, 0, sizeof (CONTEXT));
+  p_clear(ctx, 1);
 }
 
 /* save changes to disk */
index 1de5085..fb5fc1b 100644 (file)
@@ -336,7 +336,7 @@ NNTP_SERVER *mutt_select_newsserver (char *server)
   NNTP_SERVER *serv;
   CONNECTION *conn;
 
-  memset (&acct, 0, sizeof (ACCOUNT));
+  p_clear(&acct, 1);
 
   if (!server || !*server) {
     mutt_error _("No newsserver defined!");
index 2b9ead7..24850c8 100644 (file)
@@ -848,7 +848,7 @@ int nntp_open_mailbox (CONTEXT * ctx)
   unsigned int first;
   ACCOUNT acct;
 
-  memset (&acct, 0, sizeof (ACCOUNT));
+  p_clear(&acct, 1);
 
   if (nntp_parse_url (ctx->path, &acct, buf, sizeof (buf)) < 0 || !*buf) {
     mutt_error (_("%s is an invalid newsgroup specification!"), ctx->path);
diff --git a/pager.c b/pager.c
index 2a5cadf..2e4aa39 100644 (file)
--- a/pager.c
+++ b/pager.c
@@ -887,7 +887,7 @@ static int trim_incomplete_mbyte(unsigned char *buf, size_t len) {
   mbstate_t mbstate;
   size_t k;
 
-  memset (&mbstate, 0, sizeof (mbstate));
+  p_clear(&mbstate, 1);
   for (; len > 0; buf += k, len -= k) {
     k = mbrtowc (NULL, (char *) buf, len, &mbstate);
     if (k == -2) 
@@ -981,7 +981,7 @@ static int format_line (struct line_t **lineInfo, int n, unsigned char *buf,
     wrap_cols = COLS;
 
   /* FIXME: this should come from lineInfo */
-  memset (&mbstate, 0, sizeof (mbstate));
+  p_clear(&mbstate, 1);
 
   for (ch = 0, vch = 0; ch < cnt; ch += k, vch += k) {
     /* Handle ANSI sequences */
@@ -1146,7 +1146,7 @@ display_line (FILE * f, off_t *last_pos, struct line_t **lineInfo, int n,
   if (*last == *max) {
     p_realloc(lineInfo, *max += LINES);
     for (ch = *last; ch < *max; ch++) {
-      memset (&((*lineInfo)[ch]), 0, sizeof (struct line_t));
+      p_clear(&(*lineInfo)[ch], 1);
       (*lineInfo)[ch].type = -1;
       (*lineInfo)[ch].search_cnt = -1;
       (*lineInfo)[ch].syntax = p_new(struct syntax_t, 1);
@@ -1462,7 +1462,7 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t * extra)
 
   lineInfo = p_new(struct line_t, maxLine = LINES);
   for (i = 0; i < maxLine; i++) {
-    memset (&lineInfo[i], 0, sizeof (struct line_t));
+    p_clear(&lineInfo[i], 1);
     lineInfo[i].type = -1;
     lineInfo[i].search_cnt = -1;
     lineInfo[i].syntax = p_new(struct syntax_t, 1);
diff --git a/parse.c b/parse.c
index 1f7bac0..70379fa 100644 (file)
--- a/parse.c
+++ b/parse.c
@@ -805,7 +805,7 @@ time_t mutt_parse_date (const char *s, HEADER * h)
     t = scratch;
   SKIPWS (t);
 
-  memset (&tm, 0, sizeof (tm));
+  p_clear(&tm, 1);
 
   while ((t = strtok (t, " \t")) != NULL) {
     switch (count) {
index c40f9ca..46efa88 100644 (file)
--- a/pattern.c
+++ b/pattern.c
@@ -163,7 +163,7 @@ msg_search (CONTEXT *ctx, pattern_t* pat, int msgno)
   if ((msg = mx_open_message (ctx, msgno)) != NULL) {
     if (option (OPTTHOROUGHSRC)) {
       /* decode the header / body */
-      memset (&s, 0, sizeof (s));
+      p_clear(&s, 1);
       s.fpin = msg->fp;
       s.flags = M_CHARCONV;
       mutt_mktemp (tempfile);
@@ -246,7 +246,7 @@ int eat_regexp (pattern_t * pat, BUFFER * s, BUFFER * err)
   BUFFER buf;
   int r;
 
-  memset (&buf, 0, sizeof (buf));
+  p_clear(&buf, 1);
 
   if (mutt_extract_token (&buf, s, M_TOKEN_PATTERN | M_TOKEN_COMMENT) != 0 ||
       !buf.data) {
@@ -536,21 +536,21 @@ static int eat_date (pattern_t * pat, BUFFER * s, BUFFER * err)
   BUFFER buffer;
   struct tm min, max;
 
-  memset (&buffer, 0, sizeof (buffer));
+  p_clear(&buffer, 1);
   if (mutt_extract_token (&buffer, s, M_TOKEN_COMMENT | M_TOKEN_PATTERN) != 0
       || !buffer.data) {
     strfcpy (err->data, _("error in expression"), err->dsize);
     return (-1);
   }
 
-  memset (&min, 0, sizeof (min));
+  p_clear(&min, 1);
   /* the `0' time is Jan 1, 1970 UTC, so in order to prevent a negative time
      when doing timezone conversion, we use Jan 2, 1970 UTC as the base
      here */
   min.tm_mday = 2;
   min.tm_year = 70;
 
-  memset (&max, 0, sizeof (max));
+  p_clear(&max, 1);
 
   /* Arbitrary year in the future.  Don't set this too high
      or mutt_mktime() returns something larger than will
@@ -712,7 +712,7 @@ pattern_t *mutt_pattern_comp ( /* const */ char *s, int flags, BUFFER * err)
   char *buf;
   BUFFER ps;
 
-  memset (&ps, 0, sizeof (ps));
+  p_clear(&ps, 1);
   ps.dptr = s;
   ps.dsize = m_strlen(s);
 
diff --git a/pgp.c b/pgp.c
index 18931a1..6bd70f2 100644 (file)
--- a/pgp.c
+++ b/pgp.c
@@ -68,7 +68,7 @@ time_t PgpExptime = 0;          /* when does the cached passphrase expire? */
 
 void pgp_void_passphrase (void)
 {
-  memset (PgpPass, 0, sizeof (PgpPass));
+  p_clear(PgpPass, sizeof(PgpPass));
   PgpExptime = 0;
 }
 
@@ -687,7 +687,7 @@ static void pgp_extract_keys_from_attachment (FILE * fp, BODY * top)
     return;
   }
 
-  memset (&s, 0, sizeof (STATE));
+  p_clear(&s, 1);
 
   s.fpin = fp;
   s.fpout = tempfp;
@@ -842,7 +842,7 @@ int pgp_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b, BODY ** cur)
 
   b = b->parts->next;
 
-  memset (&s, 0, sizeof (s));
+  p_clear(&s, 1);
   s.fpin = fpin;
   mutt_mktemp (tempfile);
   if ((*fpout = safe_fopen (tempfile, "w+")) == NULL) {
index 9953406..ada68ed 100644 (file)
@@ -160,7 +160,7 @@ static pid_t pgp_invoke (FILE ** pgpin, FILE ** pgpout, FILE ** pgperr,
   struct pgp_command_context cctx;
   char cmd[HUGE_STRING];
 
-  memset (&cctx, 0, sizeof (cctx));
+  p_clear(&cctx, 1);
 
   if (!format || !*format)
     return (pid_t) - 1;
@@ -254,7 +254,7 @@ void pgp_invoke_import (const char *fname)
   char cmd[HUGE_STRING];
   struct pgp_command_context cctx;
 
-  memset (&cctx, 0, sizeof (cctx));
+  p_clear(&cctx, 1);
 
   mutt_quote_filename (_fname, sizeof (_fname), fname);
   cctx.fname = _fname;
@@ -277,7 +277,7 @@ void pgp_invoke_getkeys (ADDRESS * addr)
   if (!PgpGetkeysCommand)
     return;
 
-  memset (&cctx, 0, sizeof (cctx));
+  p_clear(&cctx, 1);
 
   personal = addr->personal;
   addr->personal = NULL;
index b5985b3..1b6ecc9 100644 (file)
@@ -65,7 +65,7 @@ static void pgp_dearmor (FILE * in, FILE * out)
 
   STATE state;
 
-  memset (&state, 0, sizeof (STATE));
+  p_clear(&state, 1);
   state.fpin = in;
   state.fpout = out;
 
index e797e9a..9361204 100644 (file)
@@ -223,7 +223,7 @@ static pgp_key_t pgp_parse_pgp2_key (unsigned char *buff, size_t l)
     memcpy (p->fingerprint, digest, MD5_DIGEST_LENGTH);
   }
   else                          /* just to be usre */
-    memset (p->fingerprint, 0, MD5_DIGEST_LENGTH);
+    p_clear(p->fingerprint, MD5_DIGEST_LENGTH);
 
   expl = 0;
   for (i = 0; i < 2; i++)
index f73fa4e..d63c146 100644 (file)
@@ -511,7 +511,7 @@ int mutt_prepare_template (FILE * fp, CONTEXT * ctx, HEADER * newhdr,
   int rv = -1;
   STATE s;
 
-  memset (&s, 0, sizeof (s));
+  p_clear(&s, 1);
 
   if (!fp && (msg = mx_open_message (ctx, hdr->msgno)) == NULL)
     return (-1);
diff --git a/query.c b/query.c
index 1f164da..1e1937d 100644 (file)
--- a/query.c
+++ b/query.c
@@ -432,7 +432,7 @@ static void query_menu (char *buf, size_t buflen, QUERY * results, int retbuf)
       int tagged = 0;
       size_t curpos = 0;
 
-      memset (buf, 0, buflen);
+      p_clear(buf, buflen);
 
       /* check for tagged entries */
       for (i = 0; i < menu->max; i++) {
index 76f5185..99a8917 100644 (file)
@@ -647,7 +647,7 @@ void mutt_pipe_attachment_list (FILE * fp, int tag, BODY * top, int filter)
     filter = 0;                 /* sanity check: we can't filter in the recv case yet */
 
   buf[0] = 0;
-  memset (&state, 0, sizeof (STATE));
+  p_clear(&state, 1);
 
   if (mutt_get_field ((filter ? _("Filter through: ") : _("Pipe to: ")),
                       buf, sizeof (buf), M_CMD) != 0 || !buf[0])
@@ -751,7 +751,7 @@ void mutt_print_attachment_list (FILE * fp, int tag, BODY * top)
     if (!can_print (top, tag))
       return;
     mutt_endwin (NULL);
-    memset (&state, 0, sizeof (STATE));
+    p_clear(&state, 1);
     thepid = mutt_create_filter (NONULL (PrintCmd), &state.fpout, NULL, NULL);
     print_attachment_list (fp, tag, top, &state);
     fclose (state.fpout);
index 5cfdf9f..68ad462 100644 (file)
--- a/recvcmd.c
+++ b/recvcmd.c
@@ -444,7 +444,7 @@ static void attach_forward_bodies (FILE * fp, HEADER * hdr,
 
   /* initialize a state structure */
 
-  memset (&st, 0, sizeof (st));
+  p_clear(&st, 1);
 
   if (option (OPTFORWQUOTE))
     st.prefix = prefix;
@@ -829,7 +829,7 @@ void mutt_attach_reply (FILE * fp, HEADER * hdr,
   else {
     mutt_make_attribution (Context, parent, tmpfp);
 
-    memset (&st, 0, sizeof (STATE));
+    p_clear(&st, 1);
     st.fpin = fp;
     st.fpout = tmpfp;
 
diff --git a/score.c b/score.c
index 7959d4c..def0501 100644 (file)
--- a/score.c
+++ b/score.c
@@ -68,7 +68,7 @@ int mutt_parse_score (BUFFER * buf, BUFFER * s, unsigned long data,
     return (-1);
   }
   pattern = buf->data;
-  memset (buf, 0, sizeof (BUFFER));
+  p_clear(buf, 1);
   mutt_extract_token (buf, s, 0);
   if (MoreArgs (s)) {
     p_delete(&pattern);
index 5aa7974..5fc706c 100644 (file)
--- a/sendlib.c
+++ b/sendlib.c
@@ -833,7 +833,7 @@ CONTENT *mutt_get_content_info (const char *fname, BODY * b)
   }
 
   info = p_new(CONTENT, 1);
-  memset (&state, 0, sizeof (state));
+  p_clear(&state, 1);
 
   if (b != NULL && b->type == TYPETEXT && (!b->noconv && !b->force_charset)) {
     char *chs = mutt_get_parameter ("charset", b->parameter);
@@ -1052,7 +1052,7 @@ static void transform_to_7bit (BODY * a, FILE * fpin)
   STATE s;
   struct stat sb;
 
-  memset (&s, 0, sizeof (s));
+  p_clear(&s, 1);
   for (; a; a = a->next) {
     if (a->type == TYPEMULTIPART) {
       if (a->encoding != ENC7BIT)
index da858b1..4e2c08e 100644 (file)
--- a/sidebar.c
+++ b/sidebar.c
@@ -208,7 +208,7 @@ int make_sidebar_entry (char* box, int idx, size_t len)
   mutt_FormatString (no, len, NONULL (SidebarNumberFormat),
                      sidebar_number_format, idx, M_FORMAT_OPTIONAL);
   lencnt = m_strlen(no);
-  memset (&entry, ' ', sizeof (entry));
+  memset(&entry, ' ', sizeof(entry));
 
 #if USE_IMAP
   if (l > 0 && str_ncmp (box, ImapHomeNamespace, l) == 0 && 
@@ -387,7 +387,7 @@ int sidebar_draw (int menu) {
   SETCOLOR (MT_COLOR_NORMAL);
 
   /* fill with blanks to bottom */
-  memset (&blank, ' ', sizeof (blank));
+  memset(&blank, ' ', sizeof(blank));
   for (; line < last_line; line++) {
     move (line, 0);
     addnstr (blank, SidebarWidth-delim_len);
index 7abc3ec..126ebbb 100644 (file)
--- a/signal.c
+++ b/signal.c
@@ -229,7 +229,7 @@ void mutt_allow_interrupt (int disposition)
 {
   struct sigaction sa;
 
-  memset (&sa, 0, sizeof sa);
+  p_clear(&sa, 1);
   sa.sa_handler = sighandler;
 #ifdef SA_RESTART
   if (disposition == 0)
diff --git a/smime.c b/smime.c
index 554f02e..be9b6b4 100644 (file)
--- a/smime.c
+++ b/smime.c
@@ -93,7 +93,7 @@ static char SmimeIntermediateToUse[_POSIX_PATH_MAX];
 
 void smime_void_passphrase (void)
 {
-  memset (SmimePass, 0, sizeof (SmimePass));
+  p_clear(SmimePass, sizeof(SmimePass));
   SmimeExptime = 0;
 }
 
@@ -266,7 +266,7 @@ static pid_t smime_invoke (FILE ** smimein, FILE ** smimeout,
   struct smime_command_context cctx;
   char cmd[HUGE_STRING];
 
-  memset (&cctx, 0, sizeof (cctx));
+  p_clear(&cctx, 1);
 
   if (!format || !*format)
     return (pid_t) - 1;
@@ -1813,7 +1813,7 @@ int smime_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b, BODY ** cur)
   if (b->parts)
     return -1;
 
-  memset (&s, 0, sizeof (s));
+  p_clear(&s, 1);
   s.fpin = fpin;
   fseeko (s.fpin, b->offset, 0);