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