workaround a stupid issue in how decoding is performed in mutt *sigh*
[apps/madmutt.git] / pattern.c
index ea72544..3ba5e62 100644 (file)
--- a/pattern.c
+++ b/pattern.c
 #include <lib-lib/lib-lib.h>
 
 #include <lib-mime/mime.h>
-#include <lib-crypt/crypt.h>
-#include <lib-ui/enter.h>
-#include <lib-ui/curses.h>
+#include <lib-ui/lib-ui.h>
 #include <lib-mx/mx.h>
 #include <imap/imap.h>
 
 #include "pattern.h"
 #include "alias.h"
+#include "crypt.h"
 #include "handler.h"
 #include "keymap.h"
 #include "copy.h"
@@ -70,9 +69,6 @@ static struct pattern_flags {
   {'u', M_SUBSCRIBED_LIST, 0, NULL},
   {'v', M_COLLAPSED, 0, NULL},
   {'V', M_CRYPT_VERIFIED, 0, NULL},
-#ifdef USE_NNTP
-  {'w', M_NEWSGROUPS, 0, eat_regexp},
-#endif
   {'x', M_REFERENCE, 0, eat_regexp},
   {'X', M_MIMEATTACH, 0, eat_range},
   {'y', M_XLABEL, 0, eat_regexp},
@@ -141,7 +137,7 @@ msg_search (CONTEXT *ctx, pattern_t* pat, int msgno)
       p_clear(&s, 1);
       s.fpin = msg->fp;
       s.flags = M_CHARCONV;
-      s.fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+      s.fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(mod_core.tmpdir), NULL);
       if (!s.fpout) {
         mutt_error(_("Could not create temporary file"));
         return (0);
@@ -152,17 +148,6 @@ msg_search (CONTEXT *ctx, pattern_t* pat, int msgno)
 
       if (pat->op != M_HEADER) {
         mutt_parse_mime_message (ctx, h);
-
-        if ((h->security & ENCRYPT) && !crypt_valid_passphrase (h->security))
-        {
-          mx_close_message (&msg);
-          if (fp) {
-            m_fclose(&fp);
-            unlink (tempfile);
-          }
-          return (0);
-        }
-
         fseeko (msg->fp, h->offset, 0);
         mutt_body_handler (h->content, &s);
       }
@@ -395,8 +380,8 @@ static const char *get_offset (struct tm *tm, const char *s, int sign)
   default:
     return s;
   }
-  mutt_normalize_time (tm);
-  return (ps + 1);
+  mktime(tm);
+  return ps + 1;
 }
 
 static void adjust_date_range (struct tm *min, struct tm *max)
@@ -613,8 +598,8 @@ static int eat_date (pattern_t * pat, BUFFER * s, BUFFER * err)
   /* Since we allow two dates to be specified we'll have to adjust that. */
   adjust_date_range (&min, &max);
 
-  pat->min = mutt_mktime (&min, 1);
-  pat->max = mutt_mktime (&max, 1);
+  pat->min = mktime(&min);
+  pat->max = mktime(&max);
 
   p_delete(&buffer.data);
 
@@ -631,20 +616,16 @@ static const struct pattern_flags *lookup_tag (char tag)
   return NULL;
 }
 
-static /* const */ char *find_matching_paren ( /* const */ char *s)
+static const char *find_matching_paren (const char *s)
 {
-  int level = 1;
-
-  for (; *s; s++) {
-    if (*s == '(')
-      level++;
-    else if (*s == ')') {
-      level--;
-      if (!level)
-        break;
+    int level = 1;
+
+    for (; *s; s++) {
+        level += (*s == '(') - (*s == ')');
+        if (!level)
+            break;
     }
-  }
-  return s;
+    return s;
 }
 
 pattern_t *mutt_pattern_comp(const char *s, int flags, BUFFER *err)
@@ -1068,12 +1049,6 @@ mutt_pattern_exec (struct pattern_t *pat, pattern_exec_flag flags,
                 && valid_realname(h->env-> from->personal)
                 && h->env->from->mailbox)
            )) ^ pat->not;
-#ifdef USE_NNTP
-  case M_NEWSGROUPS:
-    return (pat->
-            not ^ (h->env->newsgroups
-                   && patmatch (pat, h->env->newsgroups) == 0));
-#endif
   }
   mutt_error (_("error: unknown op %d (report this error)."), pat->op);
   return (-1);
@@ -1129,7 +1104,7 @@ void mutt_check_simple (char *s, ssize_t len, const char *simple)
   }
 }
 
-int mutt_pattern_func (int op, char *prompt)
+int mutt_pattern_func (int op, const char *prompt)
 {
   pattern_t *pat;
   char buf[LONG_STRING] = "", *simple, error[STRING];