--- /dev/null
+This is the modified GNU libintl used by Subversion on Win32. It is\r
+based on the gettext-0.14.4 sources provided by the GnuWin32\r
+project. The file diff-0.14.4.txt shows the changes that were made to\r
+build this library.\r
+\r
--- /dev/null
+diff -ur gettext-0.14.1-src\gettext-runtime/config.h.msvc svn-gettext-runtime/config.h.msvc\r
+--- gettext-0.14.1-src\gettext-runtime/config.h.msvc 2004-01-29 18:17:46.000000000 +0100\r
++++ svn-gettext-runtime/config.h.msvc 2005-02-15 10:55:59.615625000 +0100\r
+@@ -152,7 +152,7 @@\r
+ #undef HAVE_GETUID\r
+ \r
+ /* Define if you have the iconv() function. */\r
+-#define HAVE_ICONV 1\r
++#undef HAVE_ICONV\r
+ \r
+ /* Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>. */\r
+ #undef HAVE_INTMAX_T\r
+diff -ur gettext-0.14.1-src\gettext-runtime/intl/Makefile.msvc svn-gettext-runtime/intl/Makefile.msvc\r
+--- gettext-0.14.1-src\gettext-runtime/intl/Makefile.msvc 2003-06-19 16:32:00.000000000 +0200\r
++++ svn-gettext-runtime/intl/Makefile.msvc 2005-02-15 10:57:29.428125000 +0100\r
+@@ -76,11 +76,11 @@\r
+ DEBUGFLAGS = -Z7\r
+ !else\r
+ # Some people prefer -O2 -G6 instead of -O1, but -O2 is not reliable in MSVC5.\r
+-OPTIMFLAGS = -D_NDEBUG -O1\r
+-DEBUGFLAGS =\r
++OPTIMFLAGS = -FD -O2 -GX -Zi\r
++DEBUGFLAGS = -Zi\r
+ !endif\r
+ \r
+-CFLAGS = $(MFLAGS) $(WARN_CFLAGS) $(OPTIMFLAGS) -DHAVE_CONFIG_H -DLOCALEDIR=\"$(IIlocaledir)\" -DLOCALE_ALIAS_PATH=\"$(IIaliaspath)\" -DIN_LIBINTL -DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(IIbindir)\" -DNO_XMALLOC -Dset_relocation_prefix=libintl_set_relocation_prefix -Drelocate=libintl_relocate -DDEPENDS_ON_LIBICONV=1\r
++CFLAGS = $(MFLAGS) $(WARN_CFLAGS) $(OPTIMFLAGS) -DHAVE_CONFIG_H -DLOCALEDIR=\"$(IIlocaledir)\" -DLOCALE_ALIAS_PATH=\"$(IIaliaspath)\" -DIN_LIBINTL -DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(IIbindir)\" -DNO_XMALLOC -Dset_relocation_prefix=libintl_set_relocation_prefix -Drelocate=libintl_relocate -DDEPENDS_ON_LIBICONV=0\r
+ \r
+ INCLUDES = -I. -I.. -I$(includedir)\r
+ \r
+@@ -103,7 +103,7 @@\r
+ \r
+ RESOURCES = intl.res\r
+ \r
+-all : intl.lib libintl.h\r
++all : intl3_svn.lib libintl.h\r
+ \r
+ libgnuintl.h :\r
+ !if !$(DLL)\r
+@@ -183,18 +183,18 @@\r
+ \r
+ !if !$(DLL)\r
+ \r
+-intl.lib : $(OBJECTS)\r
+- -$(RM) intl.lib\r
+- $(AR) $(AR_FLAGS)intl.lib $(OBJECTS)\r
++intl3_svn.lib : $(OBJECTS)\r
++ -$(RM) intl3_svn.lib\r
++ $(AR) $(AR_FLAGS)intl3_svn.lib $(OBJECTS)\r
+ \r
+ !else\r
+ \r
+ # intl.dll and intl.lib are created together.\r
+-intl.lib : $(OBJECTS) $(RESOURCES)\r
+- $(CC) $(MFLAGS) $(DEBUGFLAGS) -LD $(OBJECTS) $(libdir)\iconv.lib $(RESOURCES) -Feintl.dll\r
++intl3_svn.lib : $(OBJECTS) $(RESOURCES)\r
++ $(CC) $(MFLAGS) $(DEBUGFLAGS) -LD $(OBJECTS) $(RESOURCES) -Feintl3_svn.dll\r
+ \r
+ intl.res : $(srcdir)\..\windows\intl.rc\r
+- rc -Fo intl.res $(srcdir)\..\windows\intl.rc\r
++ rc -Fo intl.res $(srcdir)\libintl3-dll.rc\r
+ \r
+ !endif\r
+ \r
--- /dev/null
+/* Message catalogs for internationalization.\r
+ Copyright (C) 1995-1997, 2000-2004 Free Software Foundation, Inc.\r
+\r
+ This program is free software; you can redistribute it and/or modify it\r
+ under the terms of the GNU Library General Public License as published\r
+ by the Free Software Foundation; either version 2, or (at your option)\r
+ any later version.\r
+\r
+ This program is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
+ Library General Public License for more details.\r
+\r
+ You should have received a copy of the GNU Library General Public\r
+ License along with this program; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\r
+ USA. */\r
+\r
+#ifndef _LIBINTL_H\r
+#define _LIBINTL_H 1\r
+\r
+#ifdef BUILDING_LIBINTL\r
+#define LIBINTL_DLL_EXPORTED __declspec(dllexport)\r
+#else\r
+#define LIBINTL_DLL_EXPORTED __declspec(dllimport)\r
+#endif\r
+\r
+#include <locale.h>\r
+\r
+/* The LC_MESSAGES locale category is the category used by the functions\r
+ gettext() and dgettext(). It is specified in POSIX, but not in ANSI C.\r
+ On systems that don't define it, use an arbitrary value instead.\r
+ On Solaris, <locale.h> defines __LOCALE_H (or _LOCALE_H in Solaris 2.5)\r
+ then includes <libintl.h> (i.e. this file!) and then only defines\r
+ LC_MESSAGES. To avoid a redefinition warning, don't define LC_MESSAGES\r
+ in this case. */\r
+#if !defined LC_MESSAGES && !(defined __LOCALE_H || (defined _LOCALE_H && defined __sun))\r
+# define LC_MESSAGES 1729\r
+#endif\r
+\r
+/* We define an additional symbol to signal that we use the GNU\r
+ implementation of gettext. */\r
+#define __USE_GNU_GETTEXT 1\r
+\r
+/* Provide information about the supported file formats. Returns the\r
+ maximum minor revision number supported for a given major revision. */\r
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) \\r
+ ((major) == 0 || (major) == 1 ? 1 : -1)\r
+\r
+/* Resolve a platform specific conflict on DJGPP. GNU gettext takes\r
+ precedence over _conio_gettext. */\r
+#ifdef __DJGPP__\r
+# undef gettext\r
+#endif\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+\r
+/* We redirect the functions to those prefixed with "libintl_". This is\r
+ necessary, because some systems define gettext/textdomain/... in the C\r
+ library (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer).\r
+ If we used the unprefixed names, there would be cases where the\r
+ definition in the C library would override the one in the libintl.so\r
+ shared library. Recall that on ELF systems, the symbols are looked\r
+ up in the following order:\r
+ 1. in the executable,\r
+ 2. in the shared libraries specified on the link command line, in order,\r
+ 3. in the dependencies of the shared libraries specified on the link\r
+ command line,\r
+ 4. in the dlopen()ed shared libraries, in the order in which they were\r
+ dlopen()ed.\r
+ The definition in the C library would override the one in libintl.so if\r
+ either\r
+ * -lc is given on the link command line and -lintl isn't, or\r
+ * -lc is given on the link command line before -lintl, or\r
+ * libintl.so is a dependency of a dlopen()ed shared library but not\r
+ linked to the executable at link time.\r
+ Since Solaris gettext() behaves differently than GNU gettext(), this\r
+ would be unacceptable.\r
+\r
+ The redirection happens by default through macros in C, so that &gettext\r
+ is independent of the compilation unit, but through inline functions in\r
+ C++, in order not to interfere with the name mangling of class fields or\r
+ class methods called 'gettext'. */\r
+\r
+/* The user can define _INTL_REDIRECT_INLINE or _INTL_REDIRECT_MACROS.\r
+ If he doesn't, we choose the method. A third possible method is\r
+ _INTL_REDIRECT_ASM, supported only by GCC. */\r
+#if !(defined _INTL_REDIRECT_INLINE || defined _INTL_REDIRECT_MACROS)\r
+# if __GNUC__ >= 2 && !defined __APPLE_CC__ && !defined __MINGW32__ && !(__GNUC__ == 2 && defined _AIX) && (defined __STDC__ || defined __cplusplus)\r
+# define _INTL_REDIRECT_ASM\r
+# else\r
+# ifdef __cplusplus\r
+# define _INTL_REDIRECT_INLINE\r
+# else\r
+# define _INTL_REDIRECT_MACROS\r
+# endif\r
+# endif\r
+#endif\r
+/* Auxiliary macros. */\r
+#ifdef _INTL_REDIRECT_ASM\r
+# define _INTL_ASM(cname) __asm__ (_INTL_ASMNAME (__USER_LABEL_PREFIX__, #cname))\r
+# define _INTL_ASMNAME(prefix,cnamestring) _INTL_STRINGIFY (prefix) cnamestring\r
+# define _INTL_STRINGIFY(prefix) #prefix\r
+#else\r
+# define _INTL_ASM(cname)\r
+#endif\r
+\r
+/* Look up MSGID in the current default message catalog for the current\r
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default\r
+ text). */\r
+#ifdef _INTL_REDIRECT_INLINE\r
+extern LIBINTL_DLL_EXPORTED char *libintl_gettext (const char *__msgid);\r
+static inline char *gettext (const char *__msgid)\r
+{\r
+ return libintl_gettext (__msgid);\r
+}\r
+#else\r
+#ifdef _INTL_REDIRECT_MACROS\r
+# define gettext libintl_gettext\r
+#endif\r
+extern LIBINTL_DLL_EXPORTED char *gettext (const char *__msgid)\r
+ _INTL_ASM (libintl_gettext);\r
+#endif\r
+\r
+/* Look up MSGID in the DOMAINNAME message catalog for the current\r
+ LC_MESSAGES locale. */\r
+#ifdef _INTL_REDIRECT_INLINE\r
+extern LIBINTL_DLL_EXPORTED char *libintl_dgettext (const char *__domainname, const char *__msgid);\r
+static inline char *dgettext (const char *__domainname, const char *__msgid)\r
+{\r
+ return libintl_dgettext (__domainname, __msgid);\r
+}\r
+#else\r
+#ifdef _INTL_REDIRECT_MACROS\r
+# define dgettext libintl_dgettext\r
+#endif\r
+extern LIBINTL_DLL_EXPORTED char *dgettext (const char *__domainname, const char *__msgid)\r
+ _INTL_ASM (libintl_dgettext);\r
+#endif\r
+\r
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY\r
+ locale. */\r
+#ifdef _INTL_REDIRECT_INLINE\r
+extern LIBINTL_DLL_EXPORTED char *libintl_dcgettext (const char *__domainname, const char *__msgid,\r
+ int __category);\r
+static inline char *dcgettext (const char *__domainname, const char *__msgid,\r
+ int __category)\r
+{\r
+ return libintl_dcgettext (__domainname, __msgid, __category);\r
+}\r
+#else\r
+#ifdef _INTL_REDIRECT_MACROS\r
+# define dcgettext libintl_dcgettext\r
+#endif\r
+extern LIBINTL_DLL_EXPORTED char *dcgettext (const char *__domainname, const char *__msgid,\r
+ int __category)\r
+ _INTL_ASM (libintl_dcgettext);\r
+#endif\r
+\r
+\r
+/* Similar to `gettext' but select the plural form corresponding to the\r
+ number N. */\r
+#ifdef _INTL_REDIRECT_INLINE\r
+extern LIBINTL_DLL_EXPORTED char *libintl_ngettext (const char *__msgid1, const char *__msgid2,\r
+ unsigned long int __n);\r
+static inline char *ngettext (const char *__msgid1, const char *__msgid2,\r
+ unsigned long int __n)\r
+{\r
+ return libintl_ngettext (__msgid1, __msgid2, __n);\r
+}\r
+#else\r
+#ifdef _INTL_REDIRECT_MACROS\r
+# define ngettext libintl_ngettext\r
+#endif\r
+extern LIBINTL_DLL_EXPORTED char *ngettext (const char *__msgid1, const char *__msgid2,\r
+ unsigned long int __n)\r
+ _INTL_ASM (libintl_ngettext);\r
+#endif\r
+\r
+/* Similar to `dgettext' but select the plural form corresponding to the\r
+ number N. */\r
+#ifdef _INTL_REDIRECT_INLINE\r
+extern LIBINTL_DLL_EXPORTED char *libintl_dngettext (const char *__domainname, const char *__msgid1,\r
+ const char *__msgid2, unsigned long int __n);\r
+static inline char *dngettext (const char *__domainname, const char *__msgid1,\r
+ const char *__msgid2, unsigned long int __n)\r
+{\r
+ return libintl_dngettext (__domainname, __msgid1, __msgid2, __n);\r
+}\r
+#else\r
+#ifdef _INTL_REDIRECT_MACROS\r
+# define dngettext libintl_dngettext\r
+#endif\r
+extern LIBINTL_DLL_EXPORTED char *dngettext (const char *__domainname,\r
+ const char *__msgid1, const char *__msgid2,\r
+ unsigned long int __n)\r
+ _INTL_ASM (libintl_dngettext);\r
+#endif\r
+\r
+/* Similar to `dcgettext' but select the plural form corresponding to the\r
+ number N. */\r
+#ifdef _INTL_REDIRECT_INLINE\r
+extern LIBINTL_DLL_EXPORTED char *libintl_dcngettext (const char *__domainname,\r
+ const char *__msgid1, const char *__msgid2,\r
+ unsigned long int __n, int __category);\r
+static inline char *dcngettext (const char *__domainname,\r
+ const char *__msgid1, const char *__msgid2,\r
+ unsigned long int __n, int __category)\r
+{\r
+ return libintl_dcngettext (__domainname, __msgid1, __msgid2, __n, __category);\r
+}\r
+#else\r
+#ifdef _INTL_REDIRECT_MACROS\r
+# define dcngettext libintl_dcngettext\r
+#endif\r
+extern LIBINTL_DLL_EXPORTED char *dcngettext (const char *__domainname,\r
+ const char *__msgid1, const char *__msgid2,\r
+ unsigned long int __n, int __category)\r
+ _INTL_ASM (libintl_dcngettext);\r
+#endif\r
+\r
+\r
+/* Set the current default message catalog to DOMAINNAME.\r
+ If DOMAINNAME is null, return the current default.\r
+ If DOMAINNAME is "", reset to the default of "messages". */\r
+#ifdef _INTL_REDIRECT_INLINE\r
+extern LIBINTL_DLL_EXPORTED char *libintl_textdomain (const char *__domainname);\r
+static inline char *textdomain (const char *__domainname)\r
+{\r
+ return libintl_textdomain (__domainname);\r
+}\r
+#else\r
+#ifdef _INTL_REDIRECT_MACROS\r
+# define textdomain libintl_textdomain\r
+#endif\r
+extern LIBINTL_DLL_EXPORTED char *textdomain (const char *__domainname)\r
+ _INTL_ASM (libintl_textdomain);\r
+#endif\r
+\r
+/* Specify that the DOMAINNAME message catalog will be found\r
+ in DIRNAME rather than in the system locale data base. */\r
+#ifdef _INTL_REDIRECT_INLINE\r
+extern LIBINTL_DLL_EXPORTED char *libintl_bindtextdomain (const char *__domainname,\r
+ const char *__dirname);\r
+static inline char *bindtextdomain (const char *__domainname,\r
+ const char *__dirname)\r
+{\r
+ return libintl_bindtextdomain (__domainname, __dirname);\r
+}\r
+#else\r
+#ifdef _INTL_REDIRECT_MACROS\r
+# define bindtextdomain libintl_bindtextdomain\r
+#endif\r
+extern LIBINTL_DLL_EXPORTED char *bindtextdomain (const char *__domainname, const char *__dirname)\r
+ _INTL_ASM (libintl_bindtextdomain);\r
+#endif\r
+\r
+/* Specify the character encoding in which the messages from the\r
+ DOMAINNAME message catalog will be returned. */\r
+#ifdef _INTL_REDIRECT_INLINE\r
+extern LIBINTL_DLL_EXPORTED char *libintl_bind_textdomain_codeset (const char *__domainname,\r
+ const char *__codeset);\r
+static inline char *bind_textdomain_codeset (const char *__domainname,\r
+ const char *__codeset)\r
+{\r
+ return libintl_bind_textdomain_codeset (__domainname, __codeset);\r
+}\r
+#else\r
+#ifdef _INTL_REDIRECT_MACROS\r
+# define bind_textdomain_codeset libintl_bind_textdomain_codeset\r
+#endif\r
+extern LIBINTL_DLL_EXPORTED char *bind_textdomain_codeset (const char *__domainname,\r
+ const char *__codeset)\r
+ _INTL_ASM (libintl_bind_textdomain_codeset);\r
+#endif\r
+\r
+\r
+/* Support for format strings with positions in *printf(), following the\r
+ POSIX/XSI specification.\r
+ Note: These replacements for the *printf() functions are visible only\r
+ in source files that #include <libintl.h> or #include "gettext.h".\r
+ Packages that use *printf() in source files that don't refer to _()\r
+ or gettext() but for which the format string could be the return value\r
+ of _() or gettext() need to add this #include. Oh well. */\r
+\r
+#if !0\r
+\r
+#include <stdio.h>\r
+#include <stddef.h>\r
+\r
+/* Get va_list. */\r
+#if __STDC__ || defined __cplusplus || defined _MSC_VER\r
+# include <stdarg.h>\r
+#else\r
+# include <varargs.h>\r
+#endif\r
+\r
+#undef fprintf\r
+#define fprintf libintl_fprintf\r
+extern LIBINTL_DLL_EXPORTED int fprintf (FILE *, const char *, ...);\r
+#undef vfprintf\r
+#define vfprintf libintl_vfprintf\r
+extern LIBINTL_DLL_EXPORTED int vfprintf (FILE *, const char *, va_list);\r
+\r
+#undef printf\r
+#define printf libintl_printf\r
+extern LIBINTL_DLL_EXPORTED int printf (const char *, ...);\r
+#undef vprintf\r
+#define vprintf libintl_vprintf\r
+extern LIBINTL_DLL_EXPORTED int vprintf (const char *, va_list);\r
+\r
+#undef sprintf\r
+#define sprintf libintl_sprintf\r
+extern LIBINTL_DLL_EXPORTED int sprintf (char *, const char *, ...);\r
+#undef vsprintf\r
+#define vsprintf libintl_vsprintf\r
+extern LIBINTL_DLL_EXPORTED int vsprintf (char *, const char *, va_list);\r
+\r
+#if 0\r
+\r
+#undef snprintf\r
+#define snprintf libintl_snprintf\r
+extern LIBINTL_DLL_EXPORTED int snprintf (char *, size_t, const char *, ...);\r
+#undef vsnprintf\r
+#define vsnprintf libintl_vsnprintf\r
+extern LIBINTL_DLL_EXPORTED int vsnprintf (char *, size_t, const char *, va_list);\r
+\r
+#endif\r
+\r
+#if 0\r
+\r
+#undef asprintf\r
+#define asprintf libintl_asprintf\r
+extern LIBINTL_DLL_EXPORTED int asprintf (char **, const char *, ...);\r
+#undef vasprintf\r
+#define vasprintf libintl_vasprintf\r
+extern LIBINTL_DLL_EXPORTED int vasprintf (char **, const char *, va_list);\r
+\r
+#endif\r
+\r
+#if 1\r
+\r
+#undef fwprintf\r
+#define fwprintf libintl_fwprintf\r
+extern LIBINTL_DLL_EXPORTED int fwprintf (FILE *, const wchar_t *, ...);\r
+#undef vfwprintf\r
+#define vfwprintf libintl_vfwprintf\r
+extern LIBINTL_DLL_EXPORTED int vfwprintf (FILE *, const wchar_t *, va_list);\r
+\r
+#undef wprintf\r
+#define wprintf libintl_wprintf\r
+extern LIBINTL_DLL_EXPORTED int wprintf (const wchar_t *, ...);\r
+#undef vwprintf\r
+#define vwprintf libintl_vwprintf\r
+extern LIBINTL_DLL_EXPORTED int vwprintf (const wchar_t *, va_list);\r
+\r
+#undef swprintf\r
+#define swprintf libintl_swprintf\r
+extern LIBINTL_DLL_EXPORTED int swprintf (wchar_t *, size_t, const wchar_t *, ...);\r
+#undef vswprintf\r
+#define vswprintf libintl_vswprintf\r
+extern LIBINTL_DLL_EXPORTED int vswprintf (wchar_t *, size_t, const wchar_t *, va_list);\r
+\r
+#endif\r
+\r
+#endif\r
+\r
+\r
+/* Support for relocatable packages. */\r
+\r
+/* Sets the original and the current installation prefix of the package.\r
+ Relocation simply replaces a pathname starting with the original prefix\r
+ by the corresponding pathname with the current prefix instead. Both\r
+ prefixes should be directory names without trailing slash (i.e. use ""\r
+ instead of "/"). */\r
+#define libintl_set_relocation_prefix libintl_set_relocation_prefix\r
+extern LIBINTL_DLL_EXPORTED void\r
+ libintl_set_relocation_prefix (const char *orig_prefix,\r
+ const char *curr_prefix);\r
+\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif /* libintl.h */\r
--- /dev/null
+/* Message catalogs for internationalization.\r
+ Copyright (C) 1995-1997, 2000-2004 Free Software Foundation, Inc.\r
+\r
+ This program is free software; you can redistribute it and/or modify it\r
+ under the terms of the GNU Library General Public License as published\r
+ by the Free Software Foundation; either version 2, or (at your option)\r
+ any later version.\r
+\r
+ This program is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
+ Library General Public License for more details.\r
+\r
+ You should have received a copy of the GNU Library General Public\r
+ License along with this program; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\r
+ USA. */\r
+\r
+#ifndef _LIBINTL_H\r
+#define _LIBINTL_H 1\r
+\r
+#ifdef BUILDING_LIBINTL\r
+#define LIBINTL_DLL_EXPORTED __declspec(dllexport)\r
+#else\r
+#define LIBINTL_DLL_EXPORTED __declspec(dllimport)\r
+#endif\r
+\r
+#include <locale.h>\r
+\r
+/* The LC_MESSAGES locale category is the category used by the functions\r
+ gettext() and dgettext(). It is specified in POSIX, but not in ANSI C.\r
+ On systems that don't define it, use an arbitrary value instead.\r
+ On Solaris, <locale.h> defines __LOCALE_H (or _LOCALE_H in Solaris 2.5)\r
+ then includes <libintl.h> (i.e. this file!) and then only defines\r
+ LC_MESSAGES. To avoid a redefinition warning, don't define LC_MESSAGES\r
+ in this case. */\r
+#if !defined LC_MESSAGES && !(defined __LOCALE_H || (defined _LOCALE_H && defined __sun))\r
+# define LC_MESSAGES 1729\r
+#endif\r
+\r
+/* We define an additional symbol to signal that we use the GNU\r
+ implementation of gettext. */\r
+#define __USE_GNU_GETTEXT 1\r
+\r
+/* Provide information about the supported file formats. Returns the\r
+ maximum minor revision number supported for a given major revision. */\r
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) \\r
+ ((major) == 0 || (major) == 1 ? 1 : -1)\r
+\r
+/* Resolve a platform specific conflict on DJGPP. GNU gettext takes\r
+ precedence over _conio_gettext. */\r
+#ifdef __DJGPP__\r
+# undef gettext\r
+#endif\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+\r
+/* We redirect the functions to those prefixed with "libintl_". This is\r
+ necessary, because some systems define gettext/textdomain/... in the C\r
+ library (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer).\r
+ If we used the unprefixed names, there would be cases where the\r
+ definition in the C library would override the one in the libintl.so\r
+ shared library. Recall that on ELF systems, the symbols are looked\r
+ up in the following order:\r
+ 1. in the executable,\r
+ 2. in the shared libraries specified on the link command line, in order,\r
+ 3. in the dependencies of the shared libraries specified on the link\r
+ command line,\r
+ 4. in the dlopen()ed shared libraries, in the order in which they were\r
+ dlopen()ed.\r
+ The definition in the C library would override the one in libintl.so if\r
+ either\r
+ * -lc is given on the link command line and -lintl isn't, or\r
+ * -lc is given on the link command line before -lintl, or\r
+ * libintl.so is a dependency of a dlopen()ed shared library but not\r
+ linked to the executable at link time.\r
+ Since Solaris gettext() behaves differently than GNU gettext(), this\r
+ would be unacceptable.\r
+\r
+ The redirection happens by default through macros in C, so that &gettext\r
+ is independent of the compilation unit, but through inline functions in\r
+ C++, in order not to interfere with the name mangling of class fields or\r
+ class methods called 'gettext'. */\r
+\r
+/* The user can define _INTL_REDIRECT_INLINE or _INTL_REDIRECT_MACROS.\r
+ If he doesn't, we choose the method. A third possible method is\r
+ _INTL_REDIRECT_ASM, supported only by GCC. */\r
+#if !(defined _INTL_REDIRECT_INLINE || defined _INTL_REDIRECT_MACROS)\r
+# if __GNUC__ >= 2 && !defined __APPLE_CC__ && !defined __MINGW32__ && !(__GNUC__ == 2 && defined _AIX) && (defined __STDC__ || defined __cplusplus)\r
+# define _INTL_REDIRECT_ASM\r
+# else\r
+# ifdef __cplusplus\r
+# define _INTL_REDIRECT_INLINE\r
+# else\r
+# define _INTL_REDIRECT_MACROS\r
+# endif\r
+# endif\r
+#endif\r
+/* Auxiliary macros. */\r
+#ifdef _INTL_REDIRECT_ASM\r
+# define _INTL_ASM(cname) __asm__ (_INTL_ASMNAME (__USER_LABEL_PREFIX__, #cname))\r
+# define _INTL_ASMNAME(prefix,cnamestring) _INTL_STRINGIFY (prefix) cnamestring\r
+# define _INTL_STRINGIFY(prefix) #prefix\r
+#else\r
+# define _INTL_ASM(cname)\r
+#endif\r
+\r
+/* Look up MSGID in the current default message catalog for the current\r
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default\r
+ text). */\r
+#ifdef _INTL_REDIRECT_INLINE\r
+extern LIBINTL_DLL_EXPORTED char *libintl_gettext (const char *__msgid);\r
+static inline char *gettext (const char *__msgid)\r
+{\r
+ return libintl_gettext (__msgid);\r
+}\r
+#else\r
+#ifdef _INTL_REDIRECT_MACROS\r
+# define gettext libintl_gettext\r
+#endif\r
+extern LIBINTL_DLL_EXPORTED char *gettext (const char *__msgid)\r
+ _INTL_ASM (libintl_gettext);\r
+#endif\r
+\r
+/* Look up MSGID in the DOMAINNAME message catalog for the current\r
+ LC_MESSAGES locale. */\r
+#ifdef _INTL_REDIRECT_INLINE\r
+extern LIBINTL_DLL_EXPORTED char *libintl_dgettext (const char *__domainname, const char *__msgid);\r
+static inline char *dgettext (const char *__domainname, const char *__msgid)\r
+{\r
+ return libintl_dgettext (__domainname, __msgid);\r
+}\r
+#else\r
+#ifdef _INTL_REDIRECT_MACROS\r
+# define dgettext libintl_dgettext\r
+#endif\r
+extern LIBINTL_DLL_EXPORTED char *dgettext (const char *__domainname, const char *__msgid)\r
+ _INTL_ASM (libintl_dgettext);\r
+#endif\r
+\r
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY\r
+ locale. */\r
+#ifdef _INTL_REDIRECT_INLINE\r
+extern LIBINTL_DLL_EXPORTED char *libintl_dcgettext (const char *__domainname, const char *__msgid,\r
+ int __category);\r
+static inline char *dcgettext (const char *__domainname, const char *__msgid,\r
+ int __category)\r
+{\r
+ return libintl_dcgettext (__domainname, __msgid, __category);\r
+}\r
+#else\r
+#ifdef _INTL_REDIRECT_MACROS\r
+# define dcgettext libintl_dcgettext\r
+#endif\r
+extern LIBINTL_DLL_EXPORTED char *dcgettext (const char *__domainname, const char *__msgid,\r
+ int __category)\r
+ _INTL_ASM (libintl_dcgettext);\r
+#endif\r
+\r
+\r
+/* Similar to `gettext' but select the plural form corresponding to the\r
+ number N. */\r
+#ifdef _INTL_REDIRECT_INLINE\r
+extern LIBINTL_DLL_EXPORTED char *libintl_ngettext (const char *__msgid1, const char *__msgid2,\r
+ unsigned long int __n);\r
+static inline char *ngettext (const char *__msgid1, const char *__msgid2,\r
+ unsigned long int __n)\r
+{\r
+ return libintl_ngettext (__msgid1, __msgid2, __n);\r
+}\r
+#else\r
+#ifdef _INTL_REDIRECT_MACROS\r
+# define ngettext libintl_ngettext\r
+#endif\r
+extern LIBINTL_DLL_EXPORTED char *ngettext (const char *__msgid1, const char *__msgid2,\r
+ unsigned long int __n)\r
+ _INTL_ASM (libintl_ngettext);\r
+#endif\r
+\r
+/* Similar to `dgettext' but select the plural form corresponding to the\r
+ number N. */\r
+#ifdef _INTL_REDIRECT_INLINE\r
+extern LIBINTL_DLL_EXPORTED char *libintl_dngettext (const char *__domainname, const char *__msgid1,\r
+ const char *__msgid2, unsigned long int __n);\r
+static inline char *dngettext (const char *__domainname, const char *__msgid1,\r
+ const char *__msgid2, unsigned long int __n)\r
+{\r
+ return libintl_dngettext (__domainname, __msgid1, __msgid2, __n);\r
+}\r
+#else\r
+#ifdef _INTL_REDIRECT_MACROS\r
+# define dngettext libintl_dngettext\r
+#endif\r
+extern LIBINTL_DLL_EXPORTED char *dngettext (const char *__domainname,\r
+ const char *__msgid1, const char *__msgid2,\r
+ unsigned long int __n)\r
+ _INTL_ASM (libintl_dngettext);\r
+#endif\r
+\r
+/* Similar to `dcgettext' but select the plural form corresponding to the\r
+ number N. */\r
+#ifdef _INTL_REDIRECT_INLINE\r
+extern LIBINTL_DLL_EXPORTED char *libintl_dcngettext (const char *__domainname,\r
+ const char *__msgid1, const char *__msgid2,\r
+ unsigned long int __n, int __category);\r
+static inline char *dcngettext (const char *__domainname,\r
+ const char *__msgid1, const char *__msgid2,\r
+ unsigned long int __n, int __category)\r
+{\r
+ return libintl_dcngettext (__domainname, __msgid1, __msgid2, __n, __category);\r
+}\r
+#else\r
+#ifdef _INTL_REDIRECT_MACROS\r
+# define dcngettext libintl_dcngettext\r
+#endif\r
+extern LIBINTL_DLL_EXPORTED char *dcngettext (const char *__domainname,\r
+ const char *__msgid1, const char *__msgid2,\r
+ unsigned long int __n, int __category)\r
+ _INTL_ASM (libintl_dcngettext);\r
+#endif\r
+\r
+\r
+/* Set the current default message catalog to DOMAINNAME.\r
+ If DOMAINNAME is null, return the current default.\r
+ If DOMAINNAME is "", reset to the default of "messages". */\r
+#ifdef _INTL_REDIRECT_INLINE\r
+extern LIBINTL_DLL_EXPORTED char *libintl_textdomain (const char *__domainname);\r
+static inline char *textdomain (const char *__domainname)\r
+{\r
+ return libintl_textdomain (__domainname);\r
+}\r
+#else\r
+#ifdef _INTL_REDIRECT_MACROS\r
+# define textdomain libintl_textdomain\r
+#endif\r
+extern LIBINTL_DLL_EXPORTED char *textdomain (const char *__domainname)\r
+ _INTL_ASM (libintl_textdomain);\r
+#endif\r
+\r
+/* Specify that the DOMAINNAME message catalog will be found\r
+ in DIRNAME rather than in the system locale data base. */\r
+#ifdef _INTL_REDIRECT_INLINE\r
+extern LIBINTL_DLL_EXPORTED char *libintl_bindtextdomain (const char *__domainname,\r
+ const char *__dirname);\r
+static inline char *bindtextdomain (const char *__domainname,\r
+ const char *__dirname)\r
+{\r
+ return libintl_bindtextdomain (__domainname, __dirname);\r
+}\r
+#else\r
+#ifdef _INTL_REDIRECT_MACROS\r
+# define bindtextdomain libintl_bindtextdomain\r
+#endif\r
+extern LIBINTL_DLL_EXPORTED char *bindtextdomain (const char *__domainname, const char *__dirname)\r
+ _INTL_ASM (libintl_bindtextdomain);\r
+#endif\r
+\r
+/* Specify the character encoding in which the messages from the\r
+ DOMAINNAME message catalog will be returned. */\r
+#ifdef _INTL_REDIRECT_INLINE\r
+extern LIBINTL_DLL_EXPORTED char *libintl_bind_textdomain_codeset (const char *__domainname,\r
+ const char *__codeset);\r
+static inline char *bind_textdomain_codeset (const char *__domainname,\r
+ const char *__codeset)\r
+{\r
+ return libintl_bind_textdomain_codeset (__domainname, __codeset);\r
+}\r
+#else\r
+#ifdef _INTL_REDIRECT_MACROS\r
+# define bind_textdomain_codeset libintl_bind_textdomain_codeset\r
+#endif\r
+extern LIBINTL_DLL_EXPORTED char *bind_textdomain_codeset (const char *__domainname,\r
+ const char *__codeset)\r
+ _INTL_ASM (libintl_bind_textdomain_codeset);\r
+#endif\r
+\r
+\r
+/* Support for format strings with positions in *printf(), following the\r
+ POSIX/XSI specification.\r
+ Note: These replacements for the *printf() functions are visible only\r
+ in source files that #include <libintl.h> or #include "gettext.h".\r
+ Packages that use *printf() in source files that don't refer to _()\r
+ or gettext() but for which the format string could be the return value\r
+ of _() or gettext() need to add this #include. Oh well. */\r
+\r
+#if !0\r
+\r
+#include <stdio.h>\r
+#include <stddef.h>\r
+\r
+/* Get va_list. */\r
+#if __STDC__ || defined __cplusplus || defined _MSC_VER\r
+# include <stdarg.h>\r
+#else\r
+# include <varargs.h>\r
+#endif\r
+\r
+#undef fprintf\r
+#define fprintf libintl_fprintf\r
+extern LIBINTL_DLL_EXPORTED int fprintf (FILE *, const char *, ...);\r
+#undef vfprintf\r
+#define vfprintf libintl_vfprintf\r
+extern LIBINTL_DLL_EXPORTED int vfprintf (FILE *, const char *, va_list);\r
+\r
+#undef printf\r
+#define printf libintl_printf\r
+extern LIBINTL_DLL_EXPORTED int printf (const char *, ...);\r
+#undef vprintf\r
+#define vprintf libintl_vprintf\r
+extern LIBINTL_DLL_EXPORTED int vprintf (const char *, va_list);\r
+\r
+#undef sprintf\r
+#define sprintf libintl_sprintf\r
+extern LIBINTL_DLL_EXPORTED int sprintf (char *, const char *, ...);\r
+#undef vsprintf\r
+#define vsprintf libintl_vsprintf\r
+extern LIBINTL_DLL_EXPORTED int vsprintf (char *, const char *, va_list);\r
+\r
+#if 0\r
+\r
+#undef snprintf\r
+#define snprintf libintl_snprintf\r
+extern LIBINTL_DLL_EXPORTED int snprintf (char *, size_t, const char *, ...);\r
+#undef vsnprintf\r
+#define vsnprintf libintl_vsnprintf\r
+extern LIBINTL_DLL_EXPORTED int vsnprintf (char *, size_t, const char *, va_list);\r
+\r
+#endif\r
+\r
+#if 0\r
+\r
+#undef asprintf\r
+#define asprintf libintl_asprintf\r
+extern LIBINTL_DLL_EXPORTED int asprintf (char **, const char *, ...);\r
+#undef vasprintf\r
+#define vasprintf libintl_vasprintf\r
+extern LIBINTL_DLL_EXPORTED int vasprintf (char **, const char *, va_list);\r
+\r
+#endif\r
+\r
+#if 1\r
+\r
+#undef fwprintf\r
+#define fwprintf libintl_fwprintf\r
+extern LIBINTL_DLL_EXPORTED int fwprintf (FILE *, const wchar_t *, ...);\r
+#undef vfwprintf\r
+#define vfwprintf libintl_vfwprintf\r
+extern LIBINTL_DLL_EXPORTED int vfwprintf (FILE *, const wchar_t *, va_list);\r
+\r
+#undef wprintf\r
+#define wprintf libintl_wprintf\r
+extern LIBINTL_DLL_EXPORTED int wprintf (const wchar_t *, ...);\r
+#undef vwprintf\r
+#define vwprintf libintl_vwprintf\r
+extern LIBINTL_DLL_EXPORTED int vwprintf (const wchar_t *, va_list);\r
+\r
+#undef swprintf\r
+#define swprintf libintl_swprintf\r
+extern LIBINTL_DLL_EXPORTED int swprintf (wchar_t *, size_t, const wchar_t *, ...);\r
+#undef vswprintf\r
+#define vswprintf libintl_vswprintf\r
+extern LIBINTL_DLL_EXPORTED int vswprintf (wchar_t *, size_t, const wchar_t *, va_list);\r
+\r
+#endif\r
+\r
+#endif\r
+\r
+\r
+/* Support for relocatable packages. */\r
+\r
+/* Sets the original and the current installation prefix of the package.\r
+ Relocation simply replaces a pathname starting with the original prefix\r
+ by the corresponding pathname with the current prefix instead. Both\r
+ prefixes should be directory names without trailing slash (i.e. use ""\r
+ instead of "/"). */\r
+#define libintl_set_relocation_prefix libintl_set_relocation_prefix\r
+extern LIBINTL_DLL_EXPORTED void\r
+ libintl_set_relocation_prefix (const char *orig_prefix,\r
+ const char *curr_prefix);\r
+\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif /* libintl.h */\r