Home | History | Annotate | Download | only in intl
      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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301,
     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 
     59 DLL_EXPORTED
     60 char *
     61 gettext (msgid)
     62      const char *msgid;
     63 {
     64   return libintl_gettext (msgid);
     65 }
     66 
     67 
     68 DLL_EXPORTED
     69 char *
     70 dgettext (domainname, msgid)
     71      const char *domainname;
     72      const char *msgid;
     73 {
     74   return libintl_dgettext (domainname, msgid);
     75 }
     76 
     77 
     78 DLL_EXPORTED
     79 char *
     80 dcgettext (domainname, msgid, category)
     81      const char *domainname;
     82      const char *msgid;
     83      int category;
     84 {
     85   return libintl_dcgettext (domainname, msgid, category);
     86 }
     87 
     88 
     89 DLL_EXPORTED
     90 char *
     91 ngettext (msgid1, msgid2, n)
     92      const char *msgid1;
     93      const char *msgid2;
     94      unsigned long int n;
     95 {
     96   return libintl_ngettext (msgid1, msgid2, n);
     97 }
     98 
     99 
    100 DLL_EXPORTED
    101 char *
    102 dngettext (domainname, msgid1, msgid2, n)
    103      const char *domainname;
    104      const char *msgid1;
    105      const char *msgid2;
    106      unsigned long int n;
    107 {
    108   return libintl_dngettext (domainname, msgid1, msgid2, n);
    109 }
    110 
    111 
    112 DLL_EXPORTED
    113 char *
    114 dcngettext (domainname, msgid1, msgid2, n, category)
    115      const char *domainname;
    116      const char *msgid1;
    117      const char *msgid2;
    118      unsigned long int n;
    119      int category;
    120 {
    121   return libintl_dcngettext (domainname, msgid1, msgid2, n, category);
    122 }
    123 
    124 
    125 DLL_EXPORTED
    126 char *
    127 textdomain (domainname)
    128      const char *domainname;
    129 {
    130   return libintl_textdomain (domainname);
    131 }
    132 
    133 
    134 DLL_EXPORTED
    135 char *
    136 bindtextdomain (domainname, dirname)
    137      const char *domainname;
    138      const char *dirname;
    139 {
    140   return libintl_bindtextdomain (domainname, dirname);
    141 }
    142 
    143 
    144 DLL_EXPORTED
    145 char *
    146 bind_textdomain_codeset (domainname, codeset)
    147      const char *domainname;
    148      const char *codeset;
    149 {
    150   return libintl_bind_textdomain_codeset (domainname, codeset);
    151 }
    152