Kaydet (Commit) 904e5801 authored tarafından Jan Holesovsky's avatar Jan Holesovsky

fix-linkoo.diff: Fix linkoo to work again.

We cannot absolutize all the links, otherwise we have bootstrap
problems - i#83548.
üst b823d4b0
......@@ -692,6 +692,7 @@ oslFileError osl_getAbsoluteFileURL(rtl_uString* ustrBaseDirURL, rtl_uString* u
{
FileBase::RC rc;
rtl::OUString unresolved_path;
static char *allow_symlinks = getenv( "SAL_ALLOW_LINKOO_SYMLINKS" );
rc = FileBase::getSystemPathFromFileURL(rtl::OUString(ustrRelativeURL), unresolved_path);
......@@ -713,8 +714,33 @@ oslFileError osl_getAbsoluteFileURL(rtl_uString* ustrBaseDirURL, rtl_uString* u
}
rtl::OUString resolved_path;
if (!allow_symlinks)
{
rc = (FileBase::RC) osl_getAbsoluteFileURL_impl_(unresolved_path, resolved_path);
}
else
{
// SAL_ALLOW_LINKOO_SYMLINKS environment variable:
// for linkoo to work, we need to let the symlinks to the libraries untouched
rtl::OUString base;
sal_Int32 last_slash = unresolved_path.lastIndexOf( UNICHAR_SLASH );
if (last_slash >= 0 && last_slash + 1 < unresolved_path.getLength())
{
base = unresolved_path.copy(last_slash+1);
unresolved_path = unresolved_path.copy(0, last_slash);
}
rc = (FileBase::RC) osl_getAbsoluteFileURL_impl_(unresolved_path, resolved_path);
if (base.getLength() > 0)
{
resolved_path += rtl::OUString( UNICHAR_SLASH );
resolved_path += base;
}
}
if (FileBase::E_None == rc)
{
rc = (FileBase::RC) osl_getFileURLFromSystemPath(resolved_path.pData, pustrAbsoluteURL);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment