turn charset into a lua package as well.
[apps/madmutt.git] / lib-mx / mx.c
index bd03117..b6fcfc1 100644 (file)
 
 #include <utime.h>
 
+#include <lib-lua/lib-lua.h>
 #include <lib-sys/unix.h>
 #include <lib-mime/mime.h>
 #include <lib-ui/sidebar.h>
+#include <lib-crypt/crypt.h>
 
 #include "mutt.h"
+#include "pattern.h"
 #include "buffy.h"
 #include "mx.h"
 #include "mbox.h"
@@ -35,8 +38,6 @@
 #include <nntp/nntp.h>
 #endif
 
-#include <lib-crypt/crypt.h>
-
 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);
 }
@@ -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,8 +566,7 @@ void mx_fastclose_mailbox (CONTEXT * ctx)
 
   p_delete(&ctx->path);
   p_delete(&ctx->pattern);
-  if (ctx->limit_pattern)
-    mutt_pattern_free (&ctx->limit_pattern);
+  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));
     }
   }
@@ -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);