]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
Fix dllexport mess on MSVC.
authorBruno Haible <bruno@clisp.org>
Fri, 4 Apr 2003 10:44:55 +0000 (10:44 +0000)
committerBruno Haible <bruno@clisp.org>
Tue, 23 Jun 2009 10:10:21 +0000 (12:10 +0200)
gettext-runtime/intl/ChangeLog
gettext-runtime/intl/gettextP.h
gettext-runtime/intl/intl-compat.c

index 629b29bf6dc5056f94e60b2335e2d6868aec367d..b71af67c7ce927f31338fcf4c08aafe59e73529c 100644 (file)
@@ -1,3 +1,12 @@
+2003-04-04  Bruno Haible  <bruno@clisp.org>
+
+       * 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  <bruno@clisp.org>
 
        * libgnuintl.h.in (libintl_set_relocation_prefix): Convert extern
index f085c59bb963e95d1ca7f21cc5907bb233a6a4a6..f1748a3567cbc92604eafe1d8b0a7edddac982e3 100644 (file)
@@ -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 <drepper@cygnus.com>, 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 @@ */
index 129c60e5b449052fa4bb653ad16a00383795b507..36b7af0f83ba45a509229861895232cde048426d 100644 (file)
@@ -21,8 +21,6 @@
 # include <config.h>
 #endif
 
-#define _INTL_REDIRECT_MACROS
-#include "libgnuintl.h"
 #include "gettextP.h"
 
 /* @@ end of prolog @@ */
 #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;