OSDN Git Service

* refine source code.
[nkf/nkf.git] / nkf.h
1 /*\r
2  * \r
3  * nkf.h - Header file for nkf\r
4  * \r
5  * $Id: nkf.h,v 1.3 2008/02/01 09:07:56 naruse Exp $\r
6  */\r
7 \r
8 #ifndef NKF_H\r
9 \r
10 /* Wrapper of configurations */\r
11 \r
12 #ifndef MIME_DECODE_DEFAULT\r
13 #define MIME_DECODE_DEFAULT STRICT_MIME\r
14 #endif\r
15 #ifndef X0201_DEFAULT\r
16 #define X0201_DEFAULT TRUE\r
17 #endif\r
18 \r
19 #if DEFAULT_NEWLINE == 0x0D0A\r
20 #define PUT_NEWLINE(func) do {\\r
21     func(0x0D);\\r
22     func(0x0A);\\r
23 } while (0)\r
24 #define OCONV_NEWLINE(func) do {\\r
25     func(0, 0x0D);\\r
26     func(0, 0x0A);\\r
27 } while (0)\r
28 #elif DEFAULT_NEWLINE == 0x0D\r
29 #define PUT_NEWLINE(func) func(0x0D)\r
30 #define OCONV_NEWLINE(func) func(0, 0x0D)\r
31 #else\r
32 #define DEFAULT_NEWLINE 0x0A\r
33 #define PUT_NEWLINE(func) func(0x0A)\r
34 #define OCONV_NEWLINE(func) func(0, 0x0A)\r
35 #endif\r
36 #ifdef HELP_OUTPUT_STDERR\r
37 #define HELP_OUTPUT stderr\r
38 #else\r
39 #define HELP_OUTPUT stdout\r
40 #endif\r
41 \r
42 \r
43 /* Compatibility definitions */\r
44 \r
45 #ifdef nkf_char\r
46 #elif defined(INT_IS_SHORT)\r
47 typedef long nkf_char;\r
48 #define NKF_INT32_C(n)   (n##L)\r
49 #else\r
50 typedef int nkf_char;\r
51 #define NKF_INT32_C(n)   (n)\r
52 #endif\r
53 \r
54 #if (defined(__TURBOC__) || defined(_MSC_VER) || defined(LSI_C) || defined(__MINGW32__) || defined(__EMX__) || defined(__MSDOS__) || defined(__WINDOWS__) || defined(__DOS__) || defined(__OS2__)) && !defined(MSDOS)\r
55 #define MSDOS\r
56 #if (defined(__Win32__) || defined(_WIN32)) && !defined(__WIN32__)\r
57 #define __WIN32__\r
58 #endif\r
59 #endif\r
60 \r
61 #ifdef PERL_XS\r
62 #undef OVERWRITE\r
63 #endif\r
64 \r
65 #ifndef PERL_XS\r
66 #include <stdio.h>\r
67 #endif\r
68 \r
69 #include <stdlib.h>\r
70 #include <string.h>\r
71 \r
72 #if defined(MSDOS) || defined(__OS2__)\r
73 #include <fcntl.h>\r
74 #include <io.h>\r
75 #if defined(_MSC_VER) || defined(__WATCOMC__)\r
76 #define mktemp _mktemp\r
77 #endif\r
78 #endif\r
79 \r
80 #ifdef MSDOS\r
81 #ifdef LSI_C\r
82 #define setbinmode(fp) fsetbin(fp)\r
83 #elif defined(__DJGPP__)\r
84 #include <libc/dosio.h>\r
85 void  setbinmode(FILE *fp)\r
86 {\r
87     /* we do not use libc's setmode(), which changes COOKED/RAW mode in device. */\r
88     int fd, m;\r
89     fd = fileno(fp);\r
90     m = (__file_handle_modes[fd] & (~O_TEXT)) | O_BINARY;\r
91     __file_handle_set(fd, m);\r
92 }\r
93 #else /* Microsoft C, Turbo C */\r
94 #define setbinmode(fp) setmode(fileno(fp), O_BINARY)\r
95 #endif\r
96 #else /* UNIX */\r
97 #define setbinmode(fp)\r
98 #endif\r
99 \r
100 #ifdef _IOFBF /* SysV and MSDOS, Windows */\r
101 #define       setvbuffer(fp, buf, size)       setvbuf(fp, buf, _IOFBF, size)\r
102 #else /* BSD */\r
103 #define       setvbuffer(fp, buf, size)       setbuffer(fp, buf, size)\r
104 #endif\r
105 \r
106 /*Borland C++ 4.5 EasyWin*/\r
107 #if defined(__TURBOC__) && defined(_Windows) && !defined(__WIN32__) /*Easy Win */\r
108 #define         EASYWIN\r
109 #ifndef __WIN16__\r
110 #define __WIN16__\r
111 #endif\r
112 #include <windows.h>\r
113 #endif\r
114 \r
115 #ifdef OVERWRITE\r
116 /* added by satoru@isoternet.org */\r
117 #if defined(__EMX__)\r
118 #include <sys/types.h>\r
119 #endif\r
120 #include <sys/stat.h>\r
121 #if !defined(MSDOS) || defined(__DJGPP__) /* UNIX, djgpp */\r
122 #include <unistd.h>\r
123 #if defined(__WATCOMC__)\r
124 #include <sys/utime.h>\r
125 #else\r
126 #include <utime.h>\r
127 #endif\r
128 #else /* defined(MSDOS) */\r
129 #ifdef __WIN32__\r
130 #ifdef __BORLANDC__ /* BCC32 */\r
131 #include <utime.h>\r
132 #else /* !defined(__BORLANDC__) */\r
133 #include <sys/utime.h>\r
134 #endif /* (__BORLANDC__) */\r
135 #else /* !defined(__WIN32__) */\r
136 #if defined(_MSC_VER) || defined(__MINGW32__) || defined(__WATCOMC__) || defined(__OS2__) || defined(__EMX__) || defined(__IBMC__) || defined(__IBMCPP__)  /* VC++, MinGW, Watcom, emx+gcc, IBM VAC++ */\r
137 #include <sys/utime.h>\r
138 #elif defined(__TURBOC__) /* BCC */\r
139 #include <utime.h>\r
140 #elif defined(LSI_C) /* LSI C */\r
141 #endif /* (__WIN32__) */\r
142 #endif\r
143 #endif\r
144 #endif\r
145 \r
146 #ifdef DEFAULT_CODE_LOCALE\r
147 \r
148 #ifndef __WIN32__ /* not win32 is posix */\r
149 #ifndef HAVE_LANGINFO_H\r
150 #define HAVE_LANGINFO_H\r
151 #endif\r
152 #ifndef HAVE_LOCALE_H\r
153 #define HAVE_LOCALE_H\r
154 #endif\r
155 #endif\r
156 \r
157 #ifdef HAVE_LANGINFO_H\r
158 #include <langinfo.h>\r
159 #endif\r
160 #ifdef HAVE_LOCALE_H\r
161 #include <locale.h>\r
162 #endif\r
163 \r
164 #endif /* DEFAULT_CODE_LOCALE */\r
165 \r
166 #define         FALSE   0\r
167 #define         TRUE    1\r
168 \r
169 #ifdef WIN32DLL\r
170 #include "nkf32.h"\r
171 #endif\r
172 \r
173 #endif /* NKF_H */\r