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);
 }
 

Reply via email to