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