free(cfg->dvr_charset);
free(cfg->dvr_charset_id);
- s = charset ? charset : "ASCII";
+ s = charset ? charset : intlconv_filesystem_charset();
id = intlconv_charset_id(s, 1, 1);
cfg->dvr_charset = strdup(s);
cfg->dvr_charset_id = id ? strdup(id) : NULL;
pthread_mutex_unlock(&intlconv_lock);
}
+const char *
+intlconv_filesystem_charset( void )
+{
+ char *s = getenv("LANG");
+ if (s && strstr(s, ".utf8"))
+ return NULL;
+ /* be safe here */
+ return "ASCII";
+}
+
static int
intlconv_cmp ( intlconv_cache_t *a, intlconv_cache_t *b )
{
void intlconv_init( void );
void intlconv_done( void );
+const char *
+intlconv_filesystem_charset( void );
char *
intlconv_charset_id( const char *charset,
int transil,