From ea7666a053a1aa34c511ec47c12c246f82fb8f90 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Wed, 18 Jun 2008 00:11:52 +0200 Subject: [PATCH] mshtml: Change backslashes to shashes in URLs passed to IHTMLStyle::put_backgroundImage. --- dlls/mshtml/htmlstyle.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/dlls/mshtml/htmlstyle.c b/dlls/mshtml/htmlstyle.c index a9dc1796312..859193fae89 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) -- 2.11.4.GIT