1/* intl-compat.c - Stub functions to call gettext functions from GNU gettext library. */
2
3/* Copyright (C) 1995, 2000-2003, 2005-2009 Free Software Foundation, Inc.
4
5   This file is part of GNU Bash.
6
7   Bash is free software: you can redistribute it and/or modify
8   it under the terms of the GNU General Public License as published by
9   the Free Software Foundation, either version 3 of the License, or
10   (at your option) any later version.
11
12   Bash is distributed in the hope that it will be useful,
13   but WITHOUT ANY WARRANTY; without even the implied warranty of
14   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   GNU General Public License for more details.
16
17   You should have received a copy of the GNU General Public License
18   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#ifdef HAVE_CONFIG_H
22# include <config.h>
23#endif
24
25#include "gettextP.h"
26
27/* @@ end of prolog @@ */
28
29/* This file redirects the gettext functions (without prefix) to those
30   defined in the included GNU libintl library (with "libintl_" prefix).
31   It is compiled into libintl in order to make the AM_GNU_GETTEXT test
32   of gettext <= 0.11.2 work with the libintl library >= 0.11.3 which
33   has the redirections primarily in the <libintl.h> include file.
34   It is also compiled into libgnuintl so that libgnuintl.so can be used
35   as LD_PRELOADable library on glibc systems, to provide the extra
36   features that the functions in the libc don't have (namely, logging).  */
37
38
39#undef gettext
40#undef dgettext
41#undef dcgettext
42#undef ngettext
43#undef dngettext
44#undef dcngettext
45#undef textdomain
46#undef bindtextdomain
47#undef bind_textdomain_codeset
48
49
50/* When building a DLL, we must export some functions.  Note that because
51   the functions are only defined for binary backward compatibility, we
52   don't need to use __declspec(dllimport) in any case.  */
53#if defined _MSC_VER && BUILDING_DLL
54# define DLL_EXPORTED __declspec(dllexport)
55#else
56# define DLL_EXPORTED
57#endif
58
59
60DLL_EXPORTED
61char *
62gettext (msgid)
63     const char *msgid;
64{
65  return libintl_gettext (msgid);
66}
67
68
69DLL_EXPORTED
70char *
71dgettext (domainname, msgid)
72     const char *domainname;
73     const char *msgid;
74{
75  return libintl_dgettext (domainname, msgid);
76}
77
78
79DLL_EXPORTED
80char *
81dcgettext (domainname, msgid, category)
82     const char *domainname;
83     const char *msgid;
84     int category;
85{
86  return libintl_dcgettext (domainname, msgid, category);
87}
88
89
90DLL_EXPORTED
91char *
92ngettext (msgid1, msgid2, n)
93     const char *msgid1;
94     const char *msgid2;
95     unsigned long int n;
96{
97  return libintl_ngettext (msgid1, msgid2, n);
98}
99
100
101DLL_EXPORTED
102char *
103dngettext (domainname, msgid1, msgid2, n)
104     const char *domainname;
105     const char *msgid1;
106     const char *msgid2;
107     unsigned long int n;
108{
109  return libintl_dngettext (domainname, msgid1, msgid2, n);
110}
111
112
113DLL_EXPORTED
114char *
115dcngettext (domainname, msgid1, msgid2, n, category)
116     const char *domainname;
117     const char *msgid1;
118     const char *msgid2;
119     unsigned long int n;
120     int category;
121{
122  return libintl_dcngettext (domainname, msgid1, msgid2, n, category);
123}
124
125
126DLL_EXPORTED
127char *
128textdomain (domainname)
129     const char *domainname;
130{
131  return libintl_textdomain (domainname);
132}
133
134
135DLL_EXPORTED
136char *
137bindtextdomain (domainname, dirname)
138     const char *domainname;
139     const char *dirname;
140{
141  return libintl_bindtextdomain (domainname, dirname);
142}
143
144
145DLL_EXPORTED
146char *
147bind_textdomain_codeset (domainname, codeset)
148     const char *domainname;
149     const char *codeset;
150{
151  return libintl_bind_textdomain_codeset (domainname, codeset);
152}
153