From 5f2dd73ec8e68b0191d251ec80dc220b70624719 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Thu, 22 May 2008 22:46:11 +0300 Subject: [PATCH] Provide vlc_gettext on all platforms This avoids having to link a few plugins with libintl on platforms where it's not built-in libc. This also factors the internal use of dgettext("vlc", ...). --- include/vlc_common.h | 3 ++- include/vlc_fixups.h | 8 ++------ src/extras/libc.c | 22 +++++++++++++--------- src/libvlccore.sym | 1 + 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/include/vlc_common.h b/include/vlc_common.h index 7f53265c39..37c46a2e03 100644 --- a/include/vlc_common.h +++ b/include/vlc_common.h @@ -889,8 +889,9 @@ VLC_EXPORT( void *, vlc_memset, ( void *, int, size_t ) ); * I18n stuff *****************************************************************************/ #ifdef WIN32 - VLC_EXPORT( char *, vlc_dgettext, ( const char *package, const char *msgid ) ); +VLC_EXPORT( char *, vlc_dgettext, ( const char *package, const char *msgid ) ); #endif +VLC_EXPORT( char *, vlc_gettext, ( const char *msgid ) ); /***************************************************************************** * libvlc features diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h index f49a4267e0..0bb3566ed5 100644 --- a/include/vlc_fixups.h +++ b/include/vlc_fixups.h @@ -163,16 +163,12 @@ typedef void *locale_t; #endif /* libintl support */ -#define _(str) dgettext (PACKAGE_NAME, str) +#define _(str) vlc_gettext (str) #if defined (ENABLE_NLS) # include -# ifdef WIN32 -# undef _ -# define _(str) vlc_dgettext (PACKAGE_NAME, str) -# endif #else -# define dgettext(dom, str) (str) +# define dgettext(dom, str) ((char *)(str)) #endif #define N_(str) gettext_noop (str) diff --git a/src/extras/libc.c b/src/extras/libc.c index 9d554ca8b6..38c930cafe 100644 --- a/src/extras/libc.c +++ b/src/extras/libc.c @@ -607,21 +607,25 @@ int vlc_scandir( const char *name, struct dirent ***namelist, } #endif -#ifdef WIN32 -/***************************************************************************** - * dgettext: gettext for plugins. - *****************************************************************************/ +#if defined (WIN32) +/** + * gettext callbacks for plugins. + * LibVLC links libintl statically on Windows. + */ char *vlc_dgettext( const char *package, const char *msgid ) { -#if defined( ENABLE_NLS ) \ - && ( defined(HAVE_GETTEXT) || defined(HAVE_INCLUDED_GETTEXT) ) return dgettext( package, msgid ); -#else - return (char *)msgid; -#endif } #endif +/** + * In-tree plugins share their gettext domain with LibVLC. + */ +char *vlc_gettext( const char *msgid ) +{ + return dgettext( PACKAGE_NAME, msgid ); +} + /***************************************************************************** * count_utf8_string: returns the number of characters in the string. *****************************************************************************/ diff --git a/src/libvlccore.sym b/src/libvlccore.sym index 222f008237..3499307393 100644 --- a/src/libvlccore.sym +++ b/src/libvlccore.sym @@ -404,6 +404,7 @@ vlc_gai_strerror vlc_getaddrinfo vlc_getenv vlc_getnameinfo +vlc_gettext vlc_iconv vlc_iconv_close vlc_iconv_open -- 2.39.2