1 /* 2 * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client 3 * Copyright (C) 1999-2014 Hiroyuki Yamamoto and the Claws Mail team 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 3 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 * 18 */ 19 20 #ifndef __PROCHEADER_H__ 21 #define __PROCHEADER_H__ 22 23 #include <glib.h> 24 #include <stdio.h> 25 #include <time.h> 26 27 #include "proctypes.h" 28 29 #define AVATAR_HEADER_UPDATE_HOOKLIST "avatar_header_update" 30 31 struct _HeaderEntry 32 { 33 gchar *name; 34 gchar *body; 35 gboolean unfold; 36 }; 37 38 struct _Header 39 { 40 gchar *name; 41 gchar *body; 42 }; 43 44 gint procheader_get_one_field (gchar **buf, 45 FILE *fp, 46 HeaderEntry hentry[]); 47 gint procheader_get_one_field_asis (gchar **buf, 48 FILE *fp); 49 50 GPtrArray *procheader_get_header_array_asis (FILE *fp); 51 void procheader_header_array_destroy (GPtrArray *harray); 52 void procheader_header_free (Header *header); 53 54 gboolean procheader_skip_headers(FILE *fp); 55 56 void procheader_get_header_fields (FILE *fp, 57 HeaderEntry hentry[]); 58 MsgInfo *procheader_parse_file (const gchar *file, 59 MsgFlags flags, 60 gboolean full, 61 gboolean decrypted); 62 MsgInfo *procheader_parse_str (const gchar *str, 63 MsgFlags flags, 64 gboolean full, 65 gboolean decrypted); 66 MsgInfo *procheader_parse_stream (FILE *fp, 67 MsgFlags flags, 68 gboolean full, 69 gboolean decrypted); 70 71 gchar *procheader_get_fromname (const gchar *str); 72 73 gboolean procheader_date_parse_to_tm (const gchar *str, 74 struct tm *t, 75 char *zone); 76 77 time_t procheader_date_parse (gchar *dest, 78 const gchar *src, 79 gint len); 80 void procheader_date_get_localtime (gchar *dest, 81 gint len, 82 const time_t timer); 83 Header * procheader_parse_header (gchar * buf); 84 85 gboolean procheader_headername_equal (char * hdr1, char * hdr2); 86 void procheader_header_free (Header * header); 87 88 gint procheader_get_header_from_msginfo (MsgInfo *msginfo, 89 gchar **buf, 90 gchar *header); 91 92 HeaderEntry *procheader_entries_from_str(const gchar *str); 93 void procheader_entries_free (HeaderEntry *entries); 94 gboolean procheader_header_is_internal (const gchar *hdr_name); 95 #endif /* __PROCHEADER_H__ */ 96