_WCRTLINK CHAR_TYPE *__F_NAME(getenv,_wgetenv)( const CHAR_TYPE *name ) { #ifdef __NETWARE__ name = name; #else CHAR_TYPE **envp; CHAR_TYPE *p; int len; #ifdef __WIDECHAR__ if( _RWD_wenviron == NULL ) { __create_wide_environment(); } #endif /*** Find the environment string ***/ __ptr_check( name, 0 ); envp = __F_NAME(_RWD_environ,_RWD_wenviron); if( (envp != NULL) && (name != NULL) ) { len = __F_NAME(strlen,wcslen)( name ); for( ; p = *envp; ++envp ) { if( CMP_FUNC( p, name, len ) == 0 ) { if( p[len] == STRING( '=' ) ) { return( &p[len+1] ); } } } } #endif return( NULL ); /* not found */ }
_WCRTLINK char *getenv( const char *name ) { char **envp; char *p; /*** Find the environment string ***/ __ptr_check( name, 0 ); envp = _RWD_environ; if( (envp != NULL) && (name != NULL) ) { for( ; p = *envp; ++envp ) { const char *s = name; while( *p != '\0' ) { /* simple check is sufficient for p, not s */ if ( _mbterm( s ) ) { if( *p == '=' ) return( p + 1 ); break; } if ( _mbctoupper( _mbsnextc( p ) ) != _mbctoupper( _mbsnextc( s ) ) ) break; p = _mbsinc( p ); /* skip over character */ s = _mbsinc( s ); /* skip over character */ } } } return( NULL ); /* not found */ }
_WCRTLINK long int __F_NAME(atol,_wtol)( const CHAR_TYPE *p ) { long int value; bool minus; __ptr_check( p, 0 ); while( __F_NAME(isspace,iswspace)( (UCHAR_TYPE)*p ) ) ++p; minus = false; switch( *p ) { case STRING( '-' ): minus = true; // fall down case STRING( '+' ): ++p; break; } value = 0; while( __F_NAME(isdigit,iswdigit)( (UCHAR_TYPE)*p ) ) { value = value * 10 + *p - STRING( '0' ); ++p; } if( minus ) value = - value; return( value ); }
_WCRTLINK int unlink( const CHAR_TYPE *filename ) { __ptr_check( filename, 0 ); if( RdosDeleteFile( filename ) ) return( 0 ); else return( -1 ); }
_WCRTLINK void __F_NAME(__clib_atoll,__clib_watoll)( const CHAR_TYPE *p, unsigned __int64 *pv ) /* convert ASCII string to long integer */ { unsigned __int64 value = 0; CHAR_TYPE sign; __ptr_check( p, 0 ); while( __F_NAME(isspace,iswspace)( *p ) ) ++p; sign = *p; if( sign == '+' || sign == '-' ) ++p; while( __F_NAME(isdigit,iswdigit)(*p) ) { value = value * 10 + *p - '0'; ++p; } if( sign == '-' ) value = -value; *pv = value; }
_WCRTLINK CHAR_TYPE *__F_NAME(getenv,_wgetenv)( const CHAR_TYPE *name ) { #ifdef __NETWARE__ name = name; #else CHAR_TYPE **envp; CHAR_TYPE *p; #ifdef __WIDECHAR__ if( _RWD_wenviron == NULL ) { __create_wide_environment(); } #endif /*** Find the environment string ***/ __ptr_check( name, 0 ); envp = __F_NAME(_RWD_environ,_RWD_wenviron); if( (envp != NULL) && (name != NULL) ) { for( ; p = *envp; ++envp ) { const CHAR_TYPE *s = name; while( !_TCSTERM( p ) ) { if( _TCSTERM( s ) ) { if( _TCSNEXTC( p ) == STRING( '=' ) ) return( _TCSINC( p ) ); break; } #if defined(__UNIX__) if( _TCSCMP( p, s ) ) #else if( _TCSICMP( p, s ) ) #endif break; p = _TCSINC( p ); /* skip over character */ s = _TCSINC( s ); /* skip over character */ } } } #endif return( NULL ); /* not found */ }
_WCRTLINK int remove( char const *filename ) { __ptr_check( filename, 0 ); return xremove( filename ); }