Module: wine Branch: master Commit: 793b021fd0133dda8d77d16def9e185054492500 URL: http://source.winehq.org/git/wine.git/?a=commit;h=793b021fd0133dda8d77d16def...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Aug 18 13:37:56 2010 +0200
mshtml: Use fake scheme only for about protocol in nsIURI::GetScheme.
---
dlls/mshtml/nsio.c | 19 ++++++++++++++----- 1 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c index 986cc76..d7b0989 100644 --- a/dlls/mshtml/nsio.c +++ b/dlls/mshtml/nsio.c @@ -1623,11 +1623,20 @@ static nsresult NSAPI nsURI_GetScheme(nsIURL *iface, nsACString *aScheme) TRACE("(%p)->(%p)\n", This, aScheme);
if(This->use_wine_url) { - /* - * For Gecko we set scheme to unknown so it won't be handled - * as any special case. - */ - nsACString_SetData(aScheme, "wine"); + char scheme[INTERNET_MAX_SCHEME_LENGTH+1]; + WCHAR *ptr; + int len; + + ptr = strchrW(This->wine_url, ':'); + if(!ptr) { + nsACString_SetData(aScheme, "wine"); + return NS_OK; + } + + len = WideCharToMultiByte(CP_ACP, 0, This->wine_url, ptr-This->wine_url, scheme, + sizeof(scheme), NULL, NULL); + scheme[min(len,sizeof(scheme)-1)] = 0; + nsACString_SetData(aScheme, strcmp(scheme, "about") ? scheme : "wine"); return NS_OK; }