Commit | Line | Data |
---|---|---|
6c7a06a3 TT |
1 | /* Wide characters for gdb |
2 | Copyright (C) 2009 Free Software Foundation, Inc. | |
3 | ||
4 | This file is part of GDB. | |
5 | ||
6 | This program is free software; you can redistribute it and/or modify | |
7 | it under the terms of the GNU General Public License as published by | |
8 | the Free Software Foundation; either version 3 of the License, or | |
9 | (at your option) any later version. | |
10 | ||
11 | This program is distributed in the hope that it will be useful, | |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | GNU General Public License for more details. | |
15 | ||
16 | You should have received a copy of the GNU General Public License | |
17 | along with this program. If not, see <http://www.gnu.org/licenses/>. */ | |
18 | ||
19 | #ifndef GDB_WCHAR_H | |
20 | #define GDB_WCHAR_H | |
21 | ||
22 | /* If this host has wchar_t and if iconv is available (perhaps via GNU | |
23 | libiconv), then we arrange to use those. Otherwise, we provide a | |
24 | phony iconv which only handles a single character set, and we | |
25 | provide wrappers for the wchar_t functionality we use. */ | |
26 | #if defined(HAVE_ICONV) && defined(HAVE_WCHAR_H) | |
27 | ||
28 | #include <iconv.h> | |
29 | #include <wchar.h> | |
30 | #include <wctype.h> | |
31 | ||
32 | typedef wchar_t gdb_wchar_t; | |
33 | typedef wint_t gdb_wint_t; | |
34 | ||
35 | #define gdb_wcslen wcslen | |
36 | #define gdb_iswprint iswprint | |
37 | #define gdb_iswdigit iswdigit | |
38 | #define gdb_btowc btowc | |
39 | #define gdb_WEOF WEOF | |
40 | ||
41 | #define LCST(X) L ## X | |
42 | ||
43 | #else | |
44 | ||
45 | typedef char gdb_wchar_t; | |
46 | typedef int gdb_wint_t; | |
47 | ||
48 | #define gdb_wcslen strlen | |
49 | #define gdb_iswprint isprint | |
50 | #define gdb_iswdigit isdigit | |
51 | #define gdb_btowc /* empty */ | |
52 | #define gdb_WEOF EOF | |
53 | ||
54 | #define LCST(X) X | |
55 | ||
56 | /* This define is used elsewhere so we don't need to duplicate the | |
57 | same checking logic in multiple places. */ | |
58 | #define PHONY_ICONV | |
59 | ||
60 | #endif /* defined(HAVE_ICONV) && defined(HAVE_WCHAR_H) */ | |
61 | ||
62 | #endif /* GDB_WCHAR_H */ |