New hooklist to collect avatar data from headers
[claws.git] / src / procheader.h
index f6292e48c2ec967836c873f4429649b7d0440035..b8e48fc3ebc565e7fb02c0d5263428e00b63a876 100644 (file)
@@ -1,10 +1,10 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999,2000 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2012 Hiroyuki Yamamoto and the Claws Mail team
  *
  * 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
+ * the Free Software Foundation; either version 3 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
@@ -13,8 +13,8 @@
  * 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-1307, USA.
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * 
  */
 
 #ifndef __PROCHEADER_H__
 #include <stdio.h>
 #include <time.h>
 
-#include "procmsg.h"
+#include "proctypes.h"
 
-typedef struct _HeaderEntry    HeaderEntry;
-typedef struct _Header         Header;
+#define AVATAR_HEADER_UPDATE_HOOKLIST "avatar_header_update"
 
 struct _HeaderEntry
 {
@@ -43,29 +42,41 @@ struct _Header
 };
 
 gint procheader_get_one_field          (gchar          *buf,
-                                        gint            len,
+                                        size_t          len,
                                         FILE           *fp,
                                         HeaderEntry     hentry[]);
+gint procheader_get_one_field_asis     (gchar          *buf,
+                                        size_t          len,
+                                        FILE           *fp);
 gchar *procheader_get_unfolded_line    (gchar          *buf,
-                                        gint            len,
+                                        size_t          len,
                                         FILE           *fp);
 
-GSList *procheader_get_header_list_from_file   (const gchar    *file);
-GSList *procheader_get_header_list             (FILE           *fp);
-GPtrArray *procheader_get_header_array         (FILE           *fp);
 GPtrArray *procheader_get_header_array_asis    (FILE           *fp);
-void procheader_header_list_destroy            (GSList         *hlist);
 void procheader_header_array_destroy           (GPtrArray      *harray);
 void procheader_header_free                    (Header         *header);
 
 void procheader_get_header_fields      (FILE           *fp,
                                         HeaderEntry     hentry[]);
-MsgInfo *procheader_parse              (const gchar    *file,
+MsgInfo *procheader_parse_file         (const gchar    *file,
+                                        MsgFlags        flags,
+                                        gboolean        full,
+                                        gboolean        decrypted);
+MsgInfo *procheader_parse_str          (const gchar    *str,
                                         MsgFlags        flags,
-                                        gboolean        full);
+                                        gboolean        full,
+                                        gboolean        decrypted);
+MsgInfo *procheader_parse_stream       (FILE           *fp,
+                                        MsgFlags        flags,
+                                        gboolean        full,
+                                        gboolean        decrypted);
 
 gchar *procheader_get_fromname         (const gchar    *str);
 
+gboolean procheader_date_parse_to_tm   (const gchar    *str,
+                                        struct tm      *t,
+                                        char           *zone);
+
 time_t procheader_date_parse           (gchar          *dest,
                                         const gchar    *src,
                                         gint            len);
@@ -77,4 +88,11 @@ Header * procheader_parse_header        (gchar * buf);
 gboolean procheader_headername_equal    (char * hdr1, char * hdr2);
 void procheader_header_free             (Header * header);
 
+gint procheader_get_header_from_msginfo        (MsgInfo        *msginfo,
+                                        gchar          *buf,
+                                        gint           len,
+                                        gchar          *header);
+
+HeaderEntry *procheader_entries_from_str(const gchar   *str);
+void procheader_entries_free           (HeaderEntry    *entries);
 #endif /* __PROCHEADER_H__ */