Module: wine Branch: master Commit: ea7666a053a1aa34c511ec47c12c246f82fb8f90 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ea7666a053a1aa34c511ec47c1...
Author: Jacek Caban jacek@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)