From 1ff45719130e7224b07e9625963248f9c408bdd7 Mon Sep 17 00:00:00 2001 From: naruse Date: Sat, 5 Mar 2005 07:53:14 +0000 Subject: [PATCH] * ext/nkf/nkf-utf8/nkf.c: follow nkf 1.65 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8077 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ ext/nkf/nkf-utf8/nkf.c | 24 +++++++++++++++++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4bfa1fccbf..01cdd327a6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sat Mar 5 16:50:00 2005 NARUSE, Yui + + * ext/nkf/nkf-utf8/nkf.c: follow nkf 1.65 + Sat Mar 5 16:29:26 2005 Hidetoshi NAGAI * ext/tk/lib/multi-tk.rb: freeze callback-entry objects diff --git a/ext/nkf/nkf-utf8/nkf.c b/ext/nkf/nkf-utf8/nkf.c index 128e28e762..f3470136e7 100644 --- a/ext/nkf/nkf-utf8/nkf.c +++ b/ext/nkf/nkf-utf8/nkf.c @@ -41,7 +41,7 @@ ***********************************************************************/ /* $Id$ */ #define NKF_VERSION "2.0.4" -#define NKF_RELEASE_DATE "2005-03-04" +#define NKF_RELEASE_DATE "2005-03-05" #include "config.h" static char *CopyRight = @@ -743,6 +743,9 @@ main(argc, argv) } else { int nfiles = argc; while (argc--) { + is_inputcode_mixed = FALSE; + is_inputcode_set = FALSE; + input_codename = ""; if ((fin = fopen((origfname = *argv++), "r")) == NULL) { perror(*--argv); return(-1); @@ -1884,6 +1887,7 @@ kanji_convert(f) { int c1, c2, c3; + int is_8bit = FALSE; module_connection(); c2 = 0; @@ -1948,6 +1952,7 @@ kanji_convert(f) /* 8 bit code */ if (!estab_f && !iso8859_f) { /* not established yet */ + if (!is_8bit) is_8bit = TRUE; c2 = c1; NEXT; } else { /* estab_f==TRUE */ @@ -2198,12 +2203,17 @@ kanji_convert(f) /* epilogue */ (*iconv)(EOF, 0, 0); if (!is_inputcode_set) - set_input_codename( - iconv == e_iconv ? "EUC-JP" : - iconv == s_iconv ? "Shift_JIS" : - iconv == w_iconv ? "UTF-8" : - iconv == w_iconv16 ? "UTF-16" : - "ASCII"); + { + if (is_8bit) { + struct input_code *p = input_code_list; + struct input_code *result = p; + while (p->name){ + if (p->score < result->score) result = p; + ++p; + } + set_input_codename(result->name); + } + } return 1; }