projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
exit mem_realloc, enters p_realloc/xrealloc.
[apps/madmutt.git]
/
mh.c
diff --git
a/mh.c
b/mh.c
index
73a5638
..
8c9bbc7
100644
(file)
--- a/
mh.c
+++ b/
mh.c
@@
-17,6
+17,8
@@
# include "config.h"
#endif
# include "config.h"
#endif
+#include <lib-lib/mem.h>
+
#include "mutt.h"
#include "mx.h"
#include "mh.h"
#include "mutt.h"
#include "mx.h"
#include "mh.h"
@@
-24,8
+26,9
@@
#include "copy.h"
#include "buffy.h"
#include "sort.h"
#include "copy.h"
#include "buffy.h"
#include "sort.h"
+#include "thread.h"
+#include "hcache.h"
-#include "lib/mem.h"
#include "lib/intl.h"
#include "lib/str.h"
#include "lib/debug.h"
#include "lib/intl.h"
#include "lib/str.h"
#include "lib/debug.h"
@@
-81,7
+84,7
@@
static void mhs_alloc (struct mh_sequences *mhs, int i)
if (i > mhs->max || !mhs->flags) {
newmax = i + 128;
if (i > mhs->max || !mhs->flags) {
newmax = i + 128;
-
safe_realloc (&mhs->flags, sizeof (mhs->flags[0]) * (newmax + 1)
);
+
p_realloc(&mhs->flags, newmax + 1
);
for (j = mhs->max + 1; j <= newmax; j++)
mhs->flags[j] = 0;
for (j = mhs->max + 1; j <= newmax; j++)
mhs->flags[j] = 0;
@@
-91,7
+94,7
@@
static void mhs_alloc (struct mh_sequences *mhs, int i)
static void mhs_free_sequences (struct mh_sequences *mhs)
{
static void mhs_free_sequences (struct mh_sequences *mhs)
{
-
FREE
(&mhs->flags);
+
p_delete
(&mhs->flags);
}
static short mhs_check (struct mh_sequences *mhs, int i)
}
static short mhs_check (struct mh_sequences *mhs, int i)
@@
-173,7
+176,7
@@
static void mh_read_sequences (struct mh_sequences *mhs, const char *path)
}
}
}
}
-
FREE
(&buff);
+
p_delete
(&buff);
safe_fclose (&fp);
}
safe_fclose (&fp);
}
@@
-214,7
+217,7
@@
static int mh_mkstemp (CONTEXT * dest, FILE ** fp, char **tgt)
}
if ((*fp = fdopen (fd, "w")) == NULL) {
}
if ((*fp = fdopen (fd, "w")) == NULL) {
-
FREE
(tgt);
+
p_delete
(tgt);
close (fd);
unlink (path);
return (-1);
close (fd);
unlink (path);
return (-1);
@@
-362,7
+365,7
@@
void mh_update_sequences (CONTEXT * ctx)
unlink (tmpfname);
}
unlink (tmpfname);
}
-
FREE
(&tmpfname);
+
p_delete
(&tmpfname);
}
static void mh_sequences_add_one (CONTEXT * ctx, int n, short unseen,
}
static void mh_sequences_add_one (CONTEXT * ctx, int n, short unseen,
@@
-414,7
+417,7
@@
static void mh_sequences_add_one (CONTEXT * ctx, int n, short unseen,
}
}
safe_fclose (&ofp);
}
}
safe_fclose (&ofp);
-
FREE
(&buff);
+
p_delete
(&buff);
if (!unseen_done && unseen)
fprintf (nfp, "%s: %d\n", NONULL (MhUnseen), n);
if (!unseen_done && unseen)
fprintf (nfp, "%s: %d\n", NONULL (MhUnseen), n);
@@
-429,7
+432,7
@@
static void mh_sequences_add_one (CONTEXT * ctx, int n, short unseen,
if (safe_rename (tmpfname, sequences) != 0)
unlink (tmpfname);
if (safe_rename (tmpfname, sequences) != 0)
unlink (tmpfname);
-
FREE
(&tmpfname);
+
p_delete
(&tmpfname);
}
static void mh_update_maildir (struct maildir *md, struct mh_sequences *mhs)
}
static void mh_update_maildir (struct maildir *md, struct mh_sequences *mhs)
@@
-460,11
+463,11
@@
static void maildir_free_entry (struct maildir **md)
if (!md || !*md)
return;
if (!md || !*md)
return;
-
FREE
(&(*md)->canon_fname);
+
p_delete
(&(*md)->canon_fname);
if ((*md)->h)
mutt_free_header (&(*md)->h);
if ((*md)->h)
mutt_free_header (&(*md)->h);
-
FREE
(md);
+
p_delete
(md);
}
static void maildir_free_maildir (struct maildir **md)
}
static void maildir_free_maildir (struct maildir **md)
@@
-525,7
+528,7
@@
static void maildir_parse_flags (HEADER * h, const char *path)
}
if (q == h->maildir_flags)
}
if (q == h->maildir_flags)
-
FREE
(&h->maildir_flags);
+
p_delete
(&h->maildir_flags);
else if (q)
*q = '\0';
}
else if (q)
*q = '\0';
}
@@
-642,7
+645,7
@@
static int maildir_parse_entry (CONTEXT * ctx, struct maildir ***last,
else
h->path = str_dup (fname);
else
h->path = str_dup (fname);
- entry =
safe_calloc (sizeof (struct maildir)
, 1);
+ entry =
p_new(struct maildir
, 1);
entry->h = h;
entry->header_parsed = (ctx->magic == M_MH);
#ifdef USE_INODESORT
entry->h = h;
entry->header_parsed = (ctx->magic == M_MH);
#ifdef USE_INODESORT
@@
-701,7
+704,12
@@
static int maildir_parse_dir (CONTEXT * ctx, struct maildir ***last,
debug_print (2, ("parsing %s\n", de->d_name));
maildir_parse_entry (ctx, last, subdir, de->d_name, count, is_old,
debug_print (2, ("parsing %s\n", de->d_name));
maildir_parse_entry (ctx, last, subdir, de->d_name, count, is_old,
- de->d_ino);
+#if HAVE_DIRENT_D_INO
+ de->d_ino
+#else
+ 0
+#endif
+ );
}
closedir (dirp);
}
closedir (dirp);
@@
-830,7
+838,7
@@
static struct maildir *maildir_sort_inode (struct maildir *list)
}
#endif /* USE_INODESORT */
}
#endif /* USE_INODESORT */
-#if USE_HCACHE
+#if
def
USE_HCACHE
static size_t maildir_hcache_keylen (const char *fn)
{
const char *p = strchr (fn, ':');
static size_t maildir_hcache_keylen (const char *fn)
{
const char *p = strchr (fn, ':');
@@
-849,7
+857,7
@@
void maildir_delayed_parsing (CONTEXT * ctx, struct maildir *md)
char fn[_POSIX_PATH_MAX];
int count;
char fn[_POSIX_PATH_MAX];
int count;
-#if USE_HCACHE
+#if
def
USE_HCACHE
void *hc = NULL;
void *data;
struct timeval *when = NULL;
void *hc = NULL;
void *data;
struct timeval *when = NULL;
@@
-863,7
+871,7
@@
void maildir_delayed_parsing (CONTEXT * ctx, struct maildir *md)
if (!(p && p->h && !p->header_parsed))
continue;
if (!(p && p->h && !p->header_parsed))
continue;
-#if USE_HCACHE
+#if
def
USE_HCACHE
data = mutt_hcache_fetch (hc, p->h->path + 3, &maildir_hcache_keylen);
when = (struct timeval *) data;
#endif
data = mutt_hcache_fetch (hc, p->h->path + 3, &maildir_hcache_keylen);
when = (struct timeval *) data;
#endif
@@
-872,7
+880,7
@@
void maildir_delayed_parsing (CONTEXT * ctx, struct maildir *md)
mutt_message (_("Reading %s... %d"), ctx->path, count);
snprintf (fn, sizeof (fn), "%s/%s", ctx->path, p->h->path);
mutt_message (_("Reading %s... %d"), ctx->path, count);
snprintf (fn, sizeof (fn), "%s/%s", ctx->path, p->h->path);
-#if USE_HCACHE
+#if
def
USE_HCACHE
if (option (OPTHCACHEVERIFY)) {
ret = stat (fn, &lastchanged);
}
if (option (OPTHCACHEVERIFY)) {
ret = stat (fn, &lastchanged);
}
@@
-890,17
+898,17
@@
void maildir_delayed_parsing (CONTEXT * ctx, struct maildir *md)
if (maildir_parse_message (ctx->magic, fn, p->h->old, p->h)) {
p->header_parsed = 1;
maildir_parse_flags (p->h, fn);
if (maildir_parse_message (ctx->magic, fn, p->h->old, p->h)) {
p->header_parsed = 1;
maildir_parse_flags (p->h, fn);
-#if USE_HCACHE
+#if
def
USE_HCACHE
mutt_hcache_store (hc, p->h->path + 3, p->h, 0, &maildir_hcache_keylen);
#endif
}
else
mutt_free_header (&p->h);
mutt_hcache_store (hc, p->h->path + 3, p->h, 0, &maildir_hcache_keylen);
#endif
}
else
mutt_free_header (&p->h);
-#if USE_HCACHE
-
FREE
(&data);
+#if
def
USE_HCACHE
+
p_delete
(&data);
#endif
}
#endif
}
-#if USE_HCACHE
+#if
def
USE_HCACHE
mutt_hcache_close (hc);
#endif
}
mutt_hcache_close (hc);
#endif
}
@@
-1061,7
+1069,7
@@
static int maildir_open_new_message (MESSAGE * msg, CONTEXT * dest, HEADER * hdr
}
if ((msg->fp = fdopen (fd, "w")) == NULL) {
}
if ((msg->fp = fdopen (fd, "w")) == NULL) {
-
FREE
(&msg->path);
+
p_delete
(&msg->path);
close (fd);
unlink (path);
return (-1);
close (fd);
unlink (path);
return (-1);
@@
-1126,7
+1134,7
@@
static int maildir_commit_message (MESSAGE * msg, CONTEXT * ctx, HEADER * hdr)
if (safe_rename (msg->path, full) == 0) {
if (hdr)
str_replace (&hdr->path, path);
if (safe_rename (msg->path, full) == 0) {
if (hdr)
str_replace (&hdr->path, path);
-
FREE
(&msg->path);
+
p_delete
(&msg->path);
/*
* Adjust the mtime on the file to match the time at which this
/*
* Adjust the mtime on the file to match the time at which this
@@
-1212,7
+1220,7
@@
static int _mh_commit_message (MESSAGE * msg, CONTEXT * ctx, HEADER * hdr,
if (safe_rename (msg->path, path) == 0) {
if (hdr)
str_replace (&hdr->path, tmp);
if (safe_rename (msg->path, path) == 0) {
if (hdr)
str_replace (&hdr->path, tmp);
-
FREE
(&msg->path);
+
p_delete
(&msg->path);
break;
}
else if (errno != EEXIST) {
break;
}
else if (errno != EEXIST) {
@@
-1378,7
+1386,7
@@
static int mh_sync_mailbox (CONTEXT * ctx, int unused, int *index_hint)
char path[_POSIX_PATH_MAX], tmp[_POSIX_PATH_MAX];
int i, j;
char path[_POSIX_PATH_MAX], tmp[_POSIX_PATH_MAX];
int i, j;
-#if USE_HCACHE
+#if
def
USE_HCACHE
void *hc = NULL;
#endif /* USE_HCACHE */
void *hc = NULL;
#endif /* USE_HCACHE */
@@
-1390,7
+1398,7
@@
static int mh_sync_mailbox (CONTEXT * ctx, int unused, int *index_hint)
if (i != 0)
return i;
if (i != 0)
return i;
-#if USE_HCACHE
+#if
def
USE_HCACHE
if (ctx->magic == M_MAILDIR)
hc = mutt_hcache_open (HeaderCache, ctx->path);
#endif /* USE_HCACHE */
if (ctx->magic == M_MAILDIR)
hc = mutt_hcache_open (HeaderCache, ctx->path);
#endif /* USE_HCACHE */
@@
-1401,7
+1409,7
@@
static int mh_sync_mailbox (CONTEXT * ctx, int unused, int *index_hint)
snprintf (path, sizeof (path), "%s/%s", ctx->path, ctx->hdrs[i]->path);
if (ctx->magic == M_MAILDIR
|| (option (OPTMHPURGE) && ctx->magic == M_MH)) {
snprintf (path, sizeof (path), "%s/%s", ctx->path, ctx->hdrs[i]->path);
if (ctx->magic == M_MAILDIR
|| (option (OPTMHPURGE) && ctx->magic == M_MH)) {
-#if USE_HCACHE
+#if
def
USE_HCACHE
if (ctx->magic == M_MAILDIR)
mutt_hcache_delete (hc, ctx->hdrs[i]->path + 3,
&maildir_hcache_keylen);
if (ctx->magic == M_MAILDIR)
mutt_hcache_delete (hc, ctx->hdrs[i]->path + 3,
&maildir_hcache_keylen);
@@
-1434,7
+1442,7
@@
static int mh_sync_mailbox (CONTEXT * ctx, int unused, int *index_hint)
}
}
}
}
-#if USE_HCACHE
+#if
def
USE_HCACHE
if (ctx->magic == M_MAILDIR)
mutt_hcache_close (hc);
#endif /* USE_HCACHE */
if (ctx->magic == M_MAILDIR)
mutt_hcache_close (hc);
#endif /* USE_HCACHE */
@@
-1459,7
+1467,7
@@
static int mh_sync_mailbox (CONTEXT * ctx, int unused, int *index_hint)
return 0;
err:
return 0;
err:
-#if USE_HCACHE
+#if
def
USE_HCACHE
if (ctx->magic == M_MAILDIR)
mutt_hcache_close (hc);
#endif /* USE_HCACHE */
if (ctx->magic == M_MAILDIR)
mutt_hcache_close (hc);
#endif /* USE_HCACHE */
@@
-1713,7
+1721,7
@@
static int mh_check_mailbox (CONTEXT * ctx, int *index_hint, int unused)
safe_fclose (&fp);
if (safe_rename (tmp, buf) == -1)
unlink (tmp);
safe_fclose (&fp);
if (safe_rename (tmp, buf) == -1)
unlink (tmp);
-
FREE
(&tmp);
+
p_delete
(&tmp);
}
}
}
}
@@
-1969,7
+1977,7
@@
static int maildir_is_magic (const char* path, struct stat* st) {
/* routines common to maildir and mh */
static mx_t* reg_mx (void) {
/* routines common to maildir and mh */
static mx_t* reg_mx (void) {
- mx_t* fmt =
safe_calloc (1, sizeof (mx_t)
);
+ mx_t* fmt =
p_new(mx_t, 1
);
fmt->local = 1;
fmt->mx_access = access;
fmt->mx_sync_mailbox = mh_sync_mailbox;
fmt->local = 1;
fmt->mx_access = access;
fmt->mx_sync_mailbox = mh_sync_mailbox;