xref: /openbsd-src/gnu/gcc/intl/intl-compat.c (revision 404b540a9034ac75a6199ad1a32d1bbc7a0d4210)
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