basic/source/runtime/methods1.cxx | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-)
New commits: commit 4409dbbdbcf5446d2085ac424048d188cd7b9062 Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Sat Mar 29 16:34:58 2025 +0100 Commit: Mike Kaganski <mike.kagan...@collabora.com> CommitDate: Sat Mar 29 17:56:22 2025 +0100 Use osl_getEnvironment instead of getenv Avoids the need to convert between OUString and OString; and resolves a pressing Win16 compatibility issue. Change-Id: I4cf5b6962050181a66a33c1261c9440ac7a39b82 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183487 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> diff --git a/basic/source/runtime/methods1.cxx b/basic/source/runtime/methods1.cxx index d5810d400491..ff5f335797e1 100644 --- a/basic/source/runtime/methods1.cxx +++ b/basic/source/runtime/methods1.cxx @@ -37,6 +37,7 @@ #include <tools/fract.hxx> #include <o3tl/temporary.hxx> #include <osl/file.hxx> +#include <osl/process.h> #include <sbobjmod.hxx> #include <basic/sbuno.hxx> @@ -1132,14 +1133,7 @@ void SbRtl_Environ(StarBASIC *, SbxArray & rPar, bool) return StarBASIC::Error( ERRCODE_BASIC_BAD_ARGUMENT ); OUString aResult; - // should be ANSI but that's not possible under Win16 in the DLL - OString aByteStr(OUStringToOString(rPar.Get(1)->GetOUString(), - osl_getThreadTextEncoding())); - const char* pEnvStr = getenv(aByteStr.getStr()); - if ( pEnvStr ) - { - aResult = OUString(pEnvStr, strlen(pEnvStr), osl_getThreadTextEncoding()); - } + osl_getEnvironment(rPar.Get(1)->GetOUString().pData, &aResult.pData); rPar.Get(0)->PutString(aResult); }