diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/nkf/nkf-utf8/nkf.c | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/ext/nkf/nkf-utf8/nkf.c b/ext/nkf/nkf-utf8/nkf.c index 128e28e76..f3470136e 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; } |
