From: Bruno Haible Date: Fri, 4 Apr 2003 10:44:55 +0000 (+0000) Subject: Fix dllexport mess on MSVC. X-Git-Tag: v0.12~101 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aebb5d75bd89da68bcd0e027a1123406d7ed0e25;p=thirdparty%2Fgettext.git Fix dllexport mess on MSVC. --- diff --git a/gettext-runtime/intl/ChangeLog b/gettext-runtime/intl/ChangeLog index 629b29bf6..b71af67c7 100644 --- a/gettext-runtime/intl/ChangeLog +++ b/gettext-runtime/intl/ChangeLog @@ -1,3 +1,12 @@ +2003-04-04 Bruno Haible + + * gettextP.h [!_LIBC]: Remove declarations of exported libintl_* + functions; include libgnuintl.h instead. + * intl-compat.c: Remove include of libgnuintl.h. + (DLL_EXPORTED): New macro. + (gettext, dgettext, dcgettext, ngettext, dngettext, dcngettext, + textdomain, bindtextdomain, bind_textdomain_codeset): Use it. + 2003-04-04 Bruno Haible * libgnuintl.h.in (libintl_set_relocation_prefix): Convert extern diff --git a/gettext-runtime/intl/gettextP.h b/gettext-runtime/intl/gettextP.h index f085c59bb..f1748a356 100644 --- a/gettext-runtime/intl/gettextP.h +++ b/gettext-runtime/intl/gettextP.h @@ -1,5 +1,5 @@ /* Header describing internals of libintl library. - Copyright (C) 1995-1999, 2000-2002 Free Software Foundation, Inc. + Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc. Written by Ulrich Drepper , 1995. This program is free software; you can redistribute it and/or modify it @@ -208,33 +208,15 @@ extern char *__bindtextdomain PARAMS ((const char *__domainname, extern char *__bind_textdomain_codeset PARAMS ((const char *__domainname, const char *__codeset)); #else -extern char *libintl_gettext PARAMS ((const char *__msgid)); -extern char *libintl_dgettext PARAMS ((const char *__domainname, - const char *__msgid)); -extern char *libintl_dcgettext PARAMS ((const char *__domainname, - const char *__msgid, int __category)); -extern char *libintl_ngettext PARAMS ((const char *__msgid1, - const char *__msgid2, - unsigned long int __n)); -extern char *libintl_dngettext PARAMS ((const char *__domainname, - const char *__msgid1, - const char *__msgid2, - unsigned long int __n)); -extern char *libintl_dcngettext PARAMS ((const char *__domainname, - const char *__msgid1, - const char *__msgid2, - unsigned long int __n, - int __category)); +/* Declare the exported libintl_* functions, in a way that allows us to + call them under their real name. */ +# define _INTL_REDIRECT_MACROS +# include "libgnuintl.h" extern char *libintl_dcigettext PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2, int __plural, unsigned long int __n, int __category)); -extern char *libintl_textdomain PARAMS ((const char *__domainname)); -extern char *libintl_bindtextdomain PARAMS ((const char *__domainname, - const char *__dirname)); -extern char *libintl_bind_textdomain_codeset PARAMS ((const char *__domainname, - const char *__codeset)); #endif /* @@ begin of epilog @@ */ diff --git a/gettext-runtime/intl/intl-compat.c b/gettext-runtime/intl/intl-compat.c index 129c60e5b..36b7af0f8 100644 --- a/gettext-runtime/intl/intl-compat.c +++ b/gettext-runtime/intl/intl-compat.c @@ -21,8 +21,6 @@ # include #endif -#define _INTL_REDIRECT_MACROS -#include "libgnuintl.h" #include "gettextP.h" /* @@ end of prolog @@ */ @@ -48,6 +46,17 @@ #undef bind_textdomain_codeset +/* When building a DLL, we must export some functions. Note that because + the functions are only defined for binary backward compatibility, we + don't need to use __declspec(dllimport) in any case. */ +#if defined _MSC_VER && BUILDING_DLL +# define DLL_EXPORTED __declspec(dllexport) +#else +# define DLL_EXPORTED +#endif + + +DLL_EXPORTED char * gettext (msgid) const char *msgid; @@ -56,6 +65,7 @@ gettext (msgid) } +DLL_EXPORTED char * dgettext (domainname, msgid) const char *domainname; @@ -65,6 +75,7 @@ dgettext (domainname, msgid) } +DLL_EXPORTED char * dcgettext (domainname, msgid, category) const char *domainname; @@ -75,6 +86,7 @@ dcgettext (domainname, msgid, category) } +DLL_EXPORTED char * ngettext (msgid1, msgid2, n) const char *msgid1; @@ -85,6 +97,7 @@ ngettext (msgid1, msgid2, n) } +DLL_EXPORTED char * dngettext (domainname, msgid1, msgid2, n) const char *domainname; @@ -96,6 +109,7 @@ dngettext (domainname, msgid1, msgid2, n) } +DLL_EXPORTED char * dcngettext (domainname, msgid1, msgid2, n, category) const char *domainname; @@ -108,6 +122,7 @@ dcngettext (domainname, msgid1, msgid2, n, category) } +DLL_EXPORTED char * textdomain (domainname) const char *domainname; @@ -116,6 +131,7 @@ textdomain (domainname) } +DLL_EXPORTED char * bindtextdomain (domainname, dirname) const char *domainname; @@ -125,6 +141,7 @@ bindtextdomain (domainname, dirname) } +DLL_EXPORTED char * bind_textdomain_codeset (domainname, codeset) const char *domainname;