X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-mx%2Fmx.c;h=b58a621eed1a23af81b091eeb1bc8354a2e4fcf3;hp=3d10313c4c13dd3533954165c6b7ffe96b287450;hb=9eb790d6eb4a56416d342816e1140aabd9c12de8;hpb=8476307969a605bea67f6b702b0c1e7a52038bed diff --git a/lib-mx/mx.c b/lib-mx/mx.c index 3d10313..b58a621 100644 --- a/lib-mx/mx.c +++ b/lib-mx/mx.c @@ -12,11 +12,14 @@ #include +#include #include #include #include #include "mutt.h" +#include "crypt.h" +#include "pattern.h" #include "buffy.h" #include "mx.h" #include "mbox.h" @@ -35,8 +38,6 @@ #include #endif -#include - static mx_t const *mxfmts[] = { &mbox_mx, &mmdf_mx, @@ -60,23 +61,22 @@ static mx_t const *mxfmts[] = { static int invoke_dotlock (const char *path, int flags, int retry) { char cmd[LONG_STRING + _POSIX_PATH_MAX]; - char f[SHORT_STRING + _POSIX_PATH_MAX]; - char r[SHORT_STRING]; + char f[STRING + _POSIX_PATH_MAX]; + char r[STRING]; if (flags & DL_FL_RETRY) snprintf (r, sizeof (r), "-r %d ", retry ? MAXLOCKATTEMPT : 0); mutt_quote_filename (f, sizeof (f), path); - snprintf (cmd, sizeof (cmd), - "%s %s%s%s%s%s%s%s", - NONULL (MuttDotlock), - flags & DL_FL_TRY ? "-t " : "", - flags & DL_FL_UNLOCK ? "-u " : "", - flags & DL_FL_USEPRIV ? "-p " : "", - flags & DL_FL_FORCE ? "-f " : "", - flags & DL_FL_UNLINK ? "-d " : "", - flags & DL_FL_RETRY ? r : "", f); + snprintf(cmd, sizeof(cmd), "%s %s%s%s%s%s%s%s", + MCore.dotlock, + flags & DL_FL_TRY ? "-t " : "", + flags & DL_FL_UNLOCK ? "-u " : "", + flags & DL_FL_USEPRIV ? "-p " : "", + flags & DL_FL_FORCE ? "-f " : "", + flags & DL_FL_UNLINK ? "-d " : "", + flags & DL_FL_RETRY ? r : "", f); return mutt_system (cmd); } @@ -430,7 +430,7 @@ static int mx_open_mailbox_append (CONTEXT * ctx, int flags) mutt_perror (ctx->path); else { mutt_error (_("Couldn't lock %s\n"), ctx->path); - safe_fclose (&ctx->fp); + m_fclose(&ctx->fp); } return (-1); } @@ -552,9 +552,9 @@ void mx_fastclose_mailbox (CONTEXT * ctx) if (MX_IDX(ctx->magic-1) && mxfmts[ctx->magic-1]->mx_fastclose_mailbox) mxfmts[ctx->magic-1]->mx_fastclose_mailbox(ctx); if (ctx->subj_hash) - hash_destroy (&ctx->subj_hash, NULL); + hash_delete (&ctx->subj_hash, NULL); if (ctx->id_hash) - hash_destroy (&ctx->id_hash, NULL); + hash_delete (&ctx->id_hash, NULL); mutt_clear_threads (ctx); for (i = 0; i < ctx->msgcount; i++) header_delete(&ctx->hdrs[i]); @@ -566,9 +566,8 @@ void mx_fastclose_mailbox (CONTEXT * ctx) p_delete(&ctx->path); p_delete(&ctx->pattern); - if (ctx->limit_pattern) - mutt_pattern_free (&ctx->limit_pattern); - safe_fclose (&ctx->fp); + pattern_list_wipe(&ctx->limit_pattern); + m_fclose(&ctx->fp); p_clear(ctx, 1); } @@ -644,7 +643,7 @@ static int _mx_close_mailbox (CONTEXT * ctx, int *index_hint) int isSpool = 0; CONTEXT f; char mbox[_POSIX_PATH_MAX]; - char buf[SHORT_STRING]; + char buf[STRING]; if (!ctx) return 0; @@ -907,10 +906,10 @@ void mx_update_tables (CONTEXT * ctx, int committing) ctx->hdrs[i]->content->hdr_offset); /* remove message from the hash tables */ if (ctx->subj_hash && ctx->hdrs[i]->env->real_subj) - hash_delete (ctx->subj_hash, ctx->hdrs[i]->env->real_subj, + hash_remove (ctx->subj_hash, ctx->hdrs[i]->env->real_subj, ctx->hdrs[i], NULL); if (ctx->id_hash && ctx->hdrs[i]->env->message_id) - hash_delete (ctx->id_hash, ctx->hdrs[i]->env->message_id, + hash_remove (ctx->id_hash, ctx->hdrs[i]->env->message_id, ctx->hdrs[i], NULL); header_delete(&ctx->hdrs[i]); } @@ -960,7 +959,7 @@ static int _mx_sync_mailbox (CONTEXT * ctx, int *index_hint) } if (ctx->deleted) { - char buf[SHORT_STRING]; + char buf[STRING]; snprintf (buf, sizeof (buf), ctx->deleted == 1 ? _("Purge %d deleted message?") : @@ -1081,7 +1080,7 @@ MESSAGE *mx_open_new_message (CONTEXT * dest, HEADER * hdr, int flags) p = hdr->env->from; } - fprintf (msg->fp, "From %s %s", p ? p->mailbox : NONULL (Username), + fprintf (msg->fp, "From %s %s", p ? p->mailbox : NONULL(MCore.username), ctime (&msg->received)); } } @@ -1190,7 +1189,7 @@ int mx_close_message (MESSAGE ** msg) || (*msg)->magic == M_NNTP #endif ) { - r = safe_fclose (&(*msg)->fp); + r = m_fclose(&(*msg)->fp); } else (*msg)->fp = NULL; @@ -1270,10 +1269,10 @@ void mx_update_context (CONTEXT * ctx, int new_messages) /* add this message to the hash tables */ if (ctx->id_hash && h->env->message_id) - hash_insert (ctx->id_hash, h->env->message_id, h, 0); + hash_insert (ctx->id_hash, h->env->message_id, h); if (!ctx->counting) { if (ctx->subj_hash && h->env->real_subj) - hash_insert (ctx->subj_hash, h->env->real_subj, h, 1); + hash_insert (ctx->subj_hash, h->env->real_subj, h); if (option (OPTSCORE)) mutt_score_message (ctx, h, 0);