X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-mx%2Fmh.c;h=7c2f7e2675e73e77ace5bcdb6a0084a673ddfa67;hp=2d79be8699fd5256b56d71af803b39dc2bf8915f;hb=0ab517261694b001d2eb17f06f167a4cdd2c7c07;hpb=fcaada9d60ee8f52bbc8503c06fe061ca9e2fa68 diff --git a/lib-mx/mh.c b/lib-mx/mh.c index 2d79be8..7c2f7e2 100644 --- a/lib-mx/mh.c +++ b/lib-mx/mh.c @@ -86,19 +86,6 @@ static short mhs_set (struct mh_sequences *mhs, int i, short f) return mhs->flags[i]; } -#if 0 - -/* unused */ - -static short mhs_unset (struct mh_sequences *mhs, int i, short f) -{ - mhs_alloc (mhs, i); - mhs->flags[i] &= ~f; - return mhs->flags[i]; -} - -#endif - static void mh_read_token (char *t, int *first, int *last) { char *p; @@ -151,7 +138,7 @@ static void mh_read_sequences (struct mh_sequences *mhs, const char *path) } p_delete(&buff); - safe_fclose (&fp); + m_fclose(&fp); } int mh_buffy (const char *path) @@ -177,7 +164,7 @@ static int mh_mkstemp (CONTEXT * dest, FILE ** fp, char **tgt) for (;;) { snprintf (path, _POSIX_PATH_MAX, "%s/.mutt-%s-%d-%d", - dest->path, NONULL (Hostname), (int) getpid (), Counter++); + dest->path, NONULL(MCore.shorthost), (int) getpid (), Counter++); umask (Umask); if ((fd = open (path, O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1) { if (errno != EEXIST) { @@ -292,7 +279,7 @@ static void mh_update_sequences (CONTEXT * ctx) fprintf (nfp, "%s\n", buff); } } - safe_fclose (&ofp); + m_fclose(&ofp); /* now, update our unseen, flagged, and replied sequences */ for (l = 0; l < ctx->msgcount; l++) { @@ -332,7 +319,7 @@ static void mh_update_sequences (CONTEXT * ctx) /* try to commit the changes - no guarantee here */ - safe_fclose (&nfp); + m_fclose(&nfp); unlink (sequences); if (safe_rename (tmpfname, sequences) != 0) { @@ -373,17 +360,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, m_strlen(seq_unseen))) { + if (unseen && !m_strncmp (buff, seq_unseen, m_strlen(seq_unseen))) { fprintf (nfp, "%s %d\n", buff, n); unseen_done = 1; } else if (flagged - && !strncmp (buff, seq_flagged, m_strlen(seq_flagged))) { + && !m_strncmp (buff, seq_flagged, m_strlen(seq_flagged))) { fprintf (nfp, "%s %d\n", buff, n); flagged_done = 1; } else if (replied - && !strncmp (buff, seq_replied, m_strlen(seq_replied))) { + && !m_strncmp (buff, seq_replied, m_strlen(seq_replied))) { fprintf (nfp, "%s %d\n", buff, n); replied_done = 1; } @@ -391,7 +378,7 @@ static void mh_sequences_add_one (CONTEXT * ctx, int n, short unseen, fprintf (nfp, "%s\n", buff); } } - safe_fclose (&ofp); + m_fclose(&ofp); p_delete(&buff); if (!unseen_done && unseen) @@ -401,7 +388,7 @@ static void mh_sequences_add_one (CONTEXT * ctx, int n, short unseen, if (!replied_done && replied) fprintf (nfp, "%s: %d\n", NONULL (MhReplied), n); - safe_fclose (&nfp); + m_fclose(&nfp); unlink (sequences); if (safe_rename (tmpfname, sequences) != 0) @@ -548,7 +535,7 @@ static HEADER *maildir_parse_message (int magic, const char *fname, h->env = mutt_read_rfc822_header (f, h, 0, 0); fstat (fileno (f), &st); - fclose (f); + m_fclose(&f); if (!h->received) h->received = h->date_sent; @@ -743,7 +730,7 @@ static void maildir_delayed_parsing (CONTEXT * ctx, struct maildir *md) int count; #ifdef USE_HCACHE - void *hc = NULL; + hcache_t *hc = NULL; void *data; struct timeval *when = NULL; struct stat lastchanged; @@ -766,19 +753,11 @@ static void maildir_delayed_parsing (CONTEXT * ctx, struct maildir *md) snprintf (fn, sizeof (fn), "%s/%s", ctx->path, p->h->path); #ifdef USE_HCACHE - if (option (OPTHCACHEVERIFY)) { - ret = stat (fn, &lastchanged); - } - else { - lastchanged.st_mtime = 0; - ret = 0; - } - - if (data != NULL && !ret && lastchanged.st_mtime <= when->tv_sec) { - p->h = mutt_hcache_restore ((unsigned char *) data, &p->h); + ret = stat(fn, &lastchanged); + if (data && !ret && lastchanged.st_mtime <= when->tv_sec) { + p->h = mutt_hcache_restore(data, &p->h); maildir_parse_flags (p->h, fn); - } - else + } else #endif if (maildir_parse_message (ctx->magic, fn, p->h->old, p->h)) { p->header_parsed = 1; @@ -786,15 +765,15 @@ static void maildir_delayed_parsing (CONTEXT * ctx, struct maildir *md) #ifdef USE_HCACHE mutt_hcache_store (hc, p->h->path + 3, p->h, 0, &maildir_hcache_keylen); #endif - } - else + } else { header_delete(&p->h); + } #ifdef USE_HCACHE p_delete(&data); #endif } #ifdef USE_HCACHE - mutt_hcache_close (hc); + mutt_hcache_close (&hc); #endif } @@ -932,7 +911,7 @@ static int maildir_open_new_message (MESSAGE * msg, CONTEXT * dest, HEADER * hdr for (;;) { snprintf (path, _POSIX_PATH_MAX, "%s/tmp/%s.%ld.%u_%d.%s%s", dest->path, subdir, (long) time (NULL), - (unsigned int) getpid (), Counter++, NONULL (Hostname), suffix); + (unsigned int) getpid (), Counter++, NONULL (MCore.shorthost), suffix); umask (Umask); if ((fd = open (path, O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1) { @@ -988,7 +967,7 @@ static int maildir_commit_message (MESSAGE * msg, CONTEXT * ctx, HEADER * hdr) char full[_POSIX_PATH_MAX]; char *s; - if (safe_fclose (&msg->fp) != 0) + if (m_fclose(&msg->fp) != 0) return -1; /* extract the subdir */ @@ -1005,7 +984,7 @@ static int maildir_commit_message (MESSAGE * msg, CONTEXT * ctx, HEADER * hdr) for (;;) { snprintf (path, _POSIX_PATH_MAX, "%s/%ld.%u_%d.%s%s", subdir, (long) time (NULL), (unsigned int) getpid (), Counter++, - NONULL (Hostname), suffix); + NONULL (MCore.shorthost), suffix); snprintf (full, _POSIX_PATH_MAX, "%s/%s", ctx->path, path); if (safe_rename (msg->path, full) == 0) { @@ -1056,7 +1035,7 @@ static int _mh_commit_message (MESSAGE * msg, CONTEXT * ctx, HEADER * hdr, char path[_POSIX_PATH_MAX]; char tmp[16]; - if (safe_fclose (&msg->fp) != 0) + if (m_fclose(&msg->fp) != 0) return -1; if ((dirp = opendir (ctx->path)) == NULL) { @@ -1444,7 +1423,7 @@ static int maildir_check_mailbox (CONTEXT * ctx, int *index_hint, int unused __a struct maildir *md; /* list of messages in the mailbox */ struct maildir **last, *p; int i; - HASH *fnames; /* hash table for quickly looking up the base filename + hash_t *fnames; /* hash table for quickly looking up the base filename for a maildir message */ if (!option (OPTCHECKNEW)) @@ -1485,12 +1464,12 @@ static int maildir_check_mailbox (CONTEXT * ctx, int *index_hint, int unused __a * of each message we scanned. This is used in the loop over the * existing messages below to do some correlation. */ - fnames = hash_create (1031); + fnames = hash_new (1031, 0); for (p = md; p; p = p->next) { maildir_canon_filename (buf, p->h->path, sizeof (buf)); p->canon_fname = m_strdup(buf); - hash_insert (fnames, p->canon_fname, p, 0); + hash_insert (fnames, p->canon_fname, p); } /* check for modifications and adjust flags */ @@ -1525,8 +1504,8 @@ static int maildir_check_mailbox (CONTEXT * ctx, int *index_hint, int unused __a * Check to see if we have enough information to know if the * message has disappeared out from underneath us. */ - else if (((changed & 1) && (!strncmp (ctx->hdrs[i]->path, "new/", 4))) || - ((changed & 2) && (!strncmp (ctx->hdrs[i]->path, "cur/", 4)))) { + else if (((changed & 1) && (!m_strncmp (ctx->hdrs[i]->path, "new/", 4))) || + ((changed & 2) && (!m_strncmp (ctx->hdrs[i]->path, "cur/", 4)))) { /* This message disappeared, so we need to simulate a "reopen" * event. We know it disappeared because we just scanned the * subdirectory it used to reside in. @@ -1543,7 +1522,7 @@ static int maildir_check_mailbox (CONTEXT * ctx, int *index_hint, int unused __a } /* destroy the file name hash */ - hash_destroy (&fnames, NULL); + hash_delete (&fnames, NULL); /* If we didn't just get new mail, update the tables. */ if (occult) @@ -1577,7 +1556,7 @@ static int mh_check_mailbox (CONTEXT * ctx, int *index_hint, int unused __attrib struct maildir *md, *p; struct maildir **last = NULL; struct mh_sequences mhs; - HASH *fnames; + hash_t *fnames; int i; if (!option (OPTCHECKNEW)) @@ -1594,7 +1573,7 @@ static int mh_check_mailbox (CONTEXT * ctx, int *index_hint, int unused __attrib FILE *fp = NULL; if (mh_mkstemp (ctx, &fp, &tmp) == 0) { - safe_fclose (&fp); + m_fclose(&fp); if (safe_rename (tmp, buf) == -1) unlink (tmp); p_delete(&tmp); @@ -1623,10 +1602,10 @@ static int mh_check_mailbox (CONTEXT * ctx, int *index_hint, int unused __attrib mhs_free_sequences (&mhs); /* check for modifications and adjust flags */ - fnames = hash_create (1031); + fnames = hash_new (1031, 0); for (p = md; p; p = p->next) - hash_insert (fnames, p->h->path, p, 0); + hash_insert (fnames, p->h->path, p); for (i = 0; i < ctx->msgcount; i++) { ctx->hdrs[i]->active = 0; @@ -1646,7 +1625,7 @@ static int mh_check_mailbox (CONTEXT * ctx, int *index_hint, int unused __attrib /* destroy the file name hash */ - hash_destroy (&fnames, NULL); + hash_delete (&fnames, NULL); /* If we didn't just get new mail, update the tables. */ if (occult) @@ -1693,7 +1672,7 @@ static FILE *_maildir_open_find_message (const char *folder, const char *unique, if (!m_strcmp(tunique, unique)) { snprintf (fname, sizeof (fname), "%s/%s/%s", folder, subfolder, de->d_name); - fp = fopen (fname, "r"); /* __FOPEN_CHECKED__ */ + fp = fopen(fname, "r"); oe = errno; break; }