OSDN Git Service

Show "(BOM)" if the byte sequence has BOM.
[nkf/nkf.git] / nkf.h
diff --git a/nkf.h b/nkf.h
index 30efd4b..7f41361 100755 (executable)
--- a/nkf.h
+++ b/nkf.h
-/*\r
- * \r
- * nkf.h - Header file for nkf\r
- * \r
- * $Id: nkf.h,v 1.2 2008/01/23 09:10:25 naruse Exp $\r
- */\r
-\r
-\r
-#ifndef NKF_H\r
-\r
-/* Wrapper of configurations */\r
-\r
-#ifndef MIME_DECODE_DEFAULT\r
-#define MIME_DECODE_DEFAULT STRICT_MIME\r
-#endif\r
-#ifndef X0201_DEFAULT\r
-#define X0201_DEFAULT TRUE\r
-#endif\r
-\r
-#if DEFAULT_NEWLINE == 0x0D0A\r
-#define PUT_NEWLINE(func) do {\\r
-    func(0x0D);\\r
-    func(0x0A);\\r
-} while (0)\r
-#define OCONV_NEWLINE(func) do {\\r
-    func(0, 0x0D);\\r
-    func(0, 0x0A);\\r
-} while (0)\r
-#elif DEFAULT_NEWLINE == 0x0D\r
-#define PUT_NEWLINE(func) func(0x0D)\r
-#define OCONV_NEWLINE(func) func(0, 0x0D)\r
-#else\r
-#define DEFAULT_NEWLINE 0x0A\r
-#define PUT_NEWLINE(func) func(0x0A)\r
-#define OCONV_NEWLINE(func) func(0, 0x0A)\r
-#endif\r
-#ifdef HELP_OUTPUT_STDERR\r
-#define HELP_OUTPUT stderr\r
-#else\r
-#define HELP_OUTPUT stdout\r
-#endif\r
-\r
-\r
-/* Compatibility definitions */\r
-\r
-#ifdef nkf_char\r
-#elif defined(INT_IS_SHORT)\r
-typedef long nkf_char;\r
-#define NKF_INT32_C(n)   (n##L)\r
-#else\r
-typedef int nkf_char;\r
-#define NKF_INT32_C(n)   (n)\r
-#endif\r
-\r
-#if (defined(__TURBOC__) || defined(_MSC_VER) || defined(LSI_C) || defined(__MINGW32__) || defined(__EMX__) || defined(__MSDOS__) || defined(__WINDOWS__) || defined(__DOS__) || defined(__OS2__)) && !defined(MSDOS)\r
-#define MSDOS\r
-#if (defined(__Win32__) || defined(_WIN32)) && !defined(__WIN32__)\r
-#define __WIN32__\r
-#endif\r
-#endif\r
-\r
-#ifdef PERL_XS\r
-#undef OVERWRITE\r
-#endif\r
-\r
-#ifndef PERL_XS\r
-#include <stdio.h>\r
-#endif\r
-\r
-#include <stdlib.h>\r
-#include <string.h>\r
-\r
-#if defined(MSDOS) || defined(__OS2__)\r
-#include <fcntl.h>\r
-#include <io.h>\r
-#if defined(_MSC_VER) || defined(__WATCOMC__)\r
-#define mktemp _mktemp\r
-#endif\r
-#endif\r
-\r
-#ifdef MSDOS\r
-#ifdef LSI_C\r
-#define setbinmode(fp) fsetbin(fp)\r
-#elif defined(__DJGPP__)\r
-#include <libc/dosio.h>\r
-void  setbinmode(FILE *fp)\r
-{\r
-    /* we do not use libc's setmode(), which changes COOKED/RAW mode in device. */\r
-    int fd, m;\r
-    fd = fileno(fp);\r
-    m = (__file_handle_modes[fd] & (~O_TEXT)) | O_BINARY;\r
-    __file_handle_set(fd, m);\r
-}\r
-#else /* Microsoft C, Turbo C */\r
-#define setbinmode(fp) setmode(fileno(fp), O_BINARY)\r
-#endif\r
-#else /* UNIX */\r
-#define setbinmode(fp)\r
-#endif\r
-\r
-#ifdef _IOFBF /* SysV and MSDOS, Windows */\r
-#define       setvbuffer(fp, buf, size)       setvbuf(fp, buf, _IOFBF, size)\r
-#else /* BSD */\r
-#define       setvbuffer(fp, buf, size)       setbuffer(fp, buf, size)\r
-#endif\r
-\r
-/*Borland C++ 4.5 EasyWin*/\r
-#if defined(__TURBOC__) && defined(_Windows) && !defined(__WIN32__) /*Easy Win */\r
-#define         EASYWIN\r
-#ifndef __WIN16__\r
-#define __WIN16__\r
-#endif\r
-#include <windows.h>\r
-#endif\r
-\r
-#ifdef OVERWRITE\r
-/* added by satoru@isoternet.org */\r
-#if defined(__EMX__)\r
-#include <sys/types.h>\r
-#endif\r
-#include <sys/stat.h>\r
-#if !defined(MSDOS) || defined(__DJGPP__) /* UNIX, djgpp */\r
-#include <unistd.h>\r
-#if defined(__WATCOMC__)\r
-#include <sys/utime.h>\r
-#else\r
-#include <utime.h>\r
-#endif\r
-#else /* defined(MSDOS) */\r
-#ifdef __WIN32__\r
-#ifdef __BORLANDC__ /* BCC32 */\r
-#include <utime.h>\r
-#else /* !defined(__BORLANDC__) */\r
-#include <sys/utime.h>\r
-#endif /* (__BORLANDC__) */\r
-#else /* !defined(__WIN32__) */\r
-#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__WATCOMC__) || defined(__OS2__) || defined(__EMX__) || defined(__IBMC__) || defined(__IBMCPP__)  /* VC++, MinGW, Watcom, emx+gcc, IBM VAC++ */\r
-#include <sys/utime.h>\r
-#elif defined(__TURBOC__) /* BCC */\r
-#include <utime.h>\r
-#elif defined(LSI_C) /* LSI C */\r
-#endif /* (__WIN32__) */\r
-#endif\r
-#endif\r
-#endif\r
-\r
-#ifndef __WIN32__ /* not win32 is posix */\r
-#define HAVE_LANGINFO_H\r
-#define HAVE_LOCALE_H\r
-#endif\r
-\r
-#ifdef HAVE_LANGINFO_H\r
-#include <langinfo.h>\r
-#endif\r
-#ifdef HAVE_LOCALE_H\r
-#include <locale.h>\r
-#endif\r
-\r
-#define         FALSE   0\r
-#define         TRUE    1\r
-\r
-#ifdef WIN32DLL\r
-#include "nkf32.h"\r
-#endif\r
-\r
-#endif\r
+/*
+ * 
+ * nkf.h - Header file for nkf
+ * 
+ * $Id: nkf.h,v 1.6 2008/11/07 02:43:43 naruse Exp $
+ */
+
+#ifndef NKF_H
+#define NKF_H
+
+/* Wrapper of configurations */
+
+#ifndef MIME_DECODE_DEFAULT
+#define MIME_DECODE_DEFAULT STRICT_MIME
+#endif
+#ifndef X0201_DEFAULT
+#define X0201_DEFAULT TRUE
+#endif
+
+#if DEFAULT_NEWLINE == 0x0D0A
+#elif DEFAULT_NEWLINE == 0x0D
+#else
+#define DEFAULT_NEWLINE 0x0A
+#endif
+#ifdef HELP_OUTPUT_STDERR
+#define HELP_OUTPUT stderr
+#else
+#define HELP_OUTPUT stdout
+#endif
+
+
+/* Compatibility definitions */
+
+#ifdef nkf_char
+#elif defined(INT_IS_SHORT)
+typedef long nkf_char;
+#define NKF_INT32_C(n)   (n##L)
+#else
+typedef int nkf_char;
+#define NKF_INT32_C(n)   (n)
+#endif
+
+#if (defined(__TURBOC__) || defined(_MSC_VER) || defined(LSI_C) || (defined(__WATCOMC__) && defined(__386__) && !defined(__LINUX__)) || defined(__MINGW32__) || defined(__EMX__) || defined(__MSDOS__) || defined(__WINDOWS__) || defined(__DOS__) || defined(__OS2__)) && !defined(MSDOS)
+#define MSDOS
+#if (defined(__Win32__) || defined(_WIN32)) && !defined(__WIN32__)
+#define __WIN32__
+#endif
+#endif
+
+#ifdef PERL_XS
+#undef OVERWRITE
+#endif
+
+#ifndef PERL_XS
+#include <stdio.h>
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+
+#if defined(MSDOS) || defined(__OS2__)
+#include <fcntl.h>
+#include <io.h>
+#if defined(_MSC_VER) || defined(__WATCOMC__)
+#define mktemp _mktemp
+#endif
+#endif
+
+#ifdef MSDOS
+#ifdef LSI_C
+#define setbinmode(fp) fsetbin(fp)
+#elif defined(__DJGPP__)
+#include <libc/dosio.h>
+void  setbinmode(FILE *fp)
+{
+    /* we do not use libc's setmode(), which changes COOKED/RAW mode in device. */
+    int fd, m;
+    fd = fileno(fp);
+    m = (__file_handle_modes[fd] & (~O_TEXT)) | O_BINARY;
+    __file_handle_set(fd, m);
+}
+#else /* Microsoft C, Turbo C */
+#define setbinmode(fp) setmode(fileno(fp), O_BINARY)
+#endif
+#else /* UNIX */
+#define setbinmode(fp) (void)(fp)
+#endif
+
+#ifdef _IOFBF /* SysV and MSDOS, Windows */
+#define       setvbuffer(fp, buf, size)       setvbuf(fp, buf, _IOFBF, size)
+#else /* BSD */
+#define       setvbuffer(fp, buf, size)       setbuffer(fp, buf, size)
+#endif
+
+/*Borland C++ 4.5 EasyWin*/
+#if defined(__TURBOC__) && defined(_Windows) && !defined(__WIN32__) /*Easy Win */
+#define         EASYWIN
+#ifndef __WIN16__
+#define __WIN16__
+#endif
+#include <windows.h>
+#endif
+
+#ifdef OVERWRITE
+/* added by satoru@isoternet.org */
+#if defined(__EMX__)
+#include <sys/types.h>
+#endif
+#include <sys/stat.h>
+#if !defined(MSDOS) || defined(__DJGPP__) /* UNIX, djgpp */
+#include <unistd.h>
+#if defined(__WATCOMC__)
+#include <sys/utime.h>
+#else
+#include <utime.h>
+#endif
+#else /* defined(MSDOS) */
+#ifdef __WIN32__
+#ifdef __BORLANDC__ /* BCC32 */
+#include <utime.h>
+#else /* !defined(__BORLANDC__) */
+#include <sys/utime.h>
+#endif /* (__BORLANDC__) */
+#else /* !defined(__WIN32__) */
+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__WATCOMC__) || defined(__OS2__) || defined(__EMX__) || defined(__IBMC__) || defined(__IBMCPP__)  /* VC++, MinGW, Watcom, emx+gcc, IBM VAC++ */
+#include <sys/utime.h>
+#elif defined(__TURBOC__) /* BCC */
+#include <utime.h>
+#elif defined(LSI_C) /* LSI C */
+#endif /* (__WIN32__) */
+#endif
+#endif
+#endif
+
+#if !defined(DEFAULT_CODE_JIS) && !defined(DEFAULT_CODE_SJIS) && \
+       !defined(DEFAULT_CODE_WINDOWS_31J) && !defined(DEFAULT_CODE_EUC) && \
+       !defined(DEFAULT_CODE_UTF8) && !defined(DEFAULT_CODE_LOCALE)
+#define DEFAULT_CODE_LOCALE
+#endif
+
+#ifdef DEFAULT_CODE_LOCALE
+
+#if defined(__WIN32__) /* not win32 should be posix */
+# ifndef HAVE_LOCALE_H
+#  define HAVE_LOCALE_H
+# endif
+#elif defined(__OS2__)
+# undef HAVE_LANGINFO_H /* We do not use kLIBC's langinfo. */
+# ifndef HAVE_LOCALE_H
+#  define HAVE_LOCALE_H
+# endif
+#elif defined(MSDOS)
+# ifndef HAVE_LOCALE_H
+#  define HAVE_LOCALE_H
+# endif
+#else
+# ifndef HAVE_LANGINFO_H
+#  define HAVE_LANGINFO_H
+# endif
+# ifndef HAVE_LOCALE_H
+#  define HAVE_LOCALE_H
+# endif
+#endif
+
+#ifdef HAVE_LANGINFO_H
+#include <langinfo.h>
+#endif
+#ifdef HAVE_LOCALE_H
+#include <locale.h>
+#endif
+
+#endif /* DEFAULT_CODE_LOCALE */
+
+#define         FALSE   0
+#define         TRUE    1
+
+#ifdef WIN32DLL
+#include "nkf32.h"
+#endif
+
+#endif /* NKF_H */