From 4df1437fce423146e899ac349949d71da48d43dc Mon Sep 17 00:00:00 2001 From: "scott%scott-macgregor.org" Date: Thu, 13 Dec 2007 22:33:27 +0000 Subject: [PATCH] Bug #379070 --> make address book and mailnews\basensEscape free, use the new eqivalents that are available via frozen linkage. Patch by Prasad sr=mscott git-svn-id: svn://10.0.0.236/trunk@241165 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/mailnews/addrbook/src/nsAbManager.cpp | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/mozilla/mailnews/addrbook/src/nsAbManager.cpp b/mozilla/mailnews/addrbook/src/nsAbManager.cpp index db5bc2c627e..714e1e1ce61 100644 --- a/mozilla/mailnews/addrbook/src/nsAbManager.cpp +++ b/mozilla/mailnews/addrbook/src/nsAbManager.cpp @@ -52,6 +52,7 @@ #include "msgCore.h" #include "nsMsgI18N.h" #include "nsIStringBundle.h" +#include "nsMsgUtils.h" #include "plstr.h" #include "prmem.h" @@ -78,7 +79,6 @@ #include "plbase64.h" #include "nsIWindowWatcher.h" -#include "nsEscape.h" #include "nsVCard.h" #include "nsVCardObj.h" #include "nsISupportsPrimitives.h" @@ -1079,10 +1079,11 @@ NS_IMETHODIMP nsAddressBook::HandleContent(const char * aContentType, const char *startOfVCard = strstr(path.get(), "add?vcard="); if (startOfVCard) { - char *unescapedData = PL_strdup(startOfVCard + strlen("add?vcard=")); - + nsCString unescapedData; + // XXX todo, explain why we is escaped twice - nsUnescape(unescapedData); + MsgUnescapeString(nsDependentCString(startOfVCard + strlen("add?vcard=")), + 0, unescapedData); if (!aWindowContext) return NS_ERROR_FAILURE; @@ -1092,7 +1093,7 @@ NS_IMETHODIMP nsAddressBook::HandleContent(const char * aContentType, return NS_ERROR_FAILURE; nsCOMPtr cardFromVCard; - rv = EscapedVCardToAbCard((const char *)unescapedData, getter_AddRefs(cardFromVCard)); + rv = EscapedVCardToAbCard(unescapedData.get(), getter_AddRefs(cardFromVCard)); NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr ifptr = @@ -1110,8 +1111,6 @@ NS_IMETHODIMP nsAddressBook::HandleContent(const char * aContentType, NS_LITERAL_STRING("chrome,resizable=no,titlebar,modal,centerscreen"), ifptr, getter_AddRefs(dialogWindow)); NS_ENSURE_SUCCESS(rv, rv); - - PL_strfree(unescapedData); } rv = NS_OK; } @@ -1189,13 +1188,10 @@ NS_IMETHODIMP nsAddressBook::EscapedVCardToAbCard(const char *aEscapedVCardStr, // aEscapedVCardStr will be "" the first time, before you have a vCard if (*aEscapedVCardStr != '\0') { - char *unescapedData = PL_strdup(aEscapedVCardStr); - if (!unescapedData) - return NS_ERROR_OUT_OF_MEMORY; + nsCString unescapedData; + MsgUnescapeString(nsDependentCString(aEscapedVCardStr), 0, unescapedData); - nsUnescape(unescapedData); - VObject *vObj = parse_MIME(unescapedData, strlen(unescapedData)); - PL_strfree(unescapedData); + VObject *vObj = parse_MIME(unescapedData.get(), unescapedData.Length()); NS_ASSERTION(vObj, "Parse of vCard failed"); convertFromVObject(vObj, cardFromVCard);