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