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