summaryrefslogtreecommitdiff
path: root/pyuno
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2010-10-18 15:45:17 +0100
committerCaolán McNamara <caolanm@redhat.com>2010-10-18 15:45:17 +0100
commitc3b0a4073d2e4917c5a010548ae2a1eb5ebbf9a5 (patch)
tree76a19cfb10c5d1c0070cac7fa8a41cac92c2d33d /pyuno
parentf7dc4d73859ba109a54d01f137241d7848a587cf (diff)
#i112656# add osl_setEnvironment and osl_clearEnvironment
Diffstat (limited to 'pyuno')
-rw-r--r--pyuno/source/loader/pyuno_loader.cxx17
1 files changed, 7 insertions, 10 deletions
diff --git a/pyuno/source/loader/pyuno_loader.cxx b/pyuno/source/loader/pyuno_loader.cxx
index a7353d944..fe0b6996b 100644
--- a/pyuno/source/loader/pyuno_loader.cxx
+++ b/pyuno/source/loader/pyuno_loader.cxx
@@ -124,8 +124,7 @@ static void setPythonHome ( const OUString & pythonHome )
static void prependPythonPath( const OUString & pythonPathBootstrap )
{
- rtl::OStringBuffer bufPYTHONPATH( 256 );
- bufPYTHONPATH.append( "PYTHONPATH=");
+ rtl::OUStringBuffer bufPYTHONPATH( 256 );
sal_Int32 nIndex = 0;
while( 1 )
{
@@ -141,21 +140,19 @@ static void prependPythonPath( const OUString & pythonPathBootstrap )
}
OUString systemPath;
osl_getSystemPathFromFileURL( fileUrl.pData, &(systemPath.pData) );
- bufPYTHONPATH.append( rtl::OUStringToOString( systemPath.pData, osl_getThreadTextEncoding() ));
- bufPYTHONPATH.append( SAL_PATHSEPARATOR );
+ bufPYTHONPATH.append( systemPath );
+ bufPYTHONPATH.append( static_cast<sal_Unicode>(SAL_PATHSEPARATOR) );
if( nNew == -1 )
break;
nIndex = nNew + 1;
}
const char * oldEnv = getenv( "PYTHONPATH");
if( oldEnv )
- bufPYTHONPATH.append( oldEnv );
- OString result = bufPYTHONPATH.makeStringAndClear();
- rtl_string_acquire( result.pData );
+ bufPYTHONPATH.append( rtl::OUString(oldEnv, strlen(oldEnv), osl_getThreadTextEncoding()) );
-// printf( "Setting %s\n" , result.pData->buffer );
- putenv( result.pData->buffer );
-
+ rtl::OUString envVar(RTL_CONSTASCII_USTRINGPARAM("PYTHONPATH"));
+ rtl::OUString envValue(bufPYTHONPATH.makeStringAndClear());
+ osl_setEnvironment(envVar.pData, envValue.pData);
}
Reference< XInterface > CreateInstance( const Reference< XComponentContext > & ctx )