mshtml: Added IURi-based nsIURL::GetDirectory implementation.
This commit is contained in:
parent
3673f6b7c4
commit
d125640499
|
@ -2320,14 +2320,35 @@ static nsresult NSAPI nsURL_SetRef(nsIURL *iface, const nsACString *aRef)
|
||||||
static nsresult NSAPI nsURL_GetDirectory(nsIURL *iface, nsACString *aDirectory)
|
static nsresult NSAPI nsURL_GetDirectory(nsIURL *iface, nsACString *aDirectory)
|
||||||
{
|
{
|
||||||
nsWineURI *This = impl_from_nsIURL(iface);
|
nsWineURI *This = impl_from_nsIURL(iface);
|
||||||
|
char *dir = NULL;
|
||||||
|
WCHAR *ptr;
|
||||||
|
BSTR path;
|
||||||
|
HRESULT hres;
|
||||||
|
|
||||||
TRACE("(%p)->(%p)\n", This, aDirectory);
|
TRACE("(%p)->(%p)\n", This, aDirectory);
|
||||||
|
|
||||||
if(This->nsurl)
|
if(!ensure_uri(This))
|
||||||
return nsIURL_GetDirectory(This->nsurl, aDirectory);
|
return NS_ERROR_UNEXPECTED;
|
||||||
|
|
||||||
FIXME("default action not implemented\n");
|
hres = IUri_GetPath(This->uri, &path);
|
||||||
return NS_ERROR_NOT_IMPLEMENTED;
|
if(FAILED(hres))
|
||||||
|
return NS_ERROR_FAILURE;
|
||||||
|
|
||||||
|
ptr = strrchrW(path, '/');
|
||||||
|
if(ptr) {
|
||||||
|
if(ptr[1])
|
||||||
|
*ptr = 0;
|
||||||
|
dir = heap_strdupWtoA(path);
|
||||||
|
if(!dir) {
|
||||||
|
SysFreeString(path);
|
||||||
|
return NS_ERROR_OUT_OF_MEMORY;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SysFreeString(path);
|
||||||
|
TRACE("ret %s\n", debugstr_a(dir));
|
||||||
|
nsACString_SetData(aDirectory, dir ? dir : "");
|
||||||
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static nsresult NSAPI nsURL_SetDirectory(nsIURL *iface, const nsACString *aDirectory)
|
static nsresult NSAPI nsURL_SetDirectory(nsIURL *iface, const nsACString *aDirectory)
|
||||||
|
|
Loading…
Reference in New Issue