Module: wine Branch: master Commit: 9bb0ecceb5af6144fc7ef8195ca8e9f8ef303b93 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9bb0ecceb5af6144fc7ef8195c...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Sep 28 13:26:01 2010 +0200
mshtml: Added nsIURI::GetHostPort implementation.
---
dlls/mshtml/nsio.c | 28 ++++++++++++++++++++++++++-- 1 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c index bc377cf..64c5696 100644 --- a/dlls/mshtml/nsio.c +++ b/dlls/mshtml/nsio.c @@ -1837,14 +1837,38 @@ static nsresult NSAPI nsURI_SetPassword(nsIURL *iface, const nsACString *aPasswo static nsresult NSAPI nsURI_GetHostPort(nsIURL *iface, nsACString *aHostPort) { nsWineURI *This = NSURI_THIS(iface); + const WCHAR *ptr; + char *vala; + BSTR val; + HRESULT hres;
TRACE("(%p)->(%p)\n", This, aHostPort);
if(This->nsuri) return nsIURI_GetHostPort(This->nsuri, aHostPort);
- FIXME("default action not implemented\n"); - return NS_ERROR_NOT_IMPLEMENTED; + if(!ensure_uri(This)) + return NS_ERROR_UNEXPECTED; + + hres = IUri_GetAuthority(This->uri, &val); + if(FAILED(hres)) { + WARN("GetAuthority failed: %08x\n", hres); + return NS_ERROR_UNEXPECTED; + } + + ptr = strchrW(val, '@'); + if(!ptr) + ptr = val; + + vala = heap_strdupWtoA(ptr); + SysFreeString(val); + if(!vala) + return NS_ERROR_OUT_OF_MEMORY; + + TRACE("ret %s\n", debugstr_a(vala)); + nsACString_SetData(aHostPort, vala); + heap_free(vala); + return NS_OK; }
static nsresult NSAPI nsURI_SetHostPort(nsIURL *iface, const nsACString *aHostPort)