Beispiel #1
0
void _imp_getProcessLocale( rtl_Locale ** ppLocale )
{
    static char *locale = NULL;

    /* basic thread safeness */
//    pthread_mutex_lock( &aLocalMutex );

    /* Only fetch the locale once and cache it */
    if ( NULL == locale )
    {

        locale = (char *)malloc( 128 );
        if ( locale )
            macosx_getLocale( locale, 128 );
        else
            fprintf( stderr, "nlsupport.c:  locale allocation returned NULL!\n" );
    }

    /* handle the case where OS specific method of finding locale fails */
    if ( NULL == locale )
    {
        /* simulate behavior of setlocale */
        locale = getenv( "LC_ALL" );

        if( NULL == locale )
            locale = getenv( "LC_CTYPE" );

        if( NULL == locale )
            locale = getenv( "LANG" );

        if( NULL == locale )
            locale = "C";
    }

    /* return the locale */
    *ppLocale = _parse_locale( locale );

    setenv( "LC_ALL", locale, 1);
    setenv("LC_CTYPE", locale, 1 );
    setenv("LANG", locale, 1 );

#if OSL_DEBUG_LEVEL > 1
    OSL_TRACE("_imp_getProcessLocale() returning %s as current locale.", locale );
#endif

//    pthread_mutex_unlock( &aLocalMutex );

}
Beispiel #2
0
void _imp_getProcessLocale( rtl_Locale ** ppLocale )
{
    /* simulate behavior off setlocale */
    char * locale = getenv( "LC_ALL" );
    
    if( NULL == locale )
        locale = getenv( "LC_CTYPE" );

    if( NULL == locale )
        locale = getenv( "LANG" );

    if( NULL == locale )
        locale = "C";

    *ppLocale = _parse_locale( locale );
}
Beispiel #3
0
void _imp_getProcessLocale( rtl_Locale ** ppLocale )
{
    char * locale;

    /* basic thread safeness */
    pthread_mutex_lock( &aLocalMutex );

    /* set the locale defined by the env vars */
    locale = setlocale( LC_CTYPE, "" );

    /* fallback to the current locale */
    if( NULL == locale )
        locale = setlocale( LC_CTYPE, NULL );

    /* return the LC_CTYPE locale */
    *ppLocale = _parse_locale( locale );

    pthread_mutex_unlock( &aLocalMutex );
}
Beispiel #4
0
void _imp_getProcessLocale( rtl_Locale ** ppLocale )
{
#ifdef ANDROID
    /* No locale environment variables on Android, so why even bother
     * with getenv().
     */
   char * locale = "en-US.UTF-8";
#else
    /* simulate behavior off setlocale */
    char * locale = getenv( "LC_ALL" );

    if( NULL == locale )
        locale = getenv( "LC_CTYPE" );

    if( NULL == locale )
        locale = getenv( "LANG" );

    if( NULL == locale )
        locale = "C";

#endif
    *ppLocale = _parse_locale( locale );
}