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., 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 
     59 DLL_EXPORTED
     60 char *
     61 gettext (const char *msgid)
     62 {
     63   return libintl_gettext (msgid);
     64 }
     65 
     66 
     67 DLL_EXPORTED
     68 char *
     69 dgettext (const char *domainname, const char *msgid)
     70 {
     71   return libintl_dgettext (domainname, msgid);
     72 }
     73 
     74 
     75 DLL_EXPORTED
     76 char *
     77 dcgettext (const char *domainname, const char *msgid, int category)
     78 {
     79   return libintl_dcgettext (domainname, msgid, category);
     80 }
     81 
     82 
     83 DLL_EXPORTED
     84 char *
     85 ngettext (const char *msgid1, const char *msgid2, unsigned long int n)
     86 {
     87   return libintl_ngettext (msgid1, msgid2, n);
     88 }
     89 
     90 
     91 DLL_EXPORTED
     92 char *
     93 dngettext (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 
    100 DLL_EXPORTED
    101 char *
    102 dcngettext (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 
    110 DLL_EXPORTED
    111 char *
    112 textdomain (const char *domainname)
    113 {
    114   return libintl_textdomain (domainname);
    115 }
    116 
    117 
    118 DLL_EXPORTED
    119 char *
    120 bindtextdomain (const char *domainname, const char *dirname)
    121 {
    122   return libintl_bindtextdomain (domainname, dirname);
    123 }
    124 
    125 
    126 DLL_EXPORTED
    127 char *
    128 bind_textdomain_codeset (const char *domainname, const char *codeset)
    129 {
    130   return libintl_bind_textdomain_codeset (domainname, codeset);
    131 }
    132