119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* intl-compat.c - Stub functions to call gettext functions from GNU gettext 219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project Library. 319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project Copyright (C) 1995, 2000-2003 Software Foundation, Inc. 419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project This program is free software; you can redistribute it and/or modify it 619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project under the terms of the GNU Library General Public License as published 719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project by the Free Software Foundation; either version 2, or (at your option) 819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project any later version. 919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 1019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project This program is distributed in the hope that it will be useful, 1119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project but WITHOUT ANY WARRANTY; without even the implied warranty of 1219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project Library General Public License for more details. 1419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 1519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project You should have received a copy of the GNU Library General Public 1619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project License along with this program; if not, write to the Free Software 1719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 1819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project USA. */ 1919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 2019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifdef HAVE_CONFIG_H 2119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# include <config.h> 2219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif 2319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 2419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#include "gettextP.h" 2519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 2619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* @@ end of prolog @@ */ 2719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 2819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* This file redirects the gettext functions (without prefix) to those 2919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project defined in the included GNU libintl library (with "libintl_" prefix). 3019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project It is compiled into libintl in order to make the AM_GNU_GETTEXT test 3119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project of gettext <= 0.11.2 work with the libintl library >= 0.11.3 which 3219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project has the redirections primarily in the <libintl.h> include file. 3319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project It is also compiled into libgnuintl so that libgnuintl.so can be used 3419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project as LD_PRELOADable library on glibc systems, to provide the extra 3519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project features that the functions in the libc don't have (namely, logging). */ 3619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 3719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 3819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#undef gettext 3919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#undef dgettext 4019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#undef dcgettext 4119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#undef ngettext 4219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#undef dngettext 4319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#undef dcngettext 4419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#undef textdomain 4519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#undef bindtextdomain 4619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#undef bind_textdomain_codeset 4719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 4819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 4919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* When building a DLL, we must export some functions. Note that because 5019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project the functions are only defined for binary backward compatibility, we 5119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project don't need to use __declspec(dllimport) in any case. */ 5219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if defined _MSC_VER && BUILDING_DLL 5319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define DLL_EXPORTED __declspec(dllexport) 5419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#else 5519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define DLL_EXPORTED 5619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif 5719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 5819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 5919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source ProjectDLL_EXPORTED 6019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectchar * 6119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectgettext (const char *msgid) 6219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{ 6319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project return libintl_gettext (msgid); 6419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project} 6519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 6619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 6719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source ProjectDLL_EXPORTED 6819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectchar * 6919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectdgettext (const char *domainname, const char *msgid) 7019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{ 7119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project return libintl_dgettext (domainname, msgid); 7219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project} 7319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 7419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 7519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source ProjectDLL_EXPORTED 7619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectchar * 7719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectdcgettext (const char *domainname, const char *msgid, int category) 7819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{ 7919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project return libintl_dcgettext (domainname, msgid, category); 8019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project} 8119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 8219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 8319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source ProjectDLL_EXPORTED 8419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectchar * 8519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectngettext (const char *msgid1, const char *msgid2, unsigned long int n) 8619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{ 8719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project return libintl_ngettext (msgid1, msgid2, n); 8819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project} 8919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 9019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 9119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source ProjectDLL_EXPORTED 9219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectchar * 9319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectdngettext (const char *domainname, 9419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project const char *msgid1, const char *msgid2, unsigned long int n) 9519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{ 9619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project return libintl_dngettext (domainname, msgid1, msgid2, n); 9719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project} 9819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 9919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 10019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source ProjectDLL_EXPORTED 10119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectchar * 10219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectdcngettext (const char *domainname, 10319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project const char *msgid1, const char *msgid2, unsigned long int n, 10419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project int category) 10519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{ 10619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project return libintl_dcngettext (domainname, msgid1, msgid2, n, category); 10719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project} 10819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 10919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 11019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source ProjectDLL_EXPORTED 11119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectchar * 11219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projecttextdomain (const char *domainname) 11319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{ 11419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project return libintl_textdomain (domainname); 11519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project} 11619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 11719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 11819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source ProjectDLL_EXPORTED 11919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectchar * 12019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectbindtextdomain (const char *domainname, const char *dirname) 12119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{ 12219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project return libintl_bindtextdomain (domainname, dirname); 12319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project} 12419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 12519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 12619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source ProjectDLL_EXPORTED 12719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectchar * 12819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectbind_textdomain_codeset (const char *domainname, const char *codeset) 12919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{ 13019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project return libintl_bind_textdomain_codeset (domainname, codeset); 13119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project} 132