talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

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__ */