diff options
Diffstat (limited to 'mailnews/mime/src/mimehdrs.h')
-rw-r--r-- | mailnews/mime/src/mimehdrs.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/mailnews/mime/src/mimehdrs.h b/mailnews/mime/src/mimehdrs.h new file mode 100644 index 000000000..e854633af --- /dev/null +++ b/mailnews/mime/src/mimehdrs.h @@ -0,0 +1,88 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef _MIMEHDRS_H_ +#define _MIMEHDRS_H_ + +#include "modlmime.h" + +/* This file defines the interface to message-header parsing and formatting + code, including conversion to HTML. */ + +/* Other structs defined later in this file. + */ + +/* Creation and destruction. + */ +extern MimeHeaders *MimeHeaders_new (void); +//extern void MimeHeaders_free (MimeHeaders *); +//extern MimeHeaders *MimeHeaders_copy (MimeHeaders *); + + +/* Feed this method the raw data from which you would like a header + block to be parsed, one line at a time. Feed it a blank line when + you're done. Returns negative on allocation-related failure. + */ +extern int MimeHeaders_parse_line (const char *buffer, int32_t size, + MimeHeaders *hdrs); + + +/* Converts a MimeHeaders object into HTML, by writing to the provided + output function. + */ +extern int MimeHeaders_write_headers_html (MimeHeaders *hdrs, + MimeDisplayOptions *opt, + bool attachment); + +/* + * Writes all headers to the mime emitter. + */ +extern int +MimeHeaders_write_all_headers (MimeHeaders *, MimeDisplayOptions *, bool); + +/* Writes the headers as text/plain. + This writes out a blank line after the headers, unless + dont_write_content_type is true, in which case the header-block + is not closed off, and none of the Content- headers are written. + */ +extern int MimeHeaders_write_raw_headers (MimeHeaders *hdrs, + MimeDisplayOptions *opt, + bool dont_write_content_type); + + +/* Some crypto-related HTML-generated utility routines. + * XXX This may not be needed. XXX + */ +extern char *MimeHeaders_open_crypto_stamp(void); +extern char *MimeHeaders_finish_open_crypto_stamp(void); +extern char *MimeHeaders_close_crypto_stamp(void); +extern char *MimeHeaders_make_crypto_stamp(bool encrypted_p, + + bool signed_p, + + bool good_p, + + bool unverified_p, + + bool close_parent_stamp_p, + + const char *stamp_url); + +/* Does all the heuristic silliness to find the filename in the given headers. + */ +extern char *MimeHeaders_get_name(MimeHeaders *hdrs, MimeDisplayOptions *opt); + +extern char *mime_decode_filename(const char *name, const char* charset, + MimeDisplayOptions *opt); + +extern "C" char * MIME_StripContinuations(char *original); + +/** + * Convert this value to a unicode string, based on the charset. + */ +extern void MimeHeaders_convert_header_value(MimeDisplayOptions *opt, + nsCString &value, + bool convert_charset_only); +#endif /* _MIMEHDRS_H_ */ |