diff --git a/mailnews/extensions/smime/src/nsMsgComposeSecure.h b/mailnews/extensions/smime/src/nsMsgComposeSecure.h index a6befff1c040..ef493d2251ab 100644 --- a/mailnews/extensions/smime/src/nsMsgComposeSecure.h +++ b/mailnews/extensions/smime/src/nsMsgComposeSecure.h @@ -48,6 +48,7 @@ #include "nsIHash.h" #include "nsICMSMessage.h" #include "nsIArray.h" +#include "nsString.h" class nsIMsgCompFields; diff --git a/mailnews/mime/public/Makefile.in b/mailnews/mime/public/Makefile.in index f6670a3346cd..e193785141da 100644 --- a/mailnews/mime/public/Makefile.in +++ b/mailnews/mime/public/Makefile.in @@ -45,7 +45,6 @@ include $(DEPTH)/config/autoconf.mk MODULE = mime EXPORTS = \ - nsIMimeConverter.h \ nsIMimeObjectClassAccess.h \ nsMailHeaders.h \ nsIMimeContentTypeHandler.h \ @@ -57,6 +56,7 @@ XPIDLSRCS = \ nsIMsgHeaderParser.idl \ nsIMimeMiscStatus.idl \ nsIMimeHeaders.idl \ + nsIMimeConverter.idl \ $(NULL) include $(topsrcdir)/config/rules.mk diff --git a/mailnews/mime/public/nsIMimeConverter.h b/mailnews/mime/public/nsIMimeConverter.idl similarity index 58% rename from mailnews/mime/public/nsIMimeConverter.h rename to mailnews/mime/public/nsIMimeConverter.idl index 099017d7f5dc..6f8a8363502b 100644 --- a/mailnews/mime/public/nsIMimeConverter.h +++ b/mailnews/mime/public/nsIMimeConverter.idl @@ -1,12 +1,11 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: NPL 1.1/GPL 2.0/LGPL 2.1 * - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ + * The contents of this file are subject to the Netscape Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/NPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License @@ -15,7 +14,7 @@ * * The Original Code is mozilla.org code. * - * The Initial Developer of the Original Code is + * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. @@ -23,41 +22,24 @@ * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of - * either of the GNU General Public License Version 2 or later (the "GPL"), - * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your + * use your version of this file under the terms of the NPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. + * the terms of any one of the NPL, the GPL or the LGPL. * - * ***** END LICENSE BLOCK ***** - * This Original Code has been modified by IBM Corporation. Modifications made by IBM - * described herein are Copyright (c) International Business Machines Corporation, 2000. - * Modifications to Mozilla code or documentation identified per MPL Section 3.3 - * - * Date Modified by Description of modification - * 04/20/2000 IBM Corp. OS/2 VisualAge build. - */ - -/* - * This interface allows any module to access the encoder/decoder - * routines for RFC822 headers, base64 and QP encoders. This will - * allow any mail/news module to call on these routines. - */ -#ifndef nsIMimeConverter_h_ -#define nsIMimeConverter_h_ + * ***** END LICENSE BLOCK ***** */ + +#include "nsISupports.idl" + +%{C++ #include "prtypes.h" -#include "nsString.h" - -// {ea5b631e-1dd1-11b2-be0d-e02825f300d0} -#define NS_IMIME_CONVERTER_IID \ - { 0xea5b631e, 0x1dd1, 0x11b2, \ - { 0xbe, 0x0d, 0xe0, 0x28, 0x25, 0xf3, 0x00, 0xd0 } } // default line length for calling the encoder #define kMIME_ENCODED_WORD_SIZE 72 @@ -69,15 +51,33 @@ typedef struct MimeDecoderData MimeDecoderData; typedef struct MimeEncoderData MimeEncoderData; -class nsIMimeConverter : public nsISupports { -public: - NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMIME_CONVERTER_IID) +%} + +[scriptable, uuid(59B73615-2285-4d88-A31C-1ABFE4773F4F)] +interface nsIMimeConverter : nsISupports { // These methods are all implemented by libmime to be used by // modules that need to encode/decode mail headers // Decode routine. // If header does not need decoding, places nsnull in decodedString + + // Encode routine + string encodeMimePartIIStr(in string header, + in boolean structured, + in string mailCharset, + in long fieldnamelen, + in long encodedWordSize); + + // Encode routine (utf-8 input) + string encodeMimePartIIStr_UTF8(in string header, + in boolean structured, + in string mailCharset, + in long fieldnamelen, + in long encodedWordSize); + + // TO DO: Comeback and convert the rest of these methods into scriptable methods when we have more time... +%{C++ NS_IMETHOD DecodeMimeHeader(const char *header, char **decodedString, const char *default_charset = nsnull, @@ -100,22 +100,6 @@ public: PRBool override_charset = PR_FALSE, PRBool eatContinuations = PR_TRUE) = 0; - // Encode routine - NS_IMETHOD EncodeMimePartIIStr(const char *header, - PRBool structured, - const char *mailCharset, - PRInt32 fieldnamelen, - const PRInt32 encodedWordSize, - char **encodedString) = 0; - - // Encode routine (utf-8 input) - NS_IMETHOD EncodeMimePartIIStr_UTF8(const char *header, - PRBool structured, - const char *mailCharset, - PRInt32 fieldnamelen, - const PRInt32 encodedWordSize, - char **encodedString) = 0; - NS_IMETHOD B64EncoderInit(nsresult (*PR_CALLBACK output_fn) (const char *buf, PRInt32 size, void *closure), void *closure, MimeEncoderData **returnEncoderData) = 0; @@ -130,9 +114,7 @@ public: NS_IMETHOD EncoderDestroy(MimeEncoderData *data, PRBool abort_p) = 0; NS_IMETHOD EncoderWrite (MimeEncoderData *data, const char *buffer, PRInt32 size, PRInt32 *written) = 0; +%} -}; - -#endif /* nsIMimeConverter_h_ */ - +}; diff --git a/mailnews/mime/src/nsMimeConverter.cpp b/mailnews/mime/src/nsMimeConverter.cpp index 3cf64ded94ca..40eac4f66ce8 100644 --- a/mailnews/mime/src/nsMimeConverter.cpp +++ b/mailnews/mime/src/nsMimeConverter.cpp @@ -134,7 +134,7 @@ nsMimeConverter::EncodeMimePartIIStr(const char *header, PRBool structured, const char *mailCharset, PRInt32 fieldnamelen, - const PRInt32 encodedWordSize, + PRInt32 encodedWordSize, char **encodedString) { @@ -151,7 +151,7 @@ nsMimeConverter::EncodeMimePartIIStr_UTF8(const char *header, PRBool structured, const char *mailCharset, PRInt32 fieldnamelen, - const PRInt32 encodedWordSize, + PRInt32 encodedWordSize, char **encodedString) { char *retString = MIME_EncodeMimePartIIStr(header, structured, mailCharset, fieldnamelen, encodedWordSize); diff --git a/mailnews/mime/src/nsMimeConverter.h b/mailnews/mime/src/nsMimeConverter.h index b232ad1316f5..77e5a7f0efeb 100644 --- a/mailnews/mime/src/nsMimeConverter.h +++ b/mailnews/mime/src/nsMimeConverter.h @@ -97,7 +97,7 @@ public: PRBool structured, const char *mailCharset, PRInt32 fieldnamelen, - const PRInt32 encodedWordSize, + PRInt32 encodedWordSize, char **encodedString); // Encode routine (utf-8 input) @@ -105,7 +105,7 @@ public: PRBool structured, const char *mailCharset, PRInt32 fieldnamelen, - const PRInt32 encodedWordSize, + PRInt32 encodedWordSize, char **encodedString); NS_IMETHOD B64EncoderInit(nsresult (*PR_CALLBACK output_fn) (const char *buf, PRInt32 size, void *closure),