summaryrefslogtreecommitdiffstats
path: root/comm/mailnews/compose/src/nsMsgCompUtils.h
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mailnews/compose/src/nsMsgCompUtils.h')
-rw-r--r--comm/mailnews/compose/src/nsMsgCompUtils.h116
1 files changed, 116 insertions, 0 deletions
diff --git a/comm/mailnews/compose/src/nsMsgCompUtils.h b/comm/mailnews/compose/src/nsMsgCompUtils.h
new file mode 100644
index 0000000000..7197cde459
--- /dev/null
+++ b/comm/mailnews/compose/src/nsMsgCompUtils.h
@@ -0,0 +1,116 @@
+/* -*- Mode: C++; tab-width: 2; 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 _nsMsgCompUtils_H_
+#define _nsMsgCompUtils_H_
+
+#include "nscore.h"
+#include "mozilla/dom/Document.h"
+#include "nsMsgCompFields.h"
+#include "nsIMsgSend.h"
+#include "nsIMsgCompUtils.h"
+
+class nsIArray;
+class nsIDocument;
+class nsIPrompt;
+
+#define ANY_SERVER "anyfolder://"
+
+// these are msg hdr property names for storing the original
+// msg uri's and disposition(replied/forwarded) when queuing
+// messages to send later.
+#define ORIG_URI_PROPERTY "origURIs"
+#define QUEUED_DISPOSITION_PROPERTY "queuedDisposition"
+
+extern mozilla::LazyLogModule Compose;
+
+class nsMsgCompUtils : public nsIMsgCompUtils {
+ public:
+ NS_DECL_ISUPPORTS
+ NS_DECL_NSIMSGCOMPUTILS
+
+ nsMsgCompUtils();
+
+ private:
+ virtual ~nsMsgCompUtils();
+};
+
+already_AddRefed<nsIArray> GetEmbeddedObjects(
+ mozilla::dom::Document* aDocument);
+
+PR_BEGIN_EXTERN_C
+
+//
+// Create a file spec or file name using the name passed
+// in as a template
+//
+nsresult nsMsgCreateTempFile(const char* tFileName, nsIFile** tFile);
+char* nsMsgCreateTempFileName(const char* tFileName);
+
+//
+// Various utilities for building parts of MIME encoded
+// messages during message composition
+//
+
+nsresult mime_sanity_check_fields_recipients(const char* to, const char* cc,
+ const char* bcc,
+ const char* newsgroups);
+
+nsresult mime_sanity_check_fields(
+ const char* from, const char* reply_to, const char* to, const char* cc,
+ const char* bcc, const char* fcc, const char* newsgroups,
+ const char* followup_to, const char* /*subject*/,
+ const char* /*references*/, const char* /*organization*/,
+ const char* /*other_random_headers*/);
+
+nsresult mime_generate_headers(nsIMsgCompFields* fields,
+ nsMsgDeliverMode deliver_mode,
+ msgIWritableStructuredHeaders* headers);
+
+char* mime_make_separator(const char* prefix);
+char* mime_gen_content_id(uint32_t aPartNum, const char* aEmailAddress);
+
+bool mime_7bit_data_p(const char* string, uint32_t size);
+
+char* mime_fix_header_1(const char* string, bool addr_p, bool news_p);
+char* mime_fix_header(const char* string);
+char* mime_fix_addr_header(const char* string);
+char* mime_fix_news_header(const char* string);
+
+bool mime_type_requires_b64_p(const char* type);
+bool mime_type_needs_charset(const char* type);
+
+char* msg_make_filename_qtext(const char* srcText, bool stripCRLFs);
+
+char* RFC2231ParmFolding(const char* parmName, const char* parmValue);
+
+//
+// Informational calls...
+//
+void nsMsgMIMESetConformToStandard(bool conform_p);
+bool nsMsgMIMEGetConformToStandard(void);
+
+//
+// network service type calls...
+//
+nsresult nsMsgNewURL(nsIURI** aInstancePtrResult, const nsCString& aSpec);
+char* nsMsgGetLocalFileFromURL(const char* url);
+
+char* nsMsgParseURLHost(const char* url);
+
+char* GenerateFileNameFromURI(nsIURI* aURL);
+
+//
+// Folder calls...
+//
+void GetFolderURIFromUserPrefs(nsMsgDeliverMode aMode, nsIMsgIdentity* identity,
+ nsCString& uri);
+
+// Check if we should use format=flowed
+void GetSerialiserFlags(bool* flowed, bool* formatted);
+
+PR_END_EXTERN_C
+
+#endif /* _nsMsgCompUtils_H_ */