ruby-changes:8593
From: naruse <ko1@a...>
Date: Fri, 7 Nov 2008 11:59:56 +0900 (JST)
Subject: [ruby-changes:8593] Ruby:r20128 (trunk): * nkf.c: update to r1.188. fixes for 16bit environment.
naruse 2008-11-07 11:59:38 +0900 (Fri, 07 Nov 2008) New Revision: 20128 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=20128 Log: * nkf.c: update to r1.188. fixes for 16bit environment. Modified files: trunk/ChangeLog trunk/ext/nkf/nkf-utf8/config.h trunk/ext/nkf/nkf-utf8/nkf.c trunk/ext/nkf/nkf-utf8/nkf.h Index: ChangeLog =================================================================== --- ChangeLog (revision 20127) +++ ChangeLog (revision 20128) @@ -1,3 +1,7 @@ +Fri Nov 7 11:55:30 2008 NARUSE, Yui <naruse@r...> + + * nkf.c: update to r1.188. fixes for 16bit environment. + Fri Nov 7 07:43:27 2008 Nobuyoshi Nakada <nobu@r...> * thread.c (thread_timer): pthread_cond_timedwait returns ETIMEDOUT Index: ext/nkf/nkf-utf8/nkf.c =================================================================== --- ext/nkf/nkf-utf8/nkf.c (revision 20127) +++ ext/nkf/nkf-utf8/nkf.c (revision 20128) @@ -33,7 +33,7 @@ ***********************************************************************/ #define NKF_IDENT "$Id$" #define NKF_VERSION "2.0.8" -#define NKF_RELEASE_DATE "2008-10-28" +#define NKF_RELEASE_DATE "2008-11-07" #define COPY_RIGHT \ "Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa),2000 S. Kono, COW\n" \ "Copyright (C) 2002-2008 Kono, Furukawa, Naruse, mastodon" @@ -45,6 +45,11 @@ #include <windows.h> #include <locale.h> #endif +#if defined(__OS2__) +# define INCL_DOS +# define INCL_DOSERRORS +# include <os2.h> +#endif /* state of output_mode and input_mode @@ -267,6 +272,8 @@ #define DEFAULT_ENCIDX ISO_2022_JP #elif defined(DEFAULT_CODE_SJIS) #define DEFAULT_ENCIDX SHIFT_JIS +#elif defined(DEFAULT_CODE_WINDOWS_31J) +#define DEFAULT_ENCIDX WINDOWS_31J #elif defined(DEFAULT_CODE_EUC) #define DEFAULT_ENCIDX EUC_JP #elif defined(DEFAULT_CODE_UTF8) @@ -424,8 +431,8 @@ #define nkf_char_euc3_new(c) ((c) | PREFIX_EUCG3) #define nkf_char_unicode_new(c) ((c) | CLASS_UNICODE) #define nkf_char_unicode_p(c) ((c & CLASS_MASK) == CLASS_UNICODE) -#define nkf_char_unicode_bmp_p(c) ((c & VALUE_MASK) <= NKF_INT32_C(UNICODE_BMP_MAX)) -#define nkf_char_unicode_value_p(c) ((c & VALUE_MASK) <= NKF_INT32_C(UNICODE_MAX)) +#define nkf_char_unicode_bmp_p(c) ((c & VALUE_MASK) <= UNICODE_BMP_MAX) +#define nkf_char_unicode_value_p(c) ((c & VALUE_MASK) <= UNICODE_MAX) #ifdef NUMCHAR_OPTION static int numchar_f = FALSE; @@ -732,6 +739,21 @@ return str; } else return NULL; +#elif defined(__OS2__) +# if defined(INT_IS_SHORT) + /* OS/2 1.x */ + return NULL; +# else + /* OS/2 32bit */ + static char buf[16]; + ULONG ulCP[1], ulncp; + DosQueryCp(sizeof(ulCP), ulCP, &ulncp); + if (ulCP[0] == 932 || ulCP[0] == 943) + strcpy(buf, "Shift_JIS"); + else + sprintf(buf, "CP%lu", ulCP[0]); + return buf; +# endif #else return NULL; #endif @@ -744,20 +766,26 @@ char *encname = nkf_locale_charmap(); if (encname) enc = nkf_enc_find(encname); - if (enc < 0) enc = 0; return enc; } #endif /* DEFAULT_CODE_LOCALE */ static nkf_encoding* +nkf_utf8_encoding() +{ + return &nkf_encoding_table[UTF_8]; +} + +static nkf_encoding* nkf_default_encoding() { nkf_encoding *enc = 0; #ifdef DEFAULT_CODE_LOCALE enc = nkf_locale_encoding(); -#elif DEFAULT_ENCIDX +#elif defined(DEFAULT_ENCIDX) enc = nkf_enc_from_index(DEFAULT_ENCIDX); #endif + if (!enc) enc = nkf_utf8_encoding(); return enc; } @@ -855,7 +883,7 @@ " Default output encoding: " #ifdef DEFAULT_CODE_LOCALE "LOCALE (%s)\n", nkf_enc_name(nkf_default_encoding()) -#elif DEFAULT_ENCIDX +#elif defined(DEFAULT_ENCIDX) "CONFIG (%s)\n", nkf_enc_name(nkf_default_encoding()) #else "NONE\n" @@ -1551,7 +1579,7 @@ #if defined(UTF8_INPUT_ENABLE) || defined(UTF8_OUTPUT_ENABLE) static void -nkf_unicode_to_utf8(nkf_char val, int *p1, int *p2, int *p3, int *p4) +nkf_unicode_to_utf8(nkf_char val, nkf_char *p1, nkf_char *p2, nkf_char *p3, nkf_char *p4) { val &= VALUE_MASK; if (val < 0x80){ @@ -1583,7 +1611,7 @@ } static nkf_char -nkf_utf8_to_unicode(int c1, int c2, int c3, int c4) +nkf_utf8_to_unicode(nkf_char c1, nkf_char c2, nkf_char c3, nkf_char c4) { nkf_char wc; if (c1 <= 0x7F) { @@ -1884,7 +1912,7 @@ static nkf_char w16e_conv(nkf_char val, nkf_char *p2, nkf_char *p1) { - int c1, c2, c3, c4; + nkf_char c1, c2, c3, c4; nkf_char ret = 0; val &= VALUE_MASK; if (val < 0x80) { @@ -2101,7 +2129,7 @@ #define NKF_ICONV_NEED_TWO_MORE_BYTES -2 #define UTF16_TO_UTF32(lead, trail) (((lead) << 10) + (trail) - NKF_INT32_C(0x35FDC00)) static size_t -nkf_iconv_utf_16(int c1, int c2, int c3, int c4) +nkf_iconv_utf_16(nkf_char c1, nkf_char c2, nkf_char c3, nkf_char c4) { nkf_char wc; @@ -2144,7 +2172,7 @@ } static size_t -nkf_iconv_utf_32(int c1, int c2, int c3, int c4) +nkf_iconv_utf_32(nkf_char c1, nkf_char c2, nkf_char c3, nkf_char c4) { nkf_char wc; @@ -2428,7 +2456,7 @@ static void w_oconv(nkf_char c2, nkf_char c1) { - int c3, c4; + nkf_char c3, c4; nkf_char val; if (output_bom_f) { @@ -5569,7 +5597,7 @@ C%7 : 0 1 2 3 4 5 6 NUM : 2 0 3 4 5 X 1 */ - static const int jphone_emoji_first_table[7] = + static const nkf_char jphone_emoji_first_table[7] = {0xE1E0, 0xDFE0, 0xE2E0, 0xE3E0, 0xE4E0, 0xDFE0, 0xE0E0}; c3 = nkf_char_unicode_new(jphone_emoji_first_table[c1 % 7]); if ((c1 = (*i_getc)(f)) == EOF) LAST; @@ -5758,7 +5786,8 @@ } if (strcmp(long_option[i].name, "oc=") == 0){ enc = nkf_enc_find((char *)p); - if (enc <= 0) continue; + /* if (enc <= 0) continue; */ + if (!enc) continue; output_encoding = enc; continue; } Index: ext/nkf/nkf-utf8/nkf.h =================================================================== --- ext/nkf/nkf-utf8/nkf.h (revision 20127) +++ ext/nkf/nkf-utf8/nkf.h (revision 20128) @@ -51,7 +51,7 @@ #define NKF_INT32_C(n) (n) #endif -#if (defined(__TURBOC__) || defined(_MSC_VER) || defined(LSI_C) || defined(__MINGW32__) || defined(__EMX__) || defined(__MSDOS__) || defined(__WINDOWS__) || defined(__DOS__) || defined(__OS2__)) && !defined(MSDOS) +#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__ @@ -143,16 +143,35 @@ #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 -#ifndef __WIN32__ /* not win32 is posix */ -#ifndef HAVE_LANGINFO_H -#define HAVE_LANGINFO_H +#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 -#ifndef HAVE_LOCALE_H -#define HAVE_LOCALE_H -#endif -#endif #ifdef HAVE_LANGINFO_H #include <langinfo.h> @@ -171,4 +190,3 @@ #endif #endif /* NKF_H */ - Index: ext/nkf/nkf-utf8/config.h =================================================================== --- ext/nkf/nkf-utf8/config.h (revision 20127) +++ ext/nkf/nkf-utf8/config.h (revision 20128) @@ -44,9 +44,8 @@ /* #define DEFAULT_CODE_JIS */ /* #define DEFAULT_CODE_SJIS */ +/* #define DEFAULT_CODE_WINDOWS_31J */ /* #define DEFAULT_CODE_EUC */ /* #define DEFAULT_CODE_UTF8 */ -/* #define DEFAULT_CODE_LOCALE */ #endif /* _CONFIG_H_ */ - -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/