Jacek Caban : mshtml: Change backslashes to shashes in URLs passed to IHTMLStyle:: put_backgroundImage.

Alexandre Julliard julliard at winehq.org
Wed Jun 18 12:57:11 CDT 2008


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Jun 18 00:11:52 2008 +0200

mshtml: Change backslashes to shashes in URLs passed to IHTMLStyle::put_backgroundImage.

---

 dlls/mshtml/htmlstyle.c |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/dlls/mshtml/htmlstyle.c b/dlls/mshtml/htmlstyle.c
index a9dc179..859193f 100644
--- a/dlls/mshtml/htmlstyle.c
+++ b/dlls/mshtml/htmlstyle.c
@@ -116,7 +116,27 @@ static LPWSTR fix_px_value(LPCWSTR val)
     return NULL;
 }
 
+static LPWSTR fix_url_value(LPCWSTR val)
+{
+    WCHAR *ret, *ptr;
+
+    static const WCHAR urlW[] = {'u','r','l','('};
+
+    if(strncmpW(val, urlW, sizeof(urlW)/sizeof(WCHAR)) || !strchrW(val, '\\'))
+        return NULL;
+
+    ret = heap_strdupW(val);
+
+    for(ptr = ret; *ptr; ptr++) {
+        if(*ptr == '\\')
+            *ptr = '/';
+    }
+
+    return ret;
+}
+
 #define ATTR_FIX_PX  1
+#define ATTR_FIX_URL 2
 
 static HRESULT set_style_attr(HTMLStyle *This, LPCWSTR name, LPCWSTR value, DWORD flags)
 {
@@ -130,6 +150,8 @@ static HRESULT set_style_attr(HTMLStyle *This, LPCWSTR name, LPCWSTR value, DWOR
 
     if(flags & ATTR_FIX_PX)
         val = fix_px_value(value);
+    if(flags & ATTR_FIX_URL)
+        val = fix_url_value(value);
 
     nsAString_Init(&str_name, name);
     nsAString_Init(&str_value, val ? val : value);
@@ -460,7 +482,7 @@ static HRESULT WINAPI HTMLStyle_put_backgroundImage(IHTMLStyle *iface, BSTR v)
 
     TRACE("(%p)->(%s)\n", This, debugstr_w(v));
 
-    return set_style_attr(This, attrBackgroundImage, v, 0);
+    return set_style_attr(This, attrBackgroundImage, v, ATTR_FIX_URL);
 }
 
 static HRESULT WINAPI HTMLStyle_get_backgroundImage(IHTMLStyle *iface, BSTR *p)




More information about the wine-cvs mailing list