pcsxr-1.9.92
[pcsx_rearmed.git] / win32 / intl / libintl.h
1 /* This file is part of a Windows32 DLL Interface to:\r
2    GNU gettext - internationalization aids\r
3    Copyright (C) 1996, 1998 Free Software Foundation, Inc.\r
4 \r
5    This file was written by Franco Bez <franco.bez@gmx.de>\r
6 \r
7 This program is free software; you can redistribute it and/or modify\r
8 it under the terms of the GNU Lesser General Public License as published by\r
9 the Free Software Foundation; either version 2, or (at your option)\r
10 any later version.\r
11 \r
12 This program is distributed in the hope that it will be useful,\r
13 but WITHOUT ANY WARRANTY; without even the implied warranty of\r
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
15 GNU Lesser General Public License for more details.\r
16 \r
17 You should have received a copy of the GNU Lesser General Public License\r
18 along with this program; if not, write to the Free Software\r
19 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307 USA.  */\r
20 \r
21 /* REPLACEMENT FOR ORIGINAL LIBINTL.H for use with Windows32 */\r
22 \r
23 #if !defined(__LIBINTL_H_INCLUDED)\r
24 #define __LIBINTL_H_INCLUDED\r
25 \r
26 #if defined(__cplusplus)\r
27 extern "C" { \r
28 #endif\r
29 \r
30 /* See if we allready know what we want static or dll linkage or none at all*/\r
31 #if defined DONT_USE_GETTEXT || ( defined USE_SAFE_GETTEXT_DLL && defined USE_GETTEXT_STATIC ) || ( defined USE_GETTEXT_DLL && defined USE_SAFE_GETTEXT_DLL ) || ( defined USE_GETTEXT_DLL && defined USE_GETTEXT_STATIC ) \r
32 /* TWO IS HARDLY POSSIBLE */\r
33 #undef  USE_GETTEXT_DLL\r
34 #undef  USE_GETTEXT_STATIC\r
35 #undef USE_SAFE_GETTEXT_DLL\r
36 #endif  /* MORE THAN ONE - OR NONE AT ALL */\r
37 \r
38 #if !defined USE_GETTEXT_DLL && !defined USE_SAFE_GETTEXT_DLL && !defined USE_GETTEXT_STATIC && !defined DONT_USE_GETTEXT\r
39 /* not explicitly defined so try to guess it - \r
40    if GNUC is used - we use static linkage by default\r
41            because at the moment this is the only plattform\r
42            for which a static lib is available\r
43    else we use the DLL built with GNUC */   \r
44 #  define USE_GETTEXT_STATIC\r
45 #endif  /* NONE */\r
46 \r
47 /* NOW ONLY ONE OF\r
48    DONT_USE_GETTEXT , USE_GETTEXT_DLL , USE_SAFE_GETTEXT_DLL , USE_GETTEXT_STATIC \r
49    IS DEFINED */\r
50 \r
51 #if defined USE_GETTEXT_DLL\r
52 /* exported functions in DLL gnu_gettext.dll \r
53    you should link with import library \r
54     -lgnu_gettext (for mingw32) OR  gnu_gettext.lib (MSVC) */\r
55 __declspec(dllimport) char *gettext(const char *__msgid);\r
56 __declspec(dllimport) char *dgettext(const char *__domainname,const char *__msgid);\r
57 __declspec(dllimport) char *dcgettext(const char *__domainname,const char *__msgid, int __category);\r
58 __declspec(dllimport) char *textdomain(const char *__domainname);\r
59 __declspec(dllimport) char *bindtextdomain(const char *__domainname,const char *__dirname);\r
60 /* calling _putenv from within the DLL */\r
61 __declspec(dllexport) int gettext_putenv(const char *envstring);\r
62 #endif /* DLL */\r
63 \r
64 #if defined USE_SAFE_GETTEXT_DLL\r
65 /* Uses DLL gnu_gettext.dll ONLY if present, otherwise NO translation will take place\r
66    you should link with "safe_gettext_dll.o -lstdc++" see README for safe_gettext_dll for Details  */\r
67 /* The safe gettext functions */\r
68 extern char *gettext(const char *szMsgId);\r
69 extern char *dgettext(const char *szDomain,const char *szMsgId);\r
70 extern char *dcgettext(const char *szDomain,const char *szMsgId,int iCategory);\r
71 extern char *textdomain(const char *szDomain);\r
72 extern char *bindtextdomain(const char *szDomain,const char *szDirectory);\r
73 /* calling _putenv from within the DLL */\r
74 extern int gettext_putenv(const char *envstring);\r
75 #endif /* SAFE DLL */\r
76 \r
77 #if defined USE_GETTEXT_STATIC\r
78 /* exported functions in static library libintl.a \r
79    and supporting macros\r
80    you should link with -lintl (mingw32) */\r
81 extern char *gettext__(const char *__msgid);\r
82 extern char *dgettext__(const char *__domainname,const char *__msgid);\r
83 extern char *dcgettext__(const char *__domainname,const char *__msgid, int __category);\r
84 extern char *textdomain__(const char *__domainname);\r
85 extern char *bindtextdomain__(const char *__domainname,const char *__dirname);\r
86 #define gettext(szMsgId) gettext__(szMsgId)\r
87 #define dgettext(szDomain,szMsgId) dgettext__(szDomain,szMsgId)\r
88 #define dcgettext(szDomain,szMsgId,iCategory) dcgettext__(szDomain,szMsgId,iCategory)\r
89 #define textdomain(szDomain) textdomain__(szDomain)\r
90 #define bindtextdomain(szDomain,szDirectory) bindtextdomain__(szDomain,szDirectory)\r
91 // dummy - for static linkage -  calling _putenv from within the DLL\r
92 #define gettext_putenv(a) _putenv(a)\r
93 #endif /* STATIC */\r
94 \r
95 #if defined DONT_USE_GETTEXT\r
96 /* DON'T USE GETTEXT AT ALL\r
97    MAKROS TO MAKE CODE COMPILE WELL, BUT GETTEXT WILL NOT BE USESD\r
98 */\r
99 # define gettext(Msgid) (Msgid)\r
100 # define dgettext(Domainname, Msgid) (Msgid)\r
101 # define dcgettext(Domainname, Msgid, Category) (Msgid)\r
102 # define textdomain(Domainname) ((char *) Domainname)\r
103 # define bindtextdomain(Domainname, Dirname) ((char *) Dirname)\r
104 // dummy - for static linkage -  calling _putenv from within the DLL\r
105 # define gettext_putenv(a) _putenv(a)\r
106 #endif /* DON'T USE AT ALL */\r
107 \r
108 #if defined(__cplusplus)\r
109 } /* extern "C" */\r
110 #endif\r
111 \r
112 #endif /*!defined(__LIBINTL_H_INCLUDED)*/\r