rv = net_ParseFileURL(aURL, directory, fileBaseName, fileExtension);
rv = net_ParseFileURL(*specPtr, directory, fileBaseName, fileExtension);
net_GetFileFromURLSpec(const nsACString &aURL, nsIFile **result){    nsresult rv;        nsCOMPtr<nsILocalFile> localFile(            do_CreateInstance(NS_LOCAL_FILE_CONTRACTID, &rv));    if (NS_FAILED(rv)) {        NS_ERROR("Only nsILocalFile supported right now");        return rv;    }        nsCAutoString directory, fileBaseName, fileExtension;        rv = net_ParseFileURL(aURL, directory, fileBaseName, fileExtension);    if (NS_FAILED(rv)) return rv;    nsCAutoString path;    if (!directory.IsEmpty()) {        NS_EscapeURL(directory, esc_Directory|esc_AlwaysCopy, path);        if (path.Length() > 2 && path.CharAt(2) == '|')            path.SetCharAt(':', 2);        path.ReplaceChar('/', '\\');    }        if (!fileBaseName.IsEmpty())        NS_EscapeURL(fileBaseName, esc_FileBaseName|esc_AlwaysCopy, path);    if (!fileExtension.IsEmpty()) {        path += '.';        NS_EscapeURL(fileExtension, esc_FileExtension|esc_AlwaysCopy, path);    }        NS_UnescapeURL(path);    // remove leading '\'    if (path.CharAt(0) == '\\')        path.Cut(0, 1);    // assuming path is encoded in the native charset    rv = localFile->InitWithNativePath(path);    if (NS_FAILED(rv)) return rv;    NS_ADDREF(*result = localFile);    return NS_OK;}