diff options
Diffstat (limited to 'embed/mozilla')
-rw-r--r-- | embed/mozilla/EphyWrapper.cpp | 20 | ||||
-rw-r--r-- | embed/mozilla/EphyWrapper.h | 2 | ||||
-rw-r--r-- | embed/mozilla/mozilla-embed.cpp | 8 |
3 files changed, 20 insertions, 10 deletions
diff --git a/embed/mozilla/EphyWrapper.cpp b/embed/mozilla/EphyWrapper.cpp index bd3fe3ab4..9c229acc1 100644 --- a/embed/mozilla/EphyWrapper.cpp +++ b/embed/mozilla/EphyWrapper.cpp @@ -752,7 +752,7 @@ nsresult EphyWrapper::PopTargetDocument () return NS_OK; } -nsresult EphyWrapper::GetEncoding (nsCString &aEncoding) +nsresult EphyWrapper::GetEncoding (char **aEncoding) { nsresult result; @@ -762,6 +762,20 @@ nsresult EphyWrapper::GetEncoding (nsCString &aEncoding) nsCOMPtr<nsIDocument> doc = do_QueryInterface(domDoc, &result); if (NS_FAILED (result) || !doc) return NS_ERROR_FAILURE; - - return doc->GetDocumentCharacterSet (aEncoding); + +#if MOZILLA_SNAPSHOT >= 10 + nsCAutoString enc; + result = doc->GetDocumentCharacterSet (enc); + if (NS_FAILED (result)) return NS_ERROR_FAILURE; + + *aEncoding = g_strdup (enc.get()); +#else + nsAutoString enc; + result = doc->GetDocumentCharacterSet (enc); + if (NS_FAILED (result)) return NS_ERROR_FAILURE; + + *aEncoding = g_strdup (NS_ConvertUCS2toUTF8(enc).get()); +#endif + + return NS_OK; } diff --git a/embed/mozilla/EphyWrapper.h b/embed/mozilla/EphyWrapper.h index 51e99ad66..32cfe5efd 100644 --- a/embed/mozilla/EphyWrapper.h +++ b/embed/mozilla/EphyWrapper.h @@ -78,7 +78,7 @@ public: nsresult ForceEncoding (const char *encoding); - nsresult GetEncoding (nsCString &aEncoding); + nsresult GetEncoding (char **aEncoding); nsresult CanCutSelection(PRBool *result); diff --git a/embed/mozilla/mozilla-embed.cpp b/embed/mozilla/mozilla-embed.cpp index ae1f7f7b1..de87457e3 100644 --- a/embed/mozilla/mozilla-embed.cpp +++ b/embed/mozilla/mozilla-embed.cpp @@ -1197,7 +1197,6 @@ impl_get_encoding (EphyEmbed *embed, { nsresult result; EphyWrapper *wrapper; - nsCAutoString enc; g_return_val_if_fail (encoding != NULL, G_FAILED); *encoding = NULL; @@ -1205,12 +1204,9 @@ impl_get_encoding (EphyEmbed *embed, wrapper = MOZILLA_EMBED(embed)->priv->wrapper; g_return_val_if_fail (wrapper != NULL, G_FAILED); - result = wrapper->GetEncoding (enc); - if (NS_FAILED (result)) return G_FAILED; - - *encoding = g_strdup (enc.get()); + result = wrapper->GetEncoding (encoding); - return G_OK; + return NS_SUCCEEDED(result) ? G_OK : G_FAILED; } static void |