2001-12-11 18:57 UTC+0100 Viktor Szakats <viktor.szakats@syenar.hu>

This commit is contained in:
Viktor Szakats
2001-12-11 17:59:09 +00:00
parent 1614631608
commit 1eff3383f3
2 changed files with 33 additions and 37 deletions

View File

@@ -8,6 +8,9 @@
2002-12-01 23:12 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
2001-12-11 18:57 UTC+0100 Viktor Szakats <viktor.szakats@syenar.hu>
* source/common/hbgete.c
% Made it more fail-safe and compact.
2001-12-11 15:09 UTC+0100 Maurilio Longo <maurilio.longo@libero.it>
* source/common/hbgete.c

View File

@@ -60,62 +60,55 @@
#include "hbapi.h"
char * hb_getenv( const char * name )
char * hb_getenv( const char * szName )
{
char * pszBuffer = NULL;
#ifdef HB_OS_WIN_32
char * pszBuffer = ( char * ) hb_xgrab( 255 );
#if defined(HB_OS_WIN_32)
{
DWORD nSize = GetEnvironmentVariable( name, pszBuffer, 0 );
DWORD size = GetEnvironmentVariable( szName, NULL, 0 );
if( nSize == 0 )
pszBuffer[ 0 ] = '\0';
else
GetEnvironmentVariable( name, pszBuffer, 254 );
if( size != 0 )
{
pszBuffer = ( char * ) hb_xgrab( size );
GetEnvironmentVariable( szName, pszBuffer, size );
}
}
#elif defined(HB_OS_OS2)
char * pszBuffer = NULL;
{
PSZ EnvValue = "";
ULONG ulrc = DosScanEnv(name, &EnvValue);
if (ulrc == NO_ERROR) {
pszBuffer = ( char * ) hb_xgrab( strlen(EnvValue) + 1 );
strcpy( pszBuffer, (char *) EnvValue);
} else {
pszBuffer = ( char * ) hb_xgrab( 1 );
pszBuffer[ 0 ] = '\0';
}
}
PSZ EnvValue = "";
if( DosScanEnv( szName, &EnvValue ) == NO_ERROR )
{
pszBuffer = ( char * ) hb_xgrab( strlen( EnvValue ) + 1 );
strcpy( pszBuffer, ( char * ) EnvValue );
}
}
#else
char * pszBuffer = NULL;
{
char * pszTemp = getenv( name );
if( pszTemp == NULL ) {
pszBuffer = ( char * ) hb_xgrab( 1 );
pszBuffer[ 0 ] = '\0';
} else {
pszBuffer = ( char * ) hb_xgrab( strlen(pszTemp) + 1 );
strcpy( pszBuffer, pszTemp);
char * pszTemp = getenv( szName );
if( pszTemp != NULL )
{
pszBuffer = ( char * ) hb_xgrab( strlen( pszTemp ) + 1 );
strcpy( pszBuffer, pszTemp );
}
}
#endif
/* Return an empty string if some error occured. */
if( pszBuffer == NULL )
{
pszBuffer = ( char * ) hb_xgrab( 1 );
pszBuffer[ 0 ] = '\0';
}
return pszBuffer;
}