From b183eb8285b4c9b2b58a560139f5b00db93d0cde Mon Sep 17 00:00:00 2001 From: Frank Li Date: Sat, 4 Apr 2009 12:23:08 +0800 Subject: [PATCH] Add libintl --- ext/libintl/README.txt | 5 + ext/libintl/diff-0.14.4.txt | 64 +++++ ext/libintl/libintl3-win32/inc/libintl.h | 389 ++++++++++++++++++++++++++ ext/libintl/libintl3-win32/lib/intl3_tsvn.exp | Bin 0 -> 3984 bytes ext/libintl/libintl3-win32/lib/intl3_tsvn.lib | Bin 0 -> 7272 bytes ext/libintl/libintl3-x64/inc/libintl.h | 389 ++++++++++++++++++++++++++ ext/libintl/libintl3-x64/lib/intl3_tsvn.exp | Bin 0 -> 3923 bytes ext/libintl/libintl3-x64/lib/intl3_tsvn.lib | Bin 0 -> 7144 bytes 8 files changed, 847 insertions(+) create mode 100644 ext/libintl/README.txt create mode 100644 ext/libintl/diff-0.14.4.txt create mode 100644 ext/libintl/libintl3-win32/inc/libintl.h create mode 100644 ext/libintl/libintl3-win32/lib/intl3_tsvn.exp create mode 100644 ext/libintl/libintl3-win32/lib/intl3_tsvn.lib create mode 100644 ext/libintl/libintl3-x64/inc/libintl.h create mode 100644 ext/libintl/libintl3-x64/lib/intl3_tsvn.exp create mode 100644 ext/libintl/libintl3-x64/lib/intl3_tsvn.lib diff --git a/ext/libintl/README.txt b/ext/libintl/README.txt new file mode 100644 index 000000000..b23613b5e --- /dev/null +++ b/ext/libintl/README.txt @@ -0,0 +1,5 @@ +This is the modified GNU libintl used by Subversion on Win32. It is +based on the gettext-0.14.4 sources provided by the GnuWin32 +project. The file diff-0.14.4.txt shows the changes that were made to +build this library. + diff --git a/ext/libintl/diff-0.14.4.txt b/ext/libintl/diff-0.14.4.txt new file mode 100644 index 000000000..976f32bb4 --- /dev/null +++ b/ext/libintl/diff-0.14.4.txt @@ -0,0 +1,64 @@ +diff -ur gettext-0.14.1-src\gettext-runtime/config.h.msvc svn-gettext-runtime/config.h.msvc +--- gettext-0.14.1-src\gettext-runtime/config.h.msvc 2004-01-29 18:17:46.000000000 +0100 ++++ svn-gettext-runtime/config.h.msvc 2005-02-15 10:55:59.615625000 +0100 +@@ -152,7 +152,7 @@ + #undef HAVE_GETUID + + /* Define if you have the iconv() function. */ +-#define HAVE_ICONV 1 ++#undef HAVE_ICONV + + /* Define if you have the 'intmax_t' type in or . */ + #undef HAVE_INTMAX_T +diff -ur gettext-0.14.1-src\gettext-runtime/intl/Makefile.msvc svn-gettext-runtime/intl/Makefile.msvc +--- gettext-0.14.1-src\gettext-runtime/intl/Makefile.msvc 2003-06-19 16:32:00.000000000 +0200 ++++ svn-gettext-runtime/intl/Makefile.msvc 2005-02-15 10:57:29.428125000 +0100 +@@ -76,11 +76,11 @@ + DEBUGFLAGS = -Z7 + !else + # Some people prefer -O2 -G6 instead of -O1, but -O2 is not reliable in MSVC5. +-OPTIMFLAGS = -D_NDEBUG -O1 +-DEBUGFLAGS = ++OPTIMFLAGS = -FD -O2 -GX -Zi ++DEBUGFLAGS = -Zi + !endif + +-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 ++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 + + INCLUDES = -I. -I.. -I$(includedir) + +@@ -103,7 +103,7 @@ + + RESOURCES = intl.res + +-all : intl.lib libintl.h ++all : intl3_svn.lib libintl.h + + libgnuintl.h : + !if !$(DLL) +@@ -183,18 +183,18 @@ + + !if !$(DLL) + +-intl.lib : $(OBJECTS) +- -$(RM) intl.lib +- $(AR) $(AR_FLAGS)intl.lib $(OBJECTS) ++intl3_svn.lib : $(OBJECTS) ++ -$(RM) intl3_svn.lib ++ $(AR) $(AR_FLAGS)intl3_svn.lib $(OBJECTS) + + !else + + # intl.dll and intl.lib are created together. +-intl.lib : $(OBJECTS) $(RESOURCES) +- $(CC) $(MFLAGS) $(DEBUGFLAGS) -LD $(OBJECTS) $(libdir)\iconv.lib $(RESOURCES) -Feintl.dll ++intl3_svn.lib : $(OBJECTS) $(RESOURCES) ++ $(CC) $(MFLAGS) $(DEBUGFLAGS) -LD $(OBJECTS) $(RESOURCES) -Feintl3_svn.dll + + intl.res : $(srcdir)\..\windows\intl.rc +- rc -Fo intl.res $(srcdir)\..\windows\intl.rc ++ rc -Fo intl.res $(srcdir)\libintl3-dll.rc + + !endif + diff --git a/ext/libintl/libintl3-win32/inc/libintl.h b/ext/libintl/libintl3-win32/inc/libintl.h new file mode 100644 index 000000000..015ff5c8a --- /dev/null +++ b/ext/libintl/libintl3-win32/inc/libintl.h @@ -0,0 +1,389 @@ +/* Message catalogs for internationalization. + Copyright (C) 1995-1997, 2000-2004 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU Library General Public License as published + by the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + USA. */ + +#ifndef _LIBINTL_H +#define _LIBINTL_H 1 + +#ifdef BUILDING_LIBINTL +#define LIBINTL_DLL_EXPORTED __declspec(dllexport) +#else +#define LIBINTL_DLL_EXPORTED __declspec(dllimport) +#endif + +#include + +/* The LC_MESSAGES locale category is the category used by the functions + gettext() and dgettext(). It is specified in POSIX, but not in ANSI C. + On systems that don't define it, use an arbitrary value instead. + On Solaris, defines __LOCALE_H (or _LOCALE_H in Solaris 2.5) + then includes (i.e. this file!) and then only defines + LC_MESSAGES. To avoid a redefinition warning, don't define LC_MESSAGES + in this case. */ +#if !defined LC_MESSAGES && !(defined __LOCALE_H || (defined _LOCALE_H && defined __sun)) +# define LC_MESSAGES 1729 +#endif + +/* We define an additional symbol to signal that we use the GNU + implementation of gettext. */ +#define __USE_GNU_GETTEXT 1 + +/* Provide information about the supported file formats. Returns the + maximum minor revision number supported for a given major revision. */ +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) \ + ((major) == 0 || (major) == 1 ? 1 : -1) + +/* Resolve a platform specific conflict on DJGPP. GNU gettext takes + precedence over _conio_gettext. */ +#ifdef __DJGPP__ +# undef gettext +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/* We redirect the functions to those prefixed with "libintl_". This is + necessary, because some systems define gettext/textdomain/... in the C + library (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer). + If we used the unprefixed names, there would be cases where the + definition in the C library would override the one in the libintl.so + shared library. Recall that on ELF systems, the symbols are looked + up in the following order: + 1. in the executable, + 2. in the shared libraries specified on the link command line, in order, + 3. in the dependencies of the shared libraries specified on the link + command line, + 4. in the dlopen()ed shared libraries, in the order in which they were + dlopen()ed. + The definition in the C library would override the one in libintl.so if + either + * -lc is given on the link command line and -lintl isn't, or + * -lc is given on the link command line before -lintl, or + * libintl.so is a dependency of a dlopen()ed shared library but not + linked to the executable at link time. + Since Solaris gettext() behaves differently than GNU gettext(), this + would be unacceptable. + + The redirection happens by default through macros in C, so that &gettext + is independent of the compilation unit, but through inline functions in + C++, in order not to interfere with the name mangling of class fields or + class methods called 'gettext'. */ + +/* The user can define _INTL_REDIRECT_INLINE or _INTL_REDIRECT_MACROS. + If he doesn't, we choose the method. A third possible method is + _INTL_REDIRECT_ASM, supported only by GCC. */ +#if !(defined _INTL_REDIRECT_INLINE || defined _INTL_REDIRECT_MACROS) +# if __GNUC__ >= 2 && !defined __APPLE_CC__ && !defined __MINGW32__ && !(__GNUC__ == 2 && defined _AIX) && (defined __STDC__ || defined __cplusplus) +# define _INTL_REDIRECT_ASM +# else +# ifdef __cplusplus +# define _INTL_REDIRECT_INLINE +# else +# define _INTL_REDIRECT_MACROS +# endif +# endif +#endif +/* Auxiliary macros. */ +#ifdef _INTL_REDIRECT_ASM +# define _INTL_ASM(cname) __asm__ (_INTL_ASMNAME (__USER_LABEL_PREFIX__, #cname)) +# define _INTL_ASMNAME(prefix,cnamestring) _INTL_STRINGIFY (prefix) cnamestring +# define _INTL_STRINGIFY(prefix) #prefix +#else +# define _INTL_ASM(cname) +#endif + +/* Look up MSGID in the current default message catalog for the current + LC_MESSAGES locale. If not found, returns MSGID itself (the default + text). */ +#ifdef _INTL_REDIRECT_INLINE +extern LIBINTL_DLL_EXPORTED char *libintl_gettext (const char *__msgid); +static inline char *gettext (const char *__msgid) +{ + return libintl_gettext (__msgid); +} +#else +#ifdef _INTL_REDIRECT_MACROS +# define gettext libintl_gettext +#endif +extern LIBINTL_DLL_EXPORTED char *gettext (const char *__msgid) + _INTL_ASM (libintl_gettext); +#endif + +/* Look up MSGID in the DOMAINNAME message catalog for the current + LC_MESSAGES locale. */ +#ifdef _INTL_REDIRECT_INLINE +extern LIBINTL_DLL_EXPORTED char *libintl_dgettext (const char *__domainname, const char *__msgid); +static inline char *dgettext (const char *__domainname, const char *__msgid) +{ + return libintl_dgettext (__domainname, __msgid); +} +#else +#ifdef _INTL_REDIRECT_MACROS +# define dgettext libintl_dgettext +#endif +extern LIBINTL_DLL_EXPORTED char *dgettext (const char *__domainname, const char *__msgid) + _INTL_ASM (libintl_dgettext); +#endif + +/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY + locale. */ +#ifdef _INTL_REDIRECT_INLINE +extern LIBINTL_DLL_EXPORTED char *libintl_dcgettext (const char *__domainname, const char *__msgid, + int __category); +static inline char *dcgettext (const char *__domainname, const char *__msgid, + int __category) +{ + return libintl_dcgettext (__domainname, __msgid, __category); +} +#else +#ifdef _INTL_REDIRECT_MACROS +# define dcgettext libintl_dcgettext +#endif +extern LIBINTL_DLL_EXPORTED char *dcgettext (const char *__domainname, const char *__msgid, + int __category) + _INTL_ASM (libintl_dcgettext); +#endif + + +/* Similar to `gettext' but select the plural form corresponding to the + number N. */ +#ifdef _INTL_REDIRECT_INLINE +extern LIBINTL_DLL_EXPORTED char *libintl_ngettext (const char *__msgid1, const char *__msgid2, + unsigned long int __n); +static inline char *ngettext (const char *__msgid1, const char *__msgid2, + unsigned long int __n) +{ + return libintl_ngettext (__msgid1, __msgid2, __n); +} +#else +#ifdef _INTL_REDIRECT_MACROS +# define ngettext libintl_ngettext +#endif +extern LIBINTL_DLL_EXPORTED char *ngettext (const char *__msgid1, const char *__msgid2, + unsigned long int __n) + _INTL_ASM (libintl_ngettext); +#endif + +/* Similar to `dgettext' but select the plural form corresponding to the + number N. */ +#ifdef _INTL_REDIRECT_INLINE +extern LIBINTL_DLL_EXPORTED char *libintl_dngettext (const char *__domainname, const char *__msgid1, + const char *__msgid2, unsigned long int __n); +static inline char *dngettext (const char *__domainname, const char *__msgid1, + const char *__msgid2, unsigned long int __n) +{ + return libintl_dngettext (__domainname, __msgid1, __msgid2, __n); +} +#else +#ifdef _INTL_REDIRECT_MACROS +# define dngettext libintl_dngettext +#endif +extern LIBINTL_DLL_EXPORTED char *dngettext (const char *__domainname, + const char *__msgid1, const char *__msgid2, + unsigned long int __n) + _INTL_ASM (libintl_dngettext); +#endif + +/* Similar to `dcgettext' but select the plural form corresponding to the + number N. */ +#ifdef _INTL_REDIRECT_INLINE +extern LIBINTL_DLL_EXPORTED char *libintl_dcngettext (const char *__domainname, + const char *__msgid1, const char *__msgid2, + unsigned long int __n, int __category); +static inline char *dcngettext (const char *__domainname, + const char *__msgid1, const char *__msgid2, + unsigned long int __n, int __category) +{ + return libintl_dcngettext (__domainname, __msgid1, __msgid2, __n, __category); +} +#else +#ifdef _INTL_REDIRECT_MACROS +# define dcngettext libintl_dcngettext +#endif +extern LIBINTL_DLL_EXPORTED char *dcngettext (const char *__domainname, + const char *__msgid1, const char *__msgid2, + unsigned long int __n, int __category) + _INTL_ASM (libintl_dcngettext); +#endif + + +/* Set the current default message catalog to DOMAINNAME. + If DOMAINNAME is null, return the current default. + If DOMAINNAME is "", reset to the default of "messages". */ +#ifdef _INTL_REDIRECT_INLINE +extern LIBINTL_DLL_EXPORTED char *libintl_textdomain (const char *__domainname); +static inline char *textdomain (const char *__domainname) +{ + return libintl_textdomain (__domainname); +} +#else +#ifdef _INTL_REDIRECT_MACROS +# define textdomain libintl_textdomain +#endif +extern LIBINTL_DLL_EXPORTED char *textdomain (const char *__domainname) + _INTL_ASM (libintl_textdomain); +#endif + +/* Specify that the DOMAINNAME message catalog will be found + in DIRNAME rather than in the system locale data base. */ +#ifdef _INTL_REDIRECT_INLINE +extern LIBINTL_DLL_EXPORTED char *libintl_bindtextdomain (const char *__domainname, + const char *__dirname); +static inline char *bindtextdomain (const char *__domainname, + const char *__dirname) +{ + return libintl_bindtextdomain (__domainname, __dirname); +} +#else +#ifdef _INTL_REDIRECT_MACROS +# define bindtextdomain libintl_bindtextdomain +#endif +extern LIBINTL_DLL_EXPORTED char *bindtextdomain (const char *__domainname, const char *__dirname) + _INTL_ASM (libintl_bindtextdomain); +#endif + +/* Specify the character encoding in which the messages from the + DOMAINNAME message catalog will be returned. */ +#ifdef _INTL_REDIRECT_INLINE +extern LIBINTL_DLL_EXPORTED char *libintl_bind_textdomain_codeset (const char *__domainname, + const char *__codeset); +static inline char *bind_textdomain_codeset (const char *__domainname, + const char *__codeset) +{ + return libintl_bind_textdomain_codeset (__domainname, __codeset); +} +#else +#ifdef _INTL_REDIRECT_MACROS +# define bind_textdomain_codeset libintl_bind_textdomain_codeset +#endif +extern LIBINTL_DLL_EXPORTED char *bind_textdomain_codeset (const char *__domainname, + const char *__codeset) + _INTL_ASM (libintl_bind_textdomain_codeset); +#endif + + +/* Support for format strings with positions in *printf(), following the + POSIX/XSI specification. + Note: These replacements for the *printf() functions are visible only + in source files that #include or #include "gettext.h". + Packages that use *printf() in source files that don't refer to _() + or gettext() but for which the format string could be the return value + of _() or gettext() need to add this #include. Oh well. */ + +#if !0 + +#include +#include + +/* Get va_list. */ +#if __STDC__ || defined __cplusplus || defined _MSC_VER +# include +#else +# include +#endif + +#undef fprintf +#define fprintf libintl_fprintf +extern LIBINTL_DLL_EXPORTED int fprintf (FILE *, const char *, ...); +#undef vfprintf +#define vfprintf libintl_vfprintf +extern LIBINTL_DLL_EXPORTED int vfprintf (FILE *, const char *, va_list); + +#undef printf +#define printf libintl_printf +extern LIBINTL_DLL_EXPORTED int printf (const char *, ...); +#undef vprintf +#define vprintf libintl_vprintf +extern LIBINTL_DLL_EXPORTED int vprintf (const char *, va_list); + +#undef sprintf +#define sprintf libintl_sprintf +extern LIBINTL_DLL_EXPORTED int sprintf (char *, const char *, ...); +#undef vsprintf +#define vsprintf libintl_vsprintf +extern LIBINTL_DLL_EXPORTED int vsprintf (char *, const char *, va_list); + +#if 0 + +#undef snprintf +#define snprintf libintl_snprintf +extern LIBINTL_DLL_EXPORTED int snprintf (char *, size_t, const char *, ...); +#undef vsnprintf +#define vsnprintf libintl_vsnprintf +extern LIBINTL_DLL_EXPORTED int vsnprintf (char *, size_t, const char *, va_list); + +#endif + +#if 0 + +#undef asprintf +#define asprintf libintl_asprintf +extern LIBINTL_DLL_EXPORTED int asprintf (char **, const char *, ...); +#undef vasprintf +#define vasprintf libintl_vasprintf +extern LIBINTL_DLL_EXPORTED int vasprintf (char **, const char *, va_list); + +#endif + +#if 1 + +#undef fwprintf +#define fwprintf libintl_fwprintf +extern LIBINTL_DLL_EXPORTED int fwprintf (FILE *, const wchar_t *, ...); +#undef vfwprintf +#define vfwprintf libintl_vfwprintf +extern LIBINTL_DLL_EXPORTED int vfwprintf (FILE *, const wchar_t *, va_list); + +#undef wprintf +#define wprintf libintl_wprintf +extern LIBINTL_DLL_EXPORTED int wprintf (const wchar_t *, ...); +#undef vwprintf +#define vwprintf libintl_vwprintf +extern LIBINTL_DLL_EXPORTED int vwprintf (const wchar_t *, va_list); + +#undef swprintf +#define swprintf libintl_swprintf +extern LIBINTL_DLL_EXPORTED int swprintf (wchar_t *, size_t, const wchar_t *, ...); +#undef vswprintf +#define vswprintf libintl_vswprintf +extern LIBINTL_DLL_EXPORTED int vswprintf (wchar_t *, size_t, const wchar_t *, va_list); + +#endif + +#endif + + +/* Support for relocatable packages. */ + +/* Sets the original and the current installation prefix of the package. + Relocation simply replaces a pathname starting with the original prefix + by the corresponding pathname with the current prefix instead. Both + prefixes should be directory names without trailing slash (i.e. use "" + instead of "/"). */ +#define libintl_set_relocation_prefix libintl_set_relocation_prefix +extern LIBINTL_DLL_EXPORTED void + libintl_set_relocation_prefix (const char *orig_prefix, + const char *curr_prefix); + + +#ifdef __cplusplus +} +#endif + +#endif /* libintl.h */ diff --git a/ext/libintl/libintl3-win32/lib/intl3_tsvn.exp b/ext/libintl/libintl3-win32/lib/intl3_tsvn.exp new file mode 100644 index 0000000000000000000000000000000000000000..7b1d2b34f0c790ed90ece0d37b8be6dc2ed33ea5 GIT binary patch literal 3984 zcwXg}&u<$=6vvpu-VVm5iAI>u|dO6#RVIRl7cg=RE!e6?LPW zn^=_N_!1G}J{C^w{aDofkzzyxt0iEE1F6f2>&;z~D2VU@j zANpYc24M(>VFX5D3^d)$N781gq6d|H9yT;xNt5=buH%74MKYyYPzWAjcmr$ z3>{N-Q>!*pU2HB~xAGy8+C|W9(9`BkEp}swoxPG zenK4~XQD>Q-9a5CS4Ev6_Y3M6xmQtRW;&eXoYv zG8kX!gr~G@(I^?4W?*vVcwlKU`6PS`kNF^bL4k9pQVYgbxuEK%8Yt^ZAff3cQ_bhg zxR&+QR$0|^!IftcYv&hJ2@R1NSjd>FhS}&Zdmp(fo+oYRGz_y~y0e8id{0PQ+@|hlu?I)-HAo z0eeBy`|Y;l*w7<3~d5w>`23G=kXyTh>Tehds8$x@j1rUOsAUh%D&i z1O72yKCt>?v+m=QdRIr0`+44aA7>r++nVXzSO#oKJz&!@$OqgkvhIfXtipe_VOvrU z*gTEc0&57Yw^4gkPuOB%`$cme*pgzq1wWektWnqwYRdS^CAfc|y}11UUu-eEpmZ^r zDd6&sIU1yx+pe&D5}KseYL_Dyo-Qi2%Nm(ThVTeOLLk%dfz#W0a;I2Ss;cttuqYavelk~7erX&)V$bv+Y zHe$W}wl>d6cU_doC5e0}kz-|2dR;j(JQ;Vw9sv5~vs73XWs*Y4`= aTur1Z(yDsMRYR&4EvkfE9k_9Gz5fewh8lzb literal 0 HcwPel00001 diff --git a/ext/libintl/libintl3-win32/lib/intl3_tsvn.lib b/ext/libintl/libintl3-win32/lib/intl3_tsvn.lib new file mode 100644 index 0000000000000000000000000000000000000000..d42101c608921709c2bf508527096087b97d9e7b GIT binary patch literal 7272 zcwV(wy>Amq9DR0@i^-=y;_oAv91_q3C-Is@LJ`~r-9?xXnIO^aCAI^W96O5lEJSlH z#Z}yYK!L8JpuU2FG6lsIS5aM&8c|RnakD#K@6683I*vCZ{hZy|xASIx^XAQLF5lWc zsytnvxRK+_($boCbGfjVU*qfZ_VdE>D!ux30>BzD`4*Ty0cIC~*ynB-H0ByK;$<3% z*EG_PY0Q135r0o3ndrtB8tG#ii6V{6I*sHD8rd9;)CrBu8ycw&jo1{8=qioK9*yiv z8qrrYBF8kcUulFtb>q1iy1sdT`$2g}-?;nmr}F0Z&V#aEZyJpi-Dr23(DkiHrILuj z?+%DUc7A!Zbx+^8vvY^MR6jV>^+tWq1nK0rYSf+?)z-mooiwSc7vIvI$9knzt+i_g z`UCiOs+A`-!-PRr<-&?k1yTSiaI$f$$6T#6C7o@mdMg2|up(52Bq`L7YK>N9*QmFe z`r%P+zy1vU9`kK<_79K9#Xcl8JW>EEa2=sRInE7JwAL1yYs--WP=V{Tn_`nqMVkWD zjqFX0YmOW>x^>A&T2Qw$)9yKEPv6_gpL6eea;83t07Fa6ez^`T0CC z^tY41$uzJq3w(|N28qTTP>utyi8DV=10Tu#dvc#h0$)fRle!{#ww?iAko#Pgw2=bd zkoyk#J4M=9jRJcS;3awXid-L)>#yYcQy6$2wl)$35X3w#B84oH$RL3+jN&^?U>uW} zMF>-fU>b46Z~-$2V-8WI@%?j}yN({HAAuM?y5XtCO8 z-017MCO4@otl5F+ua?=>2-- zsMT)m8@X%c>$%eA);&ndRQJVk>u%J#GW#%QUGYSuCzaO0A?fmb`A>ZNW>b!K+X`A? zkNh@Z_4+B;F^*W#ttprouo%s$G0P8dO3?bf#nq6Hp)>DBeyV0!TVYfav{dtVug`MT zRKXWUH7jjkDaGLqO2&j`fF>vNq3ryzddixjNne$k0nq6o1`GbJ#t+xV; z`$vNFGsCCJYL5K+smP*zVg1L!WGw~E++MRdL+b6&wd4oo)t2PEmtdY$L&9$Bq8nI0 z1>3G&d>JdNA$B((a%6>@a;B^$g%EdG7@hGz1}-!mkH-2$LSlRM_#8mM!!~ywk&5f_lRkh(LPL{Bi{_m=hyf==5Utf z^G`J%yHc2ClqYmxzM{fa7YSd4<&%G9onwBZ9DCEJ@p>sJ#xeS&SP$o!WBL5_SC6d5 zS + +/* The LC_MESSAGES locale category is the category used by the functions + gettext() and dgettext(). It is specified in POSIX, but not in ANSI C. + On systems that don't define it, use an arbitrary value instead. + On Solaris, defines __LOCALE_H (or _LOCALE_H in Solaris 2.5) + then includes (i.e. this file!) and then only defines + LC_MESSAGES. To avoid a redefinition warning, don't define LC_MESSAGES + in this case. */ +#if !defined LC_MESSAGES && !(defined __LOCALE_H || (defined _LOCALE_H && defined __sun)) +# define LC_MESSAGES 1729 +#endif + +/* We define an additional symbol to signal that we use the GNU + implementation of gettext. */ +#define __USE_GNU_GETTEXT 1 + +/* Provide information about the supported file formats. Returns the + maximum minor revision number supported for a given major revision. */ +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) \ + ((major) == 0 || (major) == 1 ? 1 : -1) + +/* Resolve a platform specific conflict on DJGPP. GNU gettext takes + precedence over _conio_gettext. */ +#ifdef __DJGPP__ +# undef gettext +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/* We redirect the functions to those prefixed with "libintl_". This is + necessary, because some systems define gettext/textdomain/... in the C + library (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer). + If we used the unprefixed names, there would be cases where the + definition in the C library would override the one in the libintl.so + shared library. Recall that on ELF systems, the symbols are looked + up in the following order: + 1. in the executable, + 2. in the shared libraries specified on the link command line, in order, + 3. in the dependencies of the shared libraries specified on the link + command line, + 4. in the dlopen()ed shared libraries, in the order in which they were + dlopen()ed. + The definition in the C library would override the one in libintl.so if + either + * -lc is given on the link command line and -lintl isn't, or + * -lc is given on the link command line before -lintl, or + * libintl.so is a dependency of a dlopen()ed shared library but not + linked to the executable at link time. + Since Solaris gettext() behaves differently than GNU gettext(), this + would be unacceptable. + + The redirection happens by default through macros in C, so that &gettext + is independent of the compilation unit, but through inline functions in + C++, in order not to interfere with the name mangling of class fields or + class methods called 'gettext'. */ + +/* The user can define _INTL_REDIRECT_INLINE or _INTL_REDIRECT_MACROS. + If he doesn't, we choose the method. A third possible method is + _INTL_REDIRECT_ASM, supported only by GCC. */ +#if !(defined _INTL_REDIRECT_INLINE || defined _INTL_REDIRECT_MACROS) +# if __GNUC__ >= 2 && !defined __APPLE_CC__ && !defined __MINGW32__ && !(__GNUC__ == 2 && defined _AIX) && (defined __STDC__ || defined __cplusplus) +# define _INTL_REDIRECT_ASM +# else +# ifdef __cplusplus +# define _INTL_REDIRECT_INLINE +# else +# define _INTL_REDIRECT_MACROS +# endif +# endif +#endif +/* Auxiliary macros. */ +#ifdef _INTL_REDIRECT_ASM +# define _INTL_ASM(cname) __asm__ (_INTL_ASMNAME (__USER_LABEL_PREFIX__, #cname)) +# define _INTL_ASMNAME(prefix,cnamestring) _INTL_STRINGIFY (prefix) cnamestring +# define _INTL_STRINGIFY(prefix) #prefix +#else +# define _INTL_ASM(cname) +#endif + +/* Look up MSGID in the current default message catalog for the current + LC_MESSAGES locale. If not found, returns MSGID itself (the default + text). */ +#ifdef _INTL_REDIRECT_INLINE +extern LIBINTL_DLL_EXPORTED char *libintl_gettext (const char *__msgid); +static inline char *gettext (const char *__msgid) +{ + return libintl_gettext (__msgid); +} +#else +#ifdef _INTL_REDIRECT_MACROS +# define gettext libintl_gettext +#endif +extern LIBINTL_DLL_EXPORTED char *gettext (const char *__msgid) + _INTL_ASM (libintl_gettext); +#endif + +/* Look up MSGID in the DOMAINNAME message catalog for the current + LC_MESSAGES locale. */ +#ifdef _INTL_REDIRECT_INLINE +extern LIBINTL_DLL_EXPORTED char *libintl_dgettext (const char *__domainname, const char *__msgid); +static inline char *dgettext (const char *__domainname, const char *__msgid) +{ + return libintl_dgettext (__domainname, __msgid); +} +#else +#ifdef _INTL_REDIRECT_MACROS +# define dgettext libintl_dgettext +#endif +extern LIBINTL_DLL_EXPORTED char *dgettext (const char *__domainname, const char *__msgid) + _INTL_ASM (libintl_dgettext); +#endif + +/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY + locale. */ +#ifdef _INTL_REDIRECT_INLINE +extern LIBINTL_DLL_EXPORTED char *libintl_dcgettext (const char *__domainname, const char *__msgid, + int __category); +static inline char *dcgettext (const char *__domainname, const char *__msgid, + int __category) +{ + return libintl_dcgettext (__domainname, __msgid, __category); +} +#else +#ifdef _INTL_REDIRECT_MACROS +# define dcgettext libintl_dcgettext +#endif +extern LIBINTL_DLL_EXPORTED char *dcgettext (const char *__domainname, const char *__msgid, + int __category) + _INTL_ASM (libintl_dcgettext); +#endif + + +/* Similar to `gettext' but select the plural form corresponding to the + number N. */ +#ifdef _INTL_REDIRECT_INLINE +extern LIBINTL_DLL_EXPORTED char *libintl_ngettext (const char *__msgid1, const char *__msgid2, + unsigned long int __n); +static inline char *ngettext (const char *__msgid1, const char *__msgid2, + unsigned long int __n) +{ + return libintl_ngettext (__msgid1, __msgid2, __n); +} +#else +#ifdef _INTL_REDIRECT_MACROS +# define ngettext libintl_ngettext +#endif +extern LIBINTL_DLL_EXPORTED char *ngettext (const char *__msgid1, const char *__msgid2, + unsigned long int __n) + _INTL_ASM (libintl_ngettext); +#endif + +/* Similar to `dgettext' but select the plural form corresponding to the + number N. */ +#ifdef _INTL_REDIRECT_INLINE +extern LIBINTL_DLL_EXPORTED char *libintl_dngettext (const char *__domainname, const char *__msgid1, + const char *__msgid2, unsigned long int __n); +static inline char *dngettext (const char *__domainname, const char *__msgid1, + const char *__msgid2, unsigned long int __n) +{ + return libintl_dngettext (__domainname, __msgid1, __msgid2, __n); +} +#else +#ifdef _INTL_REDIRECT_MACROS +# define dngettext libintl_dngettext +#endif +extern LIBINTL_DLL_EXPORTED char *dngettext (const char *__domainname, + const char *__msgid1, const char *__msgid2, + unsigned long int __n) + _INTL_ASM (libintl_dngettext); +#endif + +/* Similar to `dcgettext' but select the plural form corresponding to the + number N. */ +#ifdef _INTL_REDIRECT_INLINE +extern LIBINTL_DLL_EXPORTED char *libintl_dcngettext (const char *__domainname, + const char *__msgid1, const char *__msgid2, + unsigned long int __n, int __category); +static inline char *dcngettext (const char *__domainname, + const char *__msgid1, const char *__msgid2, + unsigned long int __n, int __category) +{ + return libintl_dcngettext (__domainname, __msgid1, __msgid2, __n, __category); +} +#else +#ifdef _INTL_REDIRECT_MACROS +# define dcngettext libintl_dcngettext +#endif +extern LIBINTL_DLL_EXPORTED char *dcngettext (const char *__domainname, + const char *__msgid1, const char *__msgid2, + unsigned long int __n, int __category) + _INTL_ASM (libintl_dcngettext); +#endif + + +/* Set the current default message catalog to DOMAINNAME. + If DOMAINNAME is null, return the current default. + If DOMAINNAME is "", reset to the default of "messages". */ +#ifdef _INTL_REDIRECT_INLINE +extern LIBINTL_DLL_EXPORTED char *libintl_textdomain (const char *__domainname); +static inline char *textdomain (const char *__domainname) +{ + return libintl_textdomain (__domainname); +} +#else +#ifdef _INTL_REDIRECT_MACROS +# define textdomain libintl_textdomain +#endif +extern LIBINTL_DLL_EXPORTED char *textdomain (const char *__domainname) + _INTL_ASM (libintl_textdomain); +#endif + +/* Specify that the DOMAINNAME message catalog will be found + in DIRNAME rather than in the system locale data base. */ +#ifdef _INTL_REDIRECT_INLINE +extern LIBINTL_DLL_EXPORTED char *libintl_bindtextdomain (const char *__domainname, + const char *__dirname); +static inline char *bindtextdomain (const char *__domainname, + const char *__dirname) +{ + return libintl_bindtextdomain (__domainname, __dirname); +} +#else +#ifdef _INTL_REDIRECT_MACROS +# define bindtextdomain libintl_bindtextdomain +#endif +extern LIBINTL_DLL_EXPORTED char *bindtextdomain (const char *__domainname, const char *__dirname) + _INTL_ASM (libintl_bindtextdomain); +#endif + +/* Specify the character encoding in which the messages from the + DOMAINNAME message catalog will be returned. */ +#ifdef _INTL_REDIRECT_INLINE +extern LIBINTL_DLL_EXPORTED char *libintl_bind_textdomain_codeset (const char *__domainname, + const char *__codeset); +static inline char *bind_textdomain_codeset (const char *__domainname, + const char *__codeset) +{ + return libintl_bind_textdomain_codeset (__domainname, __codeset); +} +#else +#ifdef _INTL_REDIRECT_MACROS +# define bind_textdomain_codeset libintl_bind_textdomain_codeset +#endif +extern LIBINTL_DLL_EXPORTED char *bind_textdomain_codeset (const char *__domainname, + const char *__codeset) + _INTL_ASM (libintl_bind_textdomain_codeset); +#endif + + +/* Support for format strings with positions in *printf(), following the + POSIX/XSI specification. + Note: These replacements for the *printf() functions are visible only + in source files that #include or #include "gettext.h". + Packages that use *printf() in source files that don't refer to _() + or gettext() but for which the format string could be the return value + of _() or gettext() need to add this #include. Oh well. */ + +#if !0 + +#include +#include + +/* Get va_list. */ +#if __STDC__ || defined __cplusplus || defined _MSC_VER +# include +#else +# include +#endif + +#undef fprintf +#define fprintf libintl_fprintf +extern LIBINTL_DLL_EXPORTED int fprintf (FILE *, const char *, ...); +#undef vfprintf +#define vfprintf libintl_vfprintf +extern LIBINTL_DLL_EXPORTED int vfprintf (FILE *, const char *, va_list); + +#undef printf +#define printf libintl_printf +extern LIBINTL_DLL_EXPORTED int printf (const char *, ...); +#undef vprintf +#define vprintf libintl_vprintf +extern LIBINTL_DLL_EXPORTED int vprintf (const char *, va_list); + +#undef sprintf +#define sprintf libintl_sprintf +extern LIBINTL_DLL_EXPORTED int sprintf (char *, const char *, ...); +#undef vsprintf +#define vsprintf libintl_vsprintf +extern LIBINTL_DLL_EXPORTED int vsprintf (char *, const char *, va_list); + +#if 0 + +#undef snprintf +#define snprintf libintl_snprintf +extern LIBINTL_DLL_EXPORTED int snprintf (char *, size_t, const char *, ...); +#undef vsnprintf +#define vsnprintf libintl_vsnprintf +extern LIBINTL_DLL_EXPORTED int vsnprintf (char *, size_t, const char *, va_list); + +#endif + +#if 0 + +#undef asprintf +#define asprintf libintl_asprintf +extern LIBINTL_DLL_EXPORTED int asprintf (char **, const char *, ...); +#undef vasprintf +#define vasprintf libintl_vasprintf +extern LIBINTL_DLL_EXPORTED int vasprintf (char **, const char *, va_list); + +#endif + +#if 1 + +#undef fwprintf +#define fwprintf libintl_fwprintf +extern LIBINTL_DLL_EXPORTED int fwprintf (FILE *, const wchar_t *, ...); +#undef vfwprintf +#define vfwprintf libintl_vfwprintf +extern LIBINTL_DLL_EXPORTED int vfwprintf (FILE *, const wchar_t *, va_list); + +#undef wprintf +#define wprintf libintl_wprintf +extern LIBINTL_DLL_EXPORTED int wprintf (const wchar_t *, ...); +#undef vwprintf +#define vwprintf libintl_vwprintf +extern LIBINTL_DLL_EXPORTED int vwprintf (const wchar_t *, va_list); + +#undef swprintf +#define swprintf libintl_swprintf +extern LIBINTL_DLL_EXPORTED int swprintf (wchar_t *, size_t, const wchar_t *, ...); +#undef vswprintf +#define vswprintf libintl_vswprintf +extern LIBINTL_DLL_EXPORTED int vswprintf (wchar_t *, size_t, const wchar_t *, va_list); + +#endif + +#endif + + +/* Support for relocatable packages. */ + +/* Sets the original and the current installation prefix of the package. + Relocation simply replaces a pathname starting with the original prefix + by the corresponding pathname with the current prefix instead. Both + prefixes should be directory names without trailing slash (i.e. use "" + instead of "/"). */ +#define libintl_set_relocation_prefix libintl_set_relocation_prefix +extern LIBINTL_DLL_EXPORTED void + libintl_set_relocation_prefix (const char *orig_prefix, + const char *curr_prefix); + + +#ifdef __cplusplus +} +#endif + +#endif /* libintl.h */ diff --git a/ext/libintl/libintl3-x64/lib/intl3_tsvn.exp b/ext/libintl/libintl3-x64/lib/intl3_tsvn.exp new file mode 100644 index 0000000000000000000000000000000000000000..bf0c2aad2b438db1ad5fd3294538dd75fcc06549 GIT binary patch literal 3923 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