X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=mh.c;h=ca138834457a157c745e85a9f8574d65a1e38d0f;hp=4ddb15507f1327b6f1eb96fc66c2434ea4ae513d;hb=4f61fa445bff564984acf29fc91858af0ed2725e;hpb=42cc85de46ed8971a6c793835023cf26766fb096 diff --git a/mh.c b/mh.c index 4ddb155..ca13883 100644 --- a/mh.c +++ b/mh.c @@ -24,6 +24,8 @@ #include "copy.h" #include "buffy.h" #include "sort.h" +#include "thread.h" +#include "hcache.h" #include "lib/mem.h" #include "lib/intl.h" @@ -81,7 +83,7 @@ static void mhs_alloc (struct mh_sequences *mhs, int i) if (i > mhs->max || !mhs->flags) { newmax = i + 128; - safe_realloc (&mhs->flags, sizeof (mhs->flags[0]) * (newmax + 1)); + mem_realloc (&mhs->flags, sizeof (mhs->flags[0]) * (newmax + 1)); for (j = mhs->max + 1; j <= newmax; j++) mhs->flags[j] = 0; @@ -91,7 +93,7 @@ static void mhs_alloc (struct mh_sequences *mhs, int i) static void mhs_free_sequences (struct mh_sequences *mhs) { - FREE (&mhs->flags); + mem_free (&mhs->flags); } static short mhs_check (struct mh_sequences *mhs, int i) @@ -157,11 +159,11 @@ static void mh_read_sequences (struct mh_sequences *mhs, const char *path) if (!(t = strtok (buff, " \t:"))) continue; - if (!mutt_strcmp (t, MhUnseen)) + if (!str_cmp (t, MhUnseen)) f = MH_SEQ_UNSEEN; - else if (!mutt_strcmp (t, MhFlagged)) + else if (!str_cmp (t, MhFlagged)) f = MH_SEQ_FLAGGED; - else if (!mutt_strcmp (t, MhReplied)) + else if (!str_cmp (t, MhReplied)) f = MH_SEQ_REPLIED; else /* unknown sequence */ continue; @@ -173,7 +175,7 @@ static void mh_read_sequences (struct mh_sequences *mhs, const char *path) } } - FREE (&buff); + mem_free (&buff); safe_fclose (&fp); } @@ -208,13 +210,13 @@ static int mh_mkstemp (CONTEXT * dest, FILE ** fp, char **tgt) } } else { - *tgt = safe_strdup (path); + *tgt = str_dup (path); break; } } if ((*fp = fdopen (fd, "w")) == NULL) { - FREE (tgt); + mem_free (tgt); close (fd); unlink (path); return (-1); @@ -304,11 +306,11 @@ void mh_update_sequences (CONTEXT * ctx) /* first, copy unknown sequences */ if ((ofp = fopen (sequences, "r"))) { while ((buff = mutt_read_line (buff, &s, ofp, &l))) { - if (!safe_strncmp (buff, seq_unseen, mutt_strlen (seq_unseen))) + if (!str_ncmp (buff, seq_unseen, str_len (seq_unseen))) continue; - if (!safe_strncmp (buff, seq_flagged, mutt_strlen (seq_flagged))) + if (!str_ncmp (buff, seq_flagged, str_len (seq_flagged))) continue; - if (!safe_strncmp (buff, seq_replied, mutt_strlen (seq_replied))) + if (!str_ncmp (buff, seq_replied, str_len (seq_replied))) continue; fprintf (nfp, "%s\n", buff); @@ -362,7 +364,7 @@ void mh_update_sequences (CONTEXT * ctx) unlink (tmpfname); } - FREE (&tmpfname); + mem_free (&tmpfname); } static void mh_sequences_add_one (CONTEXT * ctx, int n, short unseen, @@ -395,17 +397,17 @@ static void mh_sequences_add_one (CONTEXT * ctx, int n, short unseen, snprintf (sequences, sizeof (sequences), "%s/.mh_sequences", ctx->path); if ((ofp = fopen (sequences, "r"))) { while ((buff = mutt_read_line (buff, &sz, ofp, &line))) { - if (unseen && !strncmp (buff, seq_unseen, mutt_strlen (seq_unseen))) { + if (unseen && !strncmp (buff, seq_unseen, str_len (seq_unseen))) { fprintf (nfp, "%s %d\n", buff, n); unseen_done = 1; } else if (flagged - && !strncmp (buff, seq_flagged, mutt_strlen (seq_flagged))) { + && !strncmp (buff, seq_flagged, str_len (seq_flagged))) { fprintf (nfp, "%s %d\n", buff, n); flagged_done = 1; } else if (replied - && !strncmp (buff, seq_replied, mutt_strlen (seq_replied))) { + && !strncmp (buff, seq_replied, str_len (seq_replied))) { fprintf (nfp, "%s %d\n", buff, n); replied_done = 1; } @@ -414,7 +416,7 @@ static void mh_sequences_add_one (CONTEXT * ctx, int n, short unseen, } } safe_fclose (&ofp); - FREE (&buff); + mem_free (&buff); if (!unseen_done && unseen) fprintf (nfp, "%s: %d\n", NONULL (MhUnseen), n); @@ -429,7 +431,7 @@ static void mh_sequences_add_one (CONTEXT * ctx, int n, short unseen, if (safe_rename (tmpfname, sequences) != 0) unlink (tmpfname); - FREE (&tmpfname); + mem_free (&tmpfname); } static void mh_update_maildir (struct maildir *md, struct mh_sequences *mhs) @@ -460,11 +462,11 @@ static void maildir_free_entry (struct maildir **md) if (!md || !*md) return; - FREE (&(*md)->canon_fname); + mem_free (&(*md)->canon_fname); if ((*md)->h) mutt_free_header (&(*md)->h); - FREE (md); + mem_free (md); } static void maildir_free_maildir (struct maildir **md) @@ -488,7 +490,7 @@ static void maildir_parse_flags (HEADER * h, const char *path) h->read = 0; h->replied = 0; - if ((p = strrchr (path, ':')) != NULL && safe_strncmp (p + 1, "2,", 2) == 0) { + if ((p = strrchr (path, ':')) != NULL && str_ncmp (p + 1, "2,", 2) == 0) { p += 3; str_replace (&h->maildir_flags, p); @@ -525,7 +527,7 @@ static void maildir_parse_flags (HEADER * h, const char *path) } if (q == h->maildir_flags) - FREE (&h->maildir_flags); + mem_free (&h->maildir_flags); else if (q) *q = '\0'; } @@ -637,12 +639,12 @@ static int maildir_parse_entry (CONTEXT * ctx, struct maildir ***last, if (subdir) { snprintf (buf, sizeof (buf), "%s/%s", subdir, fname); - h->path = safe_strdup (buf); + h->path = str_dup (buf); } else - h->path = safe_strdup (fname); + h->path = str_dup (fname); - entry = safe_calloc (sizeof (struct maildir), 1); + entry = mem_calloc (sizeof (struct maildir), 1); entry->h = h; entry->header_parsed = (ctx->magic == M_MH); #ifdef USE_INODESORT @@ -683,7 +685,7 @@ static int maildir_parse_dir (CONTEXT * ctx, struct maildir ***last, if (subdir) { snprintf (buf, sizeof (buf), "%s/%s", ctx->path, subdir); - is_old = (mutt_strcmp ("cur", subdir) == 0); + is_old = (str_cmp ("cur", subdir) == 0); } else strfcpy (buf, ctx->path, sizeof (buf)); @@ -835,7 +837,7 @@ static size_t maildir_hcache_keylen (const char *fn) { const char *p = strchr (fn, ':'); - return p ? (size_t) (p - fn) : mutt_strlen (fn); + return p ? (size_t) (p - fn) : str_len (fn); } #endif @@ -897,7 +899,7 @@ void maildir_delayed_parsing (CONTEXT * ctx, struct maildir *md) else mutt_free_header (&p->h); #if USE_HCACHE - FREE (&data); + mem_free (&data); #endif } #if USE_HCACHE @@ -1001,7 +1003,7 @@ static void maildir_flags (char *dest, size_t destlen, HEADER * hdr) hdr->read ? "S" : "", hdr->deleted ? "T" : "", NONULL (hdr->maildir_flags)); if (hdr->maildir_flags) - qsort (tmp, mutt_strlen (tmp), 1, ch_compar); + qsort (tmp, str_len (tmp), 1, ch_compar); snprintf (dest, destlen, ":2,%s", tmp); } } @@ -1055,13 +1057,13 @@ static int maildir_open_new_message (MESSAGE * msg, CONTEXT * dest, HEADER * hdr } else { debug_print (2, ("success.\n")); - msg->path = safe_strdup (path); + msg->path = str_dup (path); break; } } if ((msg->fp = fdopen (fd, "w")) == NULL) { - FREE (&msg->path); + mem_free (&msg->path); close (fd); unlink (path); return (-1); @@ -1126,7 +1128,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); - FREE (&msg->path); + mem_free (&msg->path); /* * Adjust the mtime on the file to match the time at which this @@ -1212,7 +1214,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); - FREE (&msg->path); + mem_free (&msg->path); break; } else if (errno != EEXIST) { @@ -1356,7 +1358,7 @@ static int maildir_sync_message (CONTEXT * ctx, int msgno) snprintf (fullpath, sizeof (fullpath), "%s/%s", ctx->path, partpath); snprintf (oldpath, sizeof (oldpath), "%s/%s", ctx->path, h->path); - if (mutt_strcmp (fullpath, oldpath) == 0) { + if (str_cmp (fullpath, oldpath) == 0) { /* message hasn't really changed */ return 0; } @@ -1605,7 +1607,7 @@ static int maildir_check_mailbox (CONTEXT * ctx, int *index_hint, int unused) for (p = md; p; p = p->next) { maildir_canon_filename (buf, p->h->path, sizeof (buf)); - p->canon_fname = safe_strdup (buf); + p->canon_fname = str_dup (buf); hash_insert (fnames, p->canon_fname, p, 0); } @@ -1621,7 +1623,7 @@ static int maildir_check_mailbox (CONTEXT * ctx, int *index_hint, int unused) /* check to see if the message has moved to a different * subdirectory. If so, update the associated filename. */ - if (mutt_strcmp (ctx->hdrs[i]->path, p->h->path)) + if (str_cmp (ctx->hdrs[i]->path, p->h->path)) str_replace (&ctx->hdrs[i]->path, p->h->path); /* if the user hasn't modified the flags on this message, update @@ -1713,7 +1715,7 @@ static int mh_check_mailbox (CONTEXT * ctx, int *index_hint, int unused) safe_fclose (&fp); if (safe_rename (tmp, buf) == -1) unlink (tmp); - FREE (&tmp); + mem_free (&tmp); } } @@ -1748,7 +1750,7 @@ static int mh_check_mailbox (CONTEXT * ctx, int *index_hint, int unused) ctx->hdrs[i]->active = 0; if ((p = hash_find (fnames, ctx->hdrs[i]->path)) && p->h && - (mbox_strict_cmp_headers (ctx->hdrs[i], p->h))) { + (mutt_cmp_header (ctx->hdrs[i], p->h))) { ctx->hdrs[i]->active = 1; /* found the right message */ if (!ctx->hdrs[i]->changed) @@ -1806,7 +1808,7 @@ FILE *_maildir_open_find_message (const char *folder, const char *unique, while ((de = readdir (dp))) { maildir_canon_filename (tunique, de->d_name, sizeof (tunique)); - if (!mutt_strcmp (tunique, unique)) { + if (!str_cmp (tunique, unique)) { snprintf (fname, sizeof (fname), "%s/%s/%s", folder, subfolder, de->d_name); fp = fopen (fname, "r"); /* __FOPEN_CHECKED__ */ @@ -1969,7 +1971,7 @@ static int maildir_is_magic (const char* path, struct stat* st) { /* routines common to maildir and mh */ static mx_t* reg_mx (void) { - mx_t* fmt = safe_calloc (1, sizeof (mx_t)); + mx_t* fmt = mem_calloc (1, sizeof (mx_t)); fmt->local = 1; fmt->mx_access = access; fmt->mx_sync_mailbox = mh_sync_mailbox;