Jacek Caban : mshtml: Added nsIURI:: Equals implementation on URIs without necko interface associated.

Alexandre Julliard julliard at winehq.org
Thu Feb 28 06:21:56 CST 2008


Module: wine
Branch: master
Commit: 54e6aa91af3ae5288857a80203a7fb6ca5e4972d
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=54e6aa91af3ae5288857a80203a7fb6ca5e4972d

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Feb 28 12:41:40 2008 +0100

mshtml: Added nsIURI::Equals implementation on URIs without necko interface associated.

---

 dlls/mshtml/nsio.c |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index ca269fc..f684f2a 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -1497,14 +1497,27 @@ static nsresult NSAPI nsURI_SetPath(nsIWineURI *iface, const nsACString *aPath)
 static nsresult NSAPI nsURI_Equals(nsIWineURI *iface, nsIURI *other, PRBool *_retval)
 {
     nsURI *This = NSURI_THIS(iface);
+    nsIWineURI *wine_uri;
+    LPCWSTR other_url = NULL;
+    nsresult nsres;
 
     TRACE("(%p)->(%p %p)\n", This, other, _retval);
 
     if(This->uri)
         return nsIURI_Equals(This->uri, other, _retval);
 
-    FIXME("default action not implemented\n");
-    return NS_ERROR_NOT_IMPLEMENTED;
+    nsres = nsIURI_QueryInterface(other, &IID_nsIWineURI, (void**)&wine_uri);
+    if(NS_FAILED(nsres)) {
+        TRACE("Could not get nsIWineURI interface\n");
+        *_retval = FALSE;
+        return NS_OK;
+    }
+
+    nsIWineURI_GetWineURL(wine_uri, &other_url);
+    *_retval = !UrlCompareW(This->wine_url, other_url, TRUE);
+    nsIWineURI_Release(wine_uri);
+
+    return NS_OK;
 }
 
 static nsresult NSAPI nsURI_SchemeIs(nsIWineURI *iface, const char *scheme, PRBool *_retval)




More information about the wine-cvs mailing list