]> git.sesse.net Git - vlc/blobdiff - src/misc/iso_lang.c
* i18n_strtod: locale-agnostic strtod() (accepts both comma and dot as decimal separ...
[vlc] / src / misc / iso_lang.c
index 9c844d83ebc18caa60e1d45f2b97ab90c650abf7..30c011b464050254722c3e5c3e8bec25a894fd2f 100644 (file)
@@ -1,17 +1,17 @@
 /*****************************************************************************
  * iso_lang.c: function to decode language code (in dvd or a52 for instance).
  *****************************************************************************
- * Copyright (C) 1998-2001 VideoLAN
- * $Id: iso_lang.c,v 1.8 2002/11/13 20:51:05 sam Exp $
+ * Copyright (C) 1998-2004 the VideoLAN team
+ * $Id$
  *
- * Author: Stéphane Borel <stef@via.ecp.fr>
+ * Author: Stéphane Borel <stef@via.ecp.fr>
  *         Arnaud de Bossoreille de Ribou <bozo@via.ecp.fr>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
- * 
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -19,7 +19,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
 /*****************************************************************************
 /*****************************************************************************
  * Local tables
  *****************************************************************************/
-
-#define DEFINE_LANGUAGE_CODE(engName, nativeName, iso1, iso2T, iso2B) \
-          { engName, nativeName, #iso1, #iso2T, #iso2B },
-
-static const iso639_lang_t p_languages[] =
-{
 #include "iso-639_def.h"
-    { NULL, NULL, NULL, NULL, NULL }
-};
 
 static const iso639_lang_t unknown_language =
     { "Unknown", "Unknown", "??", "???", "???" };
@@ -51,10 +43,10 @@ static const iso639_lang_t unknown_language =
  * DecodeLanguage: gives the long language name from the two-letter
  *                 ISO-639 code
  *****************************************************************************/
-const char * DecodeLanguage( u16 i_code )
+const char * DecodeLanguage( uint16_t i_code )
 {
     const iso639_lang_t * p_lang;
-    u8 psz_code[3];
+    uint8_t psz_code[3];
 
     psz_code[0] = i_code >> 8;
     psz_code[1] = i_code & 0xff;
@@ -62,18 +54,20 @@ const char * DecodeLanguage( u16 i_code )
 
     for( p_lang = p_languages; p_lang->psz_eng_name; p_lang++ )
     {
-        if( !strncmp( p_lang->psz_iso639_1, psz_code, 2 ) )
+        if( !memcmp( p_lang->psz_iso639_1, psz_code, 2 ) )
         {
+# if 0
             if( *p_lang->psz_native_name )
             {
                 return p_lang->psz_native_name;
             }
+#endif
 
-            return p_lang->psz_eng_name;
+            return _( p_lang->psz_eng_name );
         }
     }
 
-    return "Unknown";
+    return _( "Unknown" );
 }
 
 const iso639_lang_t * GetLang_1( const char * psz_code )
@@ -90,7 +84,7 @@ const iso639_lang_t * GetLang_1( const char * psz_code )
 const iso639_lang_t * GetLang_2T( const char * psz_code )
 {
     const iso639_lang_t *p_lang;
-    
+
     for( p_lang = p_languages; p_lang->psz_eng_name; p_lang++ )
         if( !strncmp( p_lang->psz_iso639_2T, psz_code, 3 ) )
             return p_lang;