fix overwriting bootstrapparameters from custom rc/.ini (#96291#)
This commit is contained in:
parent
1ba32d0db4
commit
2dcb7905bf
1 changed files with 6 additions and 25 deletions
|
@ -2,9 +2,9 @@
|
||||||
*
|
*
|
||||||
* $RCSfile: bootstrap.cxx,v $
|
* $RCSfile: bootstrap.cxx,v $
|
||||||
*
|
*
|
||||||
* $Revision: 1.10 $
|
* $Revision: 1.11 $
|
||||||
*
|
*
|
||||||
* last change: $Author: jb $ $Date: 2001-11-06 14:36:55 $
|
* last change: $Author: kr $ $Date: 2002-01-07 16:14:49 $
|
||||||
*
|
*
|
||||||
* The Contents of this file are made available subject to the terms of
|
* The Contents of this file are made available subject to the terms of
|
||||||
* either of the following licenses
|
* either of the following licenses
|
||||||
|
@ -296,10 +296,8 @@ typedef struct Bootstrap_Impl {
|
||||||
OUString _iniName;
|
OUString _iniName;
|
||||||
} Bootstrap_Impl;
|
} Bootstrap_Impl;
|
||||||
|
|
||||||
static void fillFromIniFile(Bootstrap_Impl * pBootstrap_Impl)
|
static void fillFromIniFile(Bootstrap_Impl * pBootstrap_Impl, const OUString & iniName)
|
||||||
{
|
{
|
||||||
OUString iniName = pBootstrap_Impl->_iniName;
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
OString sFile = OUStringToOString(iniName, RTL_TEXTENCODING_ASCII_US);
|
OString sFile = OUStringToOString(iniName, RTL_TEXTENCODING_ASCII_US);
|
||||||
OSL_TRACE("bootstrap.cxx::fillFromIniFile - %s\n", sFile.getStr());
|
OSL_TRACE("bootstrap.cxx::fillFromIniFile - %s\n", sFile.getStr());
|
||||||
|
@ -367,7 +365,8 @@ rtlBootstrapHandle SAL_CALL rtl_bootstrap_args_open(rtl_uString * pIniName)
|
||||||
Bootstrap_Impl * pBootstrap_Impl = new Bootstrap_Impl;
|
Bootstrap_Impl * pBootstrap_Impl = new Bootstrap_Impl;
|
||||||
|
|
||||||
pBootstrap_Impl->_iniName = iniName;
|
pBootstrap_Impl->_iniName = iniName;
|
||||||
fillFromIniFile(pBootstrap_Impl);
|
fillFromIniFile(pBootstrap_Impl, getIniFileNameImpl());
|
||||||
|
fillFromIniFile(pBootstrap_Impl, iniName);
|
||||||
|
|
||||||
return pBootstrap_Impl;
|
return pBootstrap_Impl;
|
||||||
}
|
}
|
||||||
|
@ -392,29 +391,12 @@ sal_Bool SAL_CALL rtl_bootstrap_get_from_handle(rtlBootstrapHandle handle, rtl_u
|
||||||
}
|
}
|
||||||
|
|
||||||
found = getValue(&((Bootstrap_Impl *)handle)->_nameValueList, pName, ppValue, pDefault);
|
found = getValue(&((Bootstrap_Impl *)handle)->_nameValueList, pName, ppValue, pDefault);
|
||||||
|
|
||||||
|
|
||||||
if(*ppValue)
|
if(*ppValue)
|
||||||
{
|
{
|
||||||
OUString result = expandMacros(&((Bootstrap_Impl *)handle)->_nameValueList, OUString(*ppValue));
|
OUString result = expandMacros(&((Bootstrap_Impl *)handle)->_nameValueList, OUString(*ppValue));
|
||||||
|
|
||||||
rtl_uString_assign(ppValue, result.pData );
|
rtl_uString_assign(ppValue, result.pData );
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!found) {
|
|
||||||
// fall back to executable rc
|
|
||||||
rtl_uString * pTmp = 0;
|
|
||||||
|
|
||||||
if(((Bootstrap_Impl *)handle)->_iniName != getIniFileNameImpl())
|
|
||||||
found = rtl_bootstrap_get(pName, &pTmp, pDefault);
|
|
||||||
|
|
||||||
if(found) {
|
|
||||||
rtl_uString_assign(ppValue, pTmp);
|
|
||||||
|
|
||||||
rtl_uString_release(pTmp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!*ppValue)
|
if(!*ppValue)
|
||||||
rtl_uString_new(ppValue);
|
rtl_uString_new(ppValue);
|
||||||
|
|
||||||
|
@ -423,7 +405,6 @@ sal_Bool SAL_CALL rtl_bootstrap_get_from_handle(rtlBootstrapHandle handle, rtl_u
|
||||||
found = rtl_bootstrap_get(pName, ppValue, pDefault);
|
found = rtl_bootstrap_get(pName, ppValue, pDefault);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -458,7 +439,7 @@ sal_Bool SAL_CALL rtl_bootstrap_get( rtl_uString *pName, rtl_uString **ppValue ,
|
||||||
static Bootstrap_Impl bootstrap_Impl;
|
static Bootstrap_Impl bootstrap_Impl;
|
||||||
|
|
||||||
bootstrap_Impl._iniName = getIniFileNameImpl();
|
bootstrap_Impl._iniName = getIniFileNameImpl();
|
||||||
fillFromIniFile(&bootstrap_Impl);
|
fillFromIniFile(&bootstrap_Impl, bootstrap_Impl._iniName);
|
||||||
|
|
||||||
pBootstrap_Impl = &bootstrap_Impl;
|
pBootstrap_Impl = &bootstrap_Impl;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue