procheader.h (2691B)
1 /* 2 * Claws Mail -- a GTK based, lightweight, and fast e-mail client 3 * Copyright (C) 1999-2023 the Claws Mail team and Hiroyuki Yamamoto 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 struct _HeaderEntry 30 { 31 gchar *name; 32 gchar *body; 33 gboolean unfold; 34 }; 35 36 struct _Header 37 { 38 gchar *name; 39 gchar *body; 40 }; 41 42 gint procheader_get_one_field (gchar **buf, 43 FILE *fp, 44 HeaderEntry hentry[]); 45 gint procheader_get_one_field_asis (gchar **buf, 46 FILE *fp); 47 48 GPtrArray *procheader_get_header_array (FILE *fp); 49 void procheader_header_array_destroy (GPtrArray *harray); 50 void procheader_header_free (Header *header); 51 52 gboolean procheader_skip_headers(FILE *fp); 53 54 void procheader_get_header_fields (FILE *fp, 55 HeaderEntry hentry[]); 56 MsgInfo *procheader_parse_file (const gchar *file, 57 MsgFlags flags, 58 gboolean full, 59 gboolean decrypted); 60 MsgInfo *procheader_parse_str (const gchar *str, 61 MsgFlags flags, 62 gboolean full, 63 gboolean decrypted); 64 MsgInfo *procheader_parse_stream (FILE *fp, 65 MsgFlags flags, 66 gboolean full, 67 gboolean decrypted); 68 69 gchar *procheader_get_fromname (const gchar *str); 70 71 gboolean procheader_date_parse_to_tm (const gchar *str, 72 struct tm *t, 73 char *zone); 74 75 time_t procheader_date_parse (gchar *dest, 76 const gchar *src, 77 gint len); 78 void procheader_date_get_localtime (gchar *dest, 79 gint len, 80 const time_t timer); 81 Header * procheader_parse_header (gchar * buf); 82 83 gboolean procheader_headername_equal (char * hdr1, char * hdr2); 84 void procheader_header_free (Header * header); 85 86 gint procheader_get_header_from_msginfo (MsgInfo *msginfo, 87 gchar **buf, 88 gchar *header); 89 90 HeaderEntry *procheader_entries_from_str(const gchar *str); 91 void procheader_entries_free (HeaderEntry *entries); 92 gboolean procheader_header_is_internal (const gchar *hdr_name); 93 #endif /* __PROCHEADER_H__ */