pcsxr-1.9.92
[pcsx_rearmed.git] / win32 / intl / libintl.h
CommitLineData
ef79bbde
P
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
7This program is free software; you can redistribute it and/or modify\r
8it under the terms of the GNU Lesser General Public License as published by\r
9the Free Software Foundation; either version 2, or (at your option)\r
10any later version.\r
11\r
12This program is distributed in the hope that it will be useful,\r
13but WITHOUT ANY WARRANTY; without even the implied warranty of\r
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
15GNU Lesser General Public License for more details.\r
16\r
17You should have received a copy of the GNU Lesser General Public License\r
18along with this program; if not, write to the Free Software\r
19Foundation, 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
27extern "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
68extern char *gettext(const char *szMsgId);\r
69extern char *dgettext(const char *szDomain,const char *szMsgId);\r
70extern char *dcgettext(const char *szDomain,const char *szMsgId,int iCategory);\r
71extern char *textdomain(const char *szDomain);\r
72extern char *bindtextdomain(const char *szDomain,const char *szDirectory);\r
73/* calling _putenv from within the DLL */\r
74extern 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
81extern char *gettext__(const char *__msgid);\r
82extern char *dgettext__(const char *__domainname,const char *__msgid);\r
83extern char *dcgettext__(const char *__domainname,const char *__msgid, int __category);\r
84extern char *textdomain__(const char *__domainname);\r
85extern 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