# HG changeset patch # User reimar # Date 1141821948 0 # Node ID 0d7cc103ed1edf5ca1e12561ba52cd893c27f84c # Parent af02066c07061ae56793b7e00f4f6cc02dbb7233 Automaticall convert message to console charset, use utf8 for GTK2 Gui diff -r af02066c0706 -r 0d7cc103ed1e Gui/mplayer/widgets.c --- a/Gui/mplayer/widgets.c Wed Mar 08 12:37:10 2006 +0000 +++ b/Gui/mplayer/widgets.c Wed Mar 08 12:45:48 2006 +0000 @@ -61,7 +61,6 @@ void gtkInit( void ) { mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[widget] init GTK ...\n" ); - gtk_set_locale(); gtk_init( 0,NULL ); // gdk_set_use_xshm( TRUE ); diff -r af02066c0706 -r 0d7cc103ed1e cfg-common.h --- a/cfg-common.h Wed Mar 08 12:37:10 2006 +0000 +++ b/cfg-common.h Wed Mar 08 12:45:48 2006 +0000 @@ -6,6 +6,9 @@ {"really-quiet", &verbose, CONF_TYPE_FLAG, CONF_GLOBAL, 0, -10, NULL}, {"v", cfg_inc_verbose, CONF_TYPE_FUNC, CONF_GLOBAL|CONF_NOSAVE, 0, 0, NULL}, {"msglevel", msgl_config, CONF_TYPE_SUBCONFIG, CONF_GLOBAL, 0, 0, NULL}, +#ifdef USE_ICONV + {"msgcharset", &mp_msg_charset, CONF_TYPE_STRING, CONF_GLOBAL, 0, 0, NULL}, +#endif {"include", cfg_include, CONF_TYPE_FUNC_PARAM, CONF_NOSAVE, 0, 0, NULL}, #ifdef WIN32 {"priority", &proc_priority, CONF_TYPE_STRING, 0, 0, 0, NULL}, @@ -302,6 +305,7 @@ extern int quiet; extern int verbose; +extern char *mp_msg_charset; // codec/filter opts: (defined at libmpcodecs/vd.c) extern float screen_size_xy; diff -r af02066c0706 -r 0d7cc103ed1e configure --- a/configure Wed Mar 08 12:37:10 2006 +0000 +++ b/configure Wed Mar 08 12:45:48 2006 +0000 @@ -6958,6 +6958,20 @@ fi # --------------- GUI specific tests end ------------------- +if test "$_charset" = "noconv" ; then + _charset="" +elif test -z "$_charset" ; then + if test "$_gtk1" = yes ; then + _charset=`cat ${_mp_help}.charset` + else + _charset=utf8 + fi +fi +if test "$_charset" ; then + _def_charset="#define MSG_CHARSET \"$_charset\"" +else + _def_charset="#undef MSG_CHARSET" +fi ############################################################################# @@ -7404,6 +7418,9 @@ /* use GNU internationalization */ $_def_i18n +/* name of messages charset */ +$_def_charset + /* Runtime CPU detection */ $_def_runtime_cpudetection diff -r af02066c0706 -r 0d7cc103ed1e mp_msg.c --- a/mp_msg.c Wed Mar 08 12:37:10 2006 +0000 +++ b/mp_msg.c Wed Mar 08 12:45:48 2006 +0000 @@ -7,6 +7,14 @@ #include "config.h" +#ifdef USE_LANGINFO +#include +#include +#endif +#ifdef USE_ICONV +#include +#endif + #if defined(FOR_MENCODER) || defined(CODECS2HTML) #undef HAVE_NEW_GUI #endif @@ -23,6 +31,11 @@ int mp_msg_levels[MSGT_MAX]; // verbose level of this module. inited to -2 int mp_msg_level_all = MSGL_STATUS; int verbose = 0; +#ifdef USE_ICONV +char *mp_msg_charset = NULL; +static char *old_charset = NULL; +static iconv_t msgiconv; +#endif void mp_msg_init(void){ int i; @@ -43,6 +56,16 @@ #endif #endif for(i=0;i