X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmisc%2Fdarwin_specific.m;h=71536c5004d26ba94d7a4978be5b03e0f89a0df6;hb=e27abe75a1d2017799af345709d0db0bcb172a36;hp=c0e76d1ee5d807c72047e703f981367f99d619fe;hpb=34b7837ae5c6bbccf6b1324db2d44f3b99dc9e68;p=vlc diff --git a/src/misc/darwin_specific.m b/src/misc/darwin_specific.m index c0e76d1ee5..71536c5004 100644 --- a/src/misc/darwin_specific.m +++ b/src/misc/darwin_specific.m @@ -2,7 +2,7 @@ * darwin_specific.m: Darwin specific features ***************************************************************************** * Copyright (C) 2001 VideoLAN - * $Id: darwin_specific.m,v 1.1 2002/12/30 08:56:19 massiot Exp $ + * $Id: darwin_specific.m,v 1.10 2003/02/06 23:01:31 sam Exp $ * * Authors: Samuel Hocevar * Christophe Massiot @@ -28,67 +28,35 @@ #include -/***************************************************************************** - * Static vars - *****************************************************************************/ -static char * psz_program_path; - /***************************************************************************** * system_Init: fill in program path & retrieve language *****************************************************************************/ static int FindLanguage( const char * psz_lang ) { - const char * psz_short = NULL; - - if ( !strcmp(psz_lang, "German") ) - { - psz_short = "de"; - } - else if ( !strcmp(psz_lang, "British") ) - { - psz_short = "en_GB"; - } - else if ( !strcmp(psz_lang, "French") ) - { - psz_short = "fr"; - } - else if ( !strcmp(psz_lang, "Italian") ) + const char ** ppsz_parser; + const char * ppsz_all[] = { - psz_short = "it"; - } - else if ( !strcmp(psz_lang, "Japanese") ) + "German", "de", + "British", "en_GB", + "French", "fr", + "Italian", "it", + "Japanese", "ja", + "Dutch", "nl", + "Norwegian", "no", + "Polish", "pl", + "Russian", "ru", + "Swedish", "sv", + NULL + }; + + for( ppsz_parser = ppsz_all ; ppsz_parser[0] ; ppsz_parser += 2 ) { - psz_short = "ja"; - } - else if ( !strcmp(psz_lang, "Dutch") ) - { - psz_short = "nl"; - } - else if ( !strcmp(psz_lang, "no") ) - { - psz_short = "no"; - } - else if ( !strcmp(psz_lang, "pl") ) - { - psz_short = "pl"; - } - else if ( !strcmp(psz_lang, "ru") ) - { - psz_short = "ru"; - } - else if ( !strcmp(psz_lang, "se") ) - { - psz_short = "se"; - } - else if ( !strcmp(psz_lang, "English") ) - { - psz_short = "C"; - } - - if ( psz_short != NULL ) - { - setenv("LANG", psz_short, 1); - return 1; + if( !strcmp( psz_lang, ppsz_parser[0] ) + || !strcmp( psz_lang, ppsz_parser[1] ) ) + { + setenv( "LANG", ppsz_parser[1], 1 ); + return 1; + } } return 0; @@ -100,7 +68,7 @@ void system_Init( vlc_t *p_this, int *pi_argc, char *ppsz_argv[] ) char *p_char, *p_oldchar = &i_dummy; /* Get the full program path and name */ - p_char = psz_program_path = strdup( ppsz_argv[ 0 ] ); + p_char = p_this->p_libvlc->psz_vlcpath = strdup( ppsz_argv[ 0 ] ); /* Remove trailing program name */ for( ; *p_char ; ) @@ -118,23 +86,24 @@ void system_Init( vlc_t *p_this, int *pi_argc, char *ppsz_argv[] ) /* Check if $LANG is set. */ if ( (p_char = getenv("LANG")) == NULL ) { + NSAutoreleasePool * o_pool = [[NSAutoreleasePool alloc] init]; + /* Retrieve user's preferences. */ - NSUserDefaults * p_defs = - [[NSUserDefaults standardUserDefaults] autorelease]; - NSArray * p_languages = - [[p_defs objectForKey:@"AppleLanguages"] autorelease]; - NSEnumerator * p_enumerator = - [[p_languages objectEnumerator] autorelease]; - NSString * p_lang; - - while ( (p_lang = [[p_enumerator nextObject] autorelease]) ) - { - const char * psz_string = [p_lang lossyCString]; + NSUserDefaults * o_defs = [NSUserDefaults standardUserDefaults]; + NSArray * o_languages = [o_defs objectForKey:@"AppleLanguages"]; + NSEnumerator * o_enumerator = [o_languages objectEnumerator]; + NSString * o_lang; + + while ( (o_lang = [o_enumerator nextObject]) ) + { + const char * psz_string = [o_lang lossyCString]; if ( FindLanguage( psz_string ) ) { break; } } + + [o_pool release]; } } @@ -151,14 +120,6 @@ void system_Configure( vlc_t *p_this ) *****************************************************************************/ void system_End( vlc_t *p_this ) { - free( psz_program_path ); -} - -/***************************************************************************** - * system_GetProgramPath: get the full path to the program. - *****************************************************************************/ -char * system_GetProgramPath( void ) -{ - return( psz_program_path ); + free( p_this->p_libvlc->psz_vlcpath ); }