diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /comm/mailnews/mime/src/mimehdrs.h | |
parent | Initial commit. (diff) | |
download | thunderbird-upstream.tar.xz thunderbird-upstream.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'comm/mailnews/mime/src/mimehdrs.h')
-rw-r--r-- | comm/mailnews/mime/src/mimehdrs.h | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/comm/mailnews/mime/src/mimehdrs.h b/comm/mailnews/mime/src/mimehdrs.h new file mode 100644 index 0000000000..028092246a --- /dev/null +++ b/comm/mailnews/mime/src/mimehdrs.h @@ -0,0 +1,85 @@ +/* -*- 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_ */ |