move rfc822 related types into lib-mime/mime-types.h out of mutt.h.
authorPierre Habouzit <madcoder@debian.org>
Sun, 5 Nov 2006 15:16:47 +0000 (16:16 +0100)
committerPierre Habouzit <madcoder@debian.org>
Sun, 5 Nov 2006 15:16:47 +0000 (16:16 +0100)
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
lib-mime/Makefile.am
lib-mime/mime-types.h [new file with mode: 0644]
lib-mime/mime.h
lib-mime/rfc2047.c
lib-mime/rfc822parse.c
mutt.h

index 0e9fa5a..b06f4f7 100644 (file)
@@ -1,7 +1,8 @@
 noinst_LIBRARIES = libmime.a
 
 noinst_LIBRARIES = libmime.a
 
-libmime_a_SOURCES = mime.h mime.c rfc822address.c rfc822parse.c rfc2047.c rfc2231.c
+libmime_a_SOURCES = mime.h mime-types.h \
+                   mime.c rfc822address.c rfc822parse.c rfc2047.c rfc2231.c
 
 
-noinst_HEADERS    = mime.h
+noinst_HEADERS    = mime.h mime-types.h
 
 -include ../cflags.mk
 
 -include ../cflags.mk
diff --git a/lib-mime/mime-types.h b/lib-mime/mime-types.h
new file mode 100644 (file)
index 0000000..3744cbc
--- /dev/null
@@ -0,0 +1,289 @@
+/*
+ *  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., 51 Franklin Street, Fifth Floor, Boston,
+ *  MA 02110-1301, USA.
+ *
+ *  Copyright © 2006 Pierre Habouzit
+ */
+
+/*
+ * Copyright notice from original mutt:
+ * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>
+ * Copyright (C) 1999-2000 Thomas Roessler <roessler@does-not-exist.org>
+ *
+ * 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 MUTT_LIB_MIME_MIME_TYPES_H
+#define MUTT_LIB_MIME_MIME_TYPES_H
+
+#if HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <lib-lib/mem.h>
+#include <lib-lib/buffer.h>
+#include <lib-lib/list.h>
+
+/* Content-Type */
+enum {
+    TYPEOTHER,
+    TYPEAUDIO,
+    TYPEAPPLICATION,
+    TYPEIMAGE,
+    TYPEMESSAGE,
+    TYPEMODEL,
+    TYPEMULTIPART,
+    TYPETEXT,
+    TYPEVIDEO,
+    TYPEANY
+};
+
+/* Content-Transfer-Encoding */
+enum {
+    ENCOTHER,
+    ENC7BIT,
+    ENC8BIT,
+    ENCQUOTEDPRINTABLE,
+    ENCBASE64,
+    ENCBINARY,
+    ENCUUENCODED
+};
+
+/* Content-Disposition values */
+enum {
+    DISPINLINE,
+    DISPATTACH,
+    DISPFORMDATA
+};
+
+typedef struct parameter {
+    char *attribute;
+    char *value;
+    struct parameter *next;
+} PARAMETER;
+
+typedef struct address_t {
+    char *personal;               /* real name of address */
+    char *mailbox;                /* mailbox and host address */
+    int group;                    /* group mailbox? */
+    struct address_t *next;
+} address_t;
+
+typedef struct envelope_t {
+    address_t *return_path;
+    address_t *from;
+    address_t *to;
+    address_t *cc;
+    address_t *bcc;
+    address_t *sender;
+    address_t *reply_to;
+    address_t *mail_followup_to;
+    char *list_post;              /* this stores a mailto URL, or nothing */
+    char *subject;
+    char *real_subj;              /* offset of the real subject */
+    char *message_id;
+    char *supersedes;
+    char *date;
+    char *x_label;
+    char *organization;
+#ifdef USE_NNTP
+    char *newsgroups;
+    char *xref;
+    char *followup_to;
+    char *x_comment_to;
+#endif
+    BUFFER *spam;
+    LIST *references;             /* message references (in reverse order) */
+    LIST *in_reply_to;            /* in-reply-to header content */
+    LIST *userhdrs;               /* user defined headers */
+    unsigned int irt_changed:1;   /* In-Reply-To changed to link/break threads */
+    unsigned int refs_changed:1;  /* References changed to break thread */
+} ENVELOPE;
+
+/* Information that helps in determing the Content-* of an attachment */
+typedef struct content {
+    long hibin;                   /* 8-bit characters */
+    long lobin;                   /* unprintable 7-bit chars (eg., control chars) */
+    long crlf;                    /* '\r' and '\n' characters */
+    long ascii;                   /* number of ascii chars */
+    long linemax;                 /* length of the longest line in the file */
+    unsigned int space:1;         /* whitespace at the end of lines? */
+    unsigned int binary:1;        /* long lines, or CR not in CRLF pair */
+    unsigned int from:1;          /* has a line beginning with "From "? */
+    unsigned int dot:1;           /* has a line consisting of a single dot? */
+    unsigned int cr:1;            /* has CR, even when in a CRLF pair */
+} CONTENT;
+
+typedef struct body {
+    char *xtype;                  /* content-type if x-unknown */
+    char *subtype;                /* content-type subtype */
+    PARAMETER *parameter;         /* parameters of the content-type */
+    char *description;            /* content-description */
+    char *form_name;              /* Content-Disposition form-data name param */
+    off_t hdr_offset;             /* offset in stream where the headers begin.
+                                   * this info is used when invoking metamail,
+                                   * where we need to send the headers of the
+                                   * attachment
+                                   */
+    off_t offset;                 /* offset where the actual data begins */
+    off_t length;                 /* length (in bytes) of attachment */
+    char *filename;               /* when sending a message, this is the file
+                                   * to which this structure refers
+                                   */
+    char *d_filename;             /* filename to be used for the 
+                                   * content-disposition header.
+                                   * If NULL, filename is used 
+                                   * instead.
+                                   */
+    char *file_charset;           /* charset of attached file */
+    CONTENT *content;             /* structure used to store detailed info about
+                                   * the content of the attachment.  this is used
+                                   * to determine what content-transfer-encoding
+                                   * is required when sending mail.
+                                   */
+    struct body *next;            /* next attachment in the list */
+    struct body *parts;           /* parts of a multipart or message/rfc822 */
+    struct header *hdr;           /* header information for message/rfc822 */
+
+    struct attachptr *aptr;       /* Menu information, used in recvattach.c */
+
+    signed short attach_count;
+
+    time_t stamp;                 /* time stamp of last
+                                   * encoding update.
+                                   */
+
+    unsigned int type:4;          /* content-type primary type */
+    unsigned int encoding:3;      /* content-transfer-encoding */
+    unsigned int disposition:2;   /* content-disposition */
+    unsigned int use_disp:1;      /* Content-Disposition uses filename= ? */
+    unsigned int unlink:1;        /* flag to indicate the the file named by
+                                   * "filename" should be unlink()ed before
+                                   * free()ing this structure
+                                   */
+    unsigned int tagged:1;
+    unsigned int deleted:1;       /* attachment marked for deletion */
+
+    unsigned int noconv:1;        /* don't do character set conversion */
+    unsigned int force_charset:1; /* send mode: don't adjust the character set
+                                     when in send-mode. */
+    unsigned int is_signed_data:1; /* A lot of MUAs don't indicate S/MIME
+                                      signed-data correctly, e.g. they use
+                                      foo.p7m even for the name of signed
+                                      data.  This flag is used to keep track
+                                      of the actual message type.  It gets set
+                                      during the verification (which is done
+                                      if the encryption try failed) and check
+                                      by the function to figure the type of
+                                      the message. */
+
+    unsigned int goodsig:1;       /* good cryptographic signature */
+    unsigned int warnsig:1;       /* maybe good signature */
+    unsigned int badsig:1;        /* bad cryptographic signature (needed to check encrypted s/mime-signatures) */
+
+    unsigned int collapsed:1;     /* used by recvattach */
+    unsigned int attach_qualifies:1;
+
+} BODY;
+
+typedef struct header {
+    unsigned int security:11;     /* bit 0-6: flags, bit 7,8: application.
+see: crypt.h pgplib.h, smime.h */
+
+    unsigned int mime:1;          /* has a MIME-Version header? */
+    unsigned int flagged:1;       /* marked important? */
+    unsigned int tagged:1;
+    unsigned int appended:1;      /* has been saved */
+    unsigned int purged:1;        /* bypassing the trash folder */
+    unsigned int deleted:1;
+    unsigned int changed:1;
+    unsigned int attach_del:1;    /* has an attachment marked for deletion */
+    unsigned int old:1;
+    unsigned int read:1;
+    unsigned int expired:1;       /* already expired? */
+    unsigned int superseded:1;    /* got superseded? */
+    unsigned int replied:1;
+    unsigned int subject_changed:1;       /* used for threading */
+    unsigned int threaded:1;      /* used for threading */
+    unsigned int display_subject:1;       /* used for threading */
+    unsigned int recip_valid:1;   /* is_recipient is valid */
+    unsigned int active:1;        /* message is not to be removed */
+    unsigned int trash:1;         /* message is marked as trashed on disk.
+                                   * This flag is used by the maildir_trash
+                                   * option.
+                                   */
+
+    /* timezone of the sender of this message */
+    unsigned int zhours:5;
+    unsigned int zminutes:6;
+    unsigned int zoccident:1;
+
+    /* bits used for caching when searching */
+    unsigned int searched:1;
+    unsigned int matched:1;
+
+    /* tells whether the attach count is valid */
+    unsigned int attach_valid:1;
+
+    /* the following are used to support collapsing threads  */
+    unsigned int collapsed:1;     /* is this message part of a collapsed thread? */
+    unsigned int limited:1;       /* is this message in a limited view?  */
+    size_t num_hidden;            /* number of hidden messages in this view */
+
+    short recipient;              /* user_is_recipient()'s return value, cached */
+
+    int pair;                     /* color-pair to use when displaying in the index */
+
+    time_t date_sent;             /* time when the message was sent (UTC) */
+    time_t received;              /* time when the message was placed in the mailbox */
+    off_t offset;                 /* where in the stream does this message begin? */
+    int lines;                    /* how many lines in the body of this message? */
+    int index;                    /* the absolute (unsorted) message number */
+    int msgno;                    /* number displayed to the user */
+    int virtual;                  /* virtual message number */
+    int score;
+    ENVELOPE *env;                /* envelope information */
+    BODY *content;                /* list of MIME parts */
+    char *path;
+#ifdef USE_NNTP
+    int article_num;
+#endif
+
+    char *tree;                   /* character string to print thread tree */
+    struct thread *thread;
+
+    short attach_total;
+
+#ifdef MIXMASTER
+    LIST *chain;
+#endif
+
+    int refno;                    /* message number on server */
+    void *data;                   /* driver-specific data */
+
+    char *maildir_flags;          /* unknown maildir flags */
+} HEADER;
+
+DO_INIT(address_t, address);
+void address_wipe(address_t *);
+
+DO_NEW(address_t, address);
+DO_DELETE(address_t, address);
+DO_SLIST(address_t, address);
+
+
+#endif /* MUTT_LIB_MIME_MIME_TYPES_H */
index 4f2d62c..498473c 100644 (file)
 
 #include <stdlib.h>
 
 
 #include <stdlib.h>
 
-#include <lib-lib/mem.h>
-#include <lib-lib/buffer.h>
-#include <lib-lib/list.h>
-
-/* Content-Type */
-enum {
-    TYPEOTHER,
-    TYPEAUDIO,
-    TYPEAPPLICATION,
-    TYPEIMAGE,
-    TYPEMESSAGE,
-    TYPEMODEL,
-    TYPEMULTIPART,
-    TYPETEXT,
-    TYPEVIDEO,
-    TYPEANY
-};
-
-/* Content-Transfer-Encoding */
-enum {
-    ENCOTHER,
-    ENC7BIT,
-    ENC8BIT,
-    ENCQUOTEDPRINTABLE,
-    ENCBASE64,
-    ENCBINARY,
-    ENCUUENCODED
-};
-
-/* Content-Disposition values */
-enum {
-    DISPINLINE,
-    DISPATTACH,
-    DISPFORMDATA
-};
-
-typedef struct parameter {
-    char *attribute;
-    char *value;
-    struct parameter *next;
-} PARAMETER;
-
-typedef struct address_t {
-    char *personal;               /* real name of address */
-    char *mailbox;                /* mailbox and host address */
-    int group;                    /* group mailbox? */
-    struct address_t *next;
-} address_t;
-
-typedef struct envelope_t {
-    address_t *return_path;
-    address_t *from;
-    address_t *to;
-    address_t *cc;
-    address_t *bcc;
-    address_t *sender;
-    address_t *reply_to;
-    address_t *mail_followup_to;
-    char *list_post;              /* this stores a mailto URL, or nothing */
-    char *subject;
-    char *real_subj;              /* offset of the real subject */
-    char *message_id;
-    char *supersedes;
-    char *date;
-    char *x_label;
-    char *organization;
-#ifdef USE_NNTP
-    char *newsgroups;
-    char *xref;
-    char *followup_to;
-    char *x_comment_to;
-#endif
-    BUFFER *spam;
-    LIST *references;             /* message references (in reverse order) */
-    LIST *in_reply_to;            /* in-reply-to header content */
-    LIST *userhdrs;               /* user defined headers */
-    unsigned int irt_changed:1;   /* In-Reply-To changed to link/break threads */
-    unsigned int refs_changed:1;  /* References changed to break thread */
-} ENVELOPE;
-
-
-DO_INIT(address_t, address);
-void address_wipe(address_t *);
-
-DO_NEW(address_t, address);
-DO_DELETE(address_t, address);
-DO_SLIST(address_t, address);
-
+#include "mime-types.h"
 
 extern const char MimeSpecials[];
 extern const char *BodyTypes[];
 
 extern const char MimeSpecials[];
 extern const char *BodyTypes[];
index 26c68ce..3bd353c 100644 (file)
@@ -33,7 +33,6 @@
 
 #include <lib-mime/mime.h>
 
 
 #include <lib-mime/mime.h>
 
-#include "mutt.h"
 #include "charset.h"
 #include "thread.h"
 
 #include "charset.h"
 #include "thread.h"
 
index 2c8f4ad..5078f19 100644 (file)
  * please see the file GPL in the top level source directory.
  */
 
  * please see the file GPL in the top level source directory.
  */
 
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <sys/stat.h>
-#include <stdlib.h>
+#include <stdio.h>
 
 #include <lib-lib/mem.h>
 #include <lib-lib/str.h>
 
 #include <lib-lib/mem.h>
 #include <lib-lib/str.h>
@@ -42,7 +37,6 @@
 
 #include <lib-crypt/crypt.h>
 
 
 #include <lib-crypt/crypt.h>
 
-#include "mutt.h"
 #include "enter.h"
 #include "recvattach.h"
 #include "mx.h"
 #include "enter.h"
 #include "recvattach.h"
 #include "mx.h"
diff --git a/mutt.h b/mutt.h
index 27b1239..d418c38 100644 (file)
--- a/mutt.h
+++ b/mutt.h
@@ -524,174 +524,6 @@ int mutt_matches_ignore (const char *, LIST *);
 
 void mutt_init (int, LIST *);
 
 
 void mutt_init (int, LIST *);
 
-/* Information that helps in determing the Content-* of an attachment */
-typedef struct content {
-  long hibin;                   /* 8-bit characters */
-  long lobin;                   /* unprintable 7-bit chars (eg., control chars) */
-  long crlf;                    /* '\r' and '\n' characters */
-  long ascii;                   /* number of ascii chars */
-  long linemax;                 /* length of the longest line in the file */
-  unsigned int space:1;         /* whitespace at the end of lines? */
-  unsigned int binary:1;        /* long lines, or CR not in CRLF pair */
-  unsigned int from:1;          /* has a line beginning with "From "? */
-  unsigned int dot:1;           /* has a line consisting of a single dot? */
-  unsigned int cr:1;            /* has CR, even when in a CRLF pair */
-} CONTENT;
-
-typedef struct body {
-  char *xtype;                  /* content-type if x-unknown */
-  char *subtype;                /* content-type subtype */
-  PARAMETER *parameter;         /* parameters of the content-type */
-  char *description;            /* content-description */
-  char *form_name;              /* Content-Disposition form-data name param */
-  off_t hdr_offset;             /* offset in stream where the headers begin.
-                                 * this info is used when invoking metamail,
-                                 * where we need to send the headers of the
-                                 * attachment
-                                 */
-  off_t offset;                 /* offset where the actual data begins */
-  off_t length;                 /* length (in bytes) of attachment */
-  char *filename;               /* when sending a message, this is the file
-                                 * to which this structure refers
-                                 */
-  char *d_filename;             /* filename to be used for the 
-                                 * content-disposition header.
-                                 * If NULL, filename is used 
-                                 * instead.
-                                 */
-  char *file_charset;           /* charset of attached file */
-  CONTENT *content;             /* structure used to store detailed info about
-                                 * the content of the attachment.  this is used
-                                 * to determine what content-transfer-encoding
-                                 * is required when sending mail.
-                                 */
-  struct body *next;            /* next attachment in the list */
-  struct body *parts;           /* parts of a multipart or message/rfc822 */
-  struct header *hdr;           /* header information for message/rfc822 */
-
-  struct attachptr *aptr;       /* Menu information, used in recvattach.c */
-
-  signed short attach_count;
-
-  time_t stamp;                 /* time stamp of last
-                                 * encoding update.
-                                 */
-
-  unsigned int type:4;          /* content-type primary type */
-  unsigned int encoding:3;      /* content-transfer-encoding */
-  unsigned int disposition:2;   /* content-disposition */
-  unsigned int use_disp:1;      /* Content-Disposition uses filename= ? */
-  unsigned int unlink:1;        /* flag to indicate the the file named by
-                                 * "filename" should be unlink()ed before
-                                 * free()ing this structure
-                                 */
-  unsigned int tagged:1;
-  unsigned int deleted:1;       /* attachment marked for deletion */
-
-  unsigned int noconv:1;        /* don't do character set conversion */
-  unsigned int force_charset:1;
-  /* send mode: don't adjust the character
-   * set when in send-mode.
-   */
-  unsigned int is_signed_data:1;        /* A lot of MUAs don't indicate
-                                           S/MIME signed-data correctly,
-                                           e.g. they use foo.p7m even for
-                                           the name of signed data.  This
-                                           flag is used to keep track of
-                                           the actual message type.  It
-                                           gets set during the verification
-                                           (which is done if the encryption
-                                           try failed) and check by the
-                                           function to figure the type of
-                                           the message. */
-
-  unsigned int goodsig:1;       /* good cryptographic signature */
-  unsigned int warnsig:1;       /* maybe good signature */
-  unsigned int badsig:1;        /* bad cryptographic signature (needed to check encrypted s/mime-signatures) */
-
-  unsigned int collapsed:1;     /* used by recvattach */
-  unsigned int attach_qualifies:1;
-
-} BODY;
-
-typedef struct header {
-  unsigned int security:11;     /* bit 0-6: flags, bit 7,8: application.
-                                   see: crypt.h pgplib.h, smime.h */
-
-  unsigned int mime:1;          /* has a MIME-Version header? */
-  unsigned int flagged:1;       /* marked important? */
-  unsigned int tagged:1;
-  unsigned int appended:1;      /* has been saved */
-  unsigned int purged:1;        /* bypassing the trash folder */
-  unsigned int deleted:1;
-  unsigned int changed:1;
-  unsigned int attach_del:1;    /* has an attachment marked for deletion */
-  unsigned int old:1;
-  unsigned int read:1;
-  unsigned int expired:1;       /* already expired? */
-  unsigned int superseded:1;    /* got superseded? */
-  unsigned int replied:1;
-  unsigned int subject_changed:1;       /* used for threading */
-  unsigned int threaded:1;      /* used for threading */
-  unsigned int display_subject:1;       /* used for threading */
-  unsigned int recip_valid:1;   /* is_recipient is valid */
-  unsigned int active:1;        /* message is not to be removed */
-  unsigned int trash:1;         /* message is marked as trashed on disk.
-                                 * This flag is used by the maildir_trash
-                                 * option.
-                                 */
-
-  /* timezone of the sender of this message */
-  unsigned int zhours:5;
-  unsigned int zminutes:6;
-  unsigned int zoccident:1;
-
-  /* bits used for caching when searching */
-  unsigned int searched:1;
-  unsigned int matched:1;
-
-  /* tells whether the attach count is valid */
-  unsigned int attach_valid:1;
-
-  /* the following are used to support collapsing threads  */
-  unsigned int collapsed:1;     /* is this message part of a collapsed thread? */
-  unsigned int limited:1;       /* is this message in a limited view?  */
-  size_t num_hidden;            /* number of hidden messages in this view */
-
-  short recipient;              /* user_is_recipient()'s return value, cached */
-
-  int pair;                     /* color-pair to use when displaying in the index */
-
-  time_t date_sent;             /* time when the message was sent (UTC) */
-  time_t received;              /* time when the message was placed in the mailbox */
-  off_t offset;                 /* where in the stream does this message begin? */
-  int lines;                    /* how many lines in the body of this message? */
-  int index;                    /* the absolute (unsorted) message number */
-  int msgno;                    /* number displayed to the user */
-  int virtual;                  /* virtual message number */
-  int score;
-  ENVELOPE *env;                /* envelope information */
-  BODY *content;                /* list of MIME parts */
-  char *path;
-#ifdef USE_NNTP
-  int article_num;
-#endif
-
-  char *tree;                   /* character string to print thread tree */
-  struct thread *thread;
-
-  short attach_total;
-
-#ifdef MIXMASTER
-  LIST *chain;
-#endif
-
-  int refno;                    /* message number on server */
-  void *data;                   /* driver-specific data */
-
-  char *maildir_flags;          /* unknown maildir flags */
-} HEADER;
-
 typedef struct thread {
   unsigned int fake_thread:1;
   unsigned int duplicate_thread:1;
 typedef struct thread {
   unsigned int fake_thread:1;
   unsigned int duplicate_thread:1;