workaround a stupid issue in how decoding is performed in mutt *sigh*
[apps/madmutt.git] / imap / imap_private.h
index ed6832f..bebfc6a 100644 (file)
@@ -1,29 +1,20 @@
 /*
+ * Copyright notice from original mutt:
  * Copyright (C) 1996-9 Brandon Long <blong@fiction.net>
  * Copyright (C) 1999-2001 Brendan Cully <brendan@kublai.com>
- * 
- *     This program is free software; you can redistribute it and/or modify
- *     it under the terms of the GNU General Public License as published by
- *     the Free Software Foundation; either version 2 of the License, or
- *     (at your option) any later version.
- * 
- *     This program is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- * 
- *     You should have received a copy of the GNU General Public License
- *     along with this program; if not, write to the Free Software
- *     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ *
+ * This file is part of mutt-ng, see http://www.muttng.org/.
+ * It's licensed under the GNU General Public License,
+ * please see the file GPL in the top level source directory.
  */
 
 #ifndef _IMAP_PRIVATE_H
 #define _IMAP_PRIVATE_H 1
 
-#include <inttypes.h>
+#include <lib-sys/mutt_socket.h>
+#include <lib-ui/lib-ui.h>
 
 #include "imap.h"
-#include "mutt_socket.h"
 
 /* -- symbols -- */
 #define IMAP_PORT 143
@@ -82,20 +73,7 @@ enum {
   IMAP_NS_SHARED
 };
 
-/* ACL Rights */
-enum {
-  IMAP_ACL_LOOKUP = 0,
-  IMAP_ACL_READ,
-  IMAP_ACL_SEEN,
-  IMAP_ACL_WRITE,
-  IMAP_ACL_INSERT,
-  IMAP_ACL_POST,
-  IMAP_ACL_CREATE,
-  IMAP_ACL_DELETE,
-  IMAP_ACL_ADMIN,
-
-  RIGHTSMAX
-};
+/* ACL Rights are moved to ../mx.h */
 
 /* Capabilities we are interested in */
 enum {
@@ -119,7 +97,7 @@ enum {
 
 /* -- data structures -- */
 typedef struct {
-  unsigned int uid;
+  int uid;
   char *path;
 } IMAP_CACHE;
 
@@ -136,10 +114,9 @@ typedef struct {
 
 /* IMAP command structure */
 typedef struct {
-  char seq[SEQLEN + 1];
-  char *buf;
-  unsigned int blen;
   int state;
+  char seq[SEQLEN + 1];
+  buffer_t buf;
 } IMAP_COMMAND;
 
 typedef struct {
@@ -147,6 +124,7 @@ typedef struct {
   CONNECTION *conn;
   unsigned char state;
   unsigned char status;
+  unsigned char isnew;
   /* let me explain capstr: SASL needs the capability string (not bits).
    * we have 3 options:
    *   1. rerun CAPABILITY inside SASL function.
@@ -160,6 +138,7 @@ typedef struct {
   unsigned int seqno;
   time_t lastread;              /* last time we read a command for the server */
   /* who knows, one day we may run multiple commands in parallel */
+
   IMAP_COMMAND cmd;
 
   /* The following data is all specific to the currently SELECTED mbox */
@@ -171,13 +150,12 @@ typedef struct {
   unsigned char rights[(RIGHTSMAX + 7) / 8];
   unsigned int newMailCount;
   IMAP_CACHE cache[IMAP_CACHE_LEN];
-  int noclose:1;
 #ifdef USE_HCACHE
-  uint64_t uid_validity;
+  long uid_validity;
 #endif
 
   /* all folder flags - system flags AND keywords */
-  LIST *flags;
+  string_list_t *flags;
 } IMAP_DATA;
 
 /* I wish that were called IMAP_CONTEXT :( */
@@ -196,10 +174,11 @@ int imap_open_connection (IMAP_DATA * idata);
 IMAP_DATA *imap_conn_find (const ACCOUNT * account, int flags);
 int imap_parse_list_response (IMAP_DATA * idata, char **name, int *noselect,
                               int *noinferiors, char *delim);
-int imap_read_literal (FILE * fp, IMAP_DATA * idata, long bytes);
+int imap_read_literal (FILE * fp, IMAP_DATA * idata, long bytes, progress_t*);
 void imap_expunge_mailbox (IMAP_DATA * idata);
 int imap_reconnect (CONTEXT * ctx);
 void imap_logout (IMAP_DATA * idata);
+int imap_sync_message (IMAP_DATA*, HEADER*, BUFFER*, int*);
 
 /* auth.c */
 int imap_authenticate (IMAP_DATA * idata);
@@ -212,7 +191,7 @@ int imap_code (const char *s);
 int imap_exec (IMAP_DATA * idata, const char *cmd, int flags);
 
 /* message.c */
-void imap_add_keywords (char *s, HEADER * keywords, LIST * mailbox_flags,
+void imap_add_keywords (char *s, HEADER * keywords, string_list_t * mailbox_flags,
                         size_t slen);
 void imap_free_header_data (void **data);
 int imap_read_headers (IMAP_DATA * idata, int msgbegin, int msgend);
@@ -224,7 +203,7 @@ void imap_error (const char *where, const char *msg);
 IMAP_DATA *imap_new_idata (void);
 void imap_free_idata (IMAP_DATA ** idata);
 char *imap_fix_path (IMAP_DATA * idata, char *mailbox, char *path,
-                     size_t plen);
+                     ssize_t plen);
 int imap_get_literal_count (const char *buf, long *bytes);
 char *imap_get_qualifier (char *buf);
 char *imap_next_word (char *s);