--- japanese-custom-utf8.scm.orig +++ japanese-custom-utf8.scm @@ -387,6 +387,17 @@ ((("z" "/"). ())("・" "・" "・")) )) +(define string-to-list + (lambda (s) + (with-char-codec "UTF-8" + (lambda () + (map! (lambda (c) + (let ((str (list->string (list c)))) + (with-char-codec "ISO-8859-1" + (lambda () + (%%string-reconstruct! str))))) + (reverse! (string->list s))))))) + (define ja-rk-rule-basic-uim ja-rk-rule-basic) (define ja-rk-rule-rule->table (lambda (rule) --- japanese-utf8.scm.orig +++ japanese-utf8.scm @@ -31,7 +31,7 @@ ;; Japanese EUC (require-extension (srfi 1 2)) -(require-custom "japanese-custom.scm") +(require-custom "japanese-custom-utf8.scm") (require "util.scm") (define ja-rk-rule-additional @@ -613,8 +613,9 @@ (if (= ej0 #x8f) ; SS3? (<= #xa1 ej2 #xfe) ; IN_GR94() (<= #xa0 ej2 #xff)) ; IN_GR96() - (ja-euc-jp-code->euc-jp-string - (+ (* ej0 #x10000) (* ej1 #x100) ej2))))) + (iconv-code-conv (iconv-open "UTF-8" "EUC-JP") + (ja-euc-jp-code->euc-jp-string + (+ (* ej0 #x10000) (* ej1 #x100) ej2)))))) ;;; Convert reverse string list of JIS code to one EUC-JP kanji string ;;; ("d" "2" "0" "5") -> "亅" @@ -655,9 +656,8 @@ (valid? ; sigscheme/src/sigschemeinternal.h:ICHAR_VALID_UNICODEP() (or (<= 0 ucs #xd7ff) - (<= #xe000 ucs #x10ffff))) - (utf8-str (ucs->utf8-string ucs))) - (iconv-convert "EUC-JP" "UTF-8" utf8-str))) + (<= #xe000 ucs #x10ffff)))) + (ucs->utf8-string ucs))) ;;; Convert reverse string list to one EUC-JP kanji string (define (ja-kanji-code-input str-list) --- skk-utf8.scm.orig +++ skk-utf8.scm @@ -30,7 +30,7 @@ ;; SKK is a Japanese input method ;; -;; EUC-JP +;; UTF-8 ;; ;; SKKの入力は下記の状態で構成される ;; Following is list of SKK input state @@ -44,7 +44,7 @@ ;; 漢字コード入力 kcode ;; ;; -(require "japanese.scm") +(require "japanese-utf8.scm") (require-custom "generic-key-custom.scm") (require-custom "skk-custom.scm") (require-custom "skk-key-custom.scm") @@ -376,19 +376,19 @@ (set! skk-set-henkan-point-key '()) skk-ja-rk-rule) ((= input-rule skk-input-rule-azik) - (require "japanese-azik.scm") + (require "japanese-azik-utf8.scm") (set! skk-okuri-char-alist ja-azik-skk-okuri-char-alist) (set! skk-downcase-alist ja-azik-skk-downcase-alist) (set! skk-set-henkan-point-key ja-azik-skk-set-henkan-point-key) ja-azik-rule) ((= input-rule skk-input-rule-act) - (require "japanese-act.scm") + (require "japanese-act-utf8.scm") (set! skk-okuri-char-alist ja-act-skk-okuri-char-alist) (set! skk-downcase-alist ja-act-skk-downcase-alist) (set! skk-set-henkan-point-key ja-act-skk-set-henkan-point-key) ja-act-rule) ((= input-rule skk-input-rule-kzik) - (require "japanese-kzik.scm") + (require "japanese-kzik-utf8.scm") (set! skk-okuri-char-alist '()) (set! skk-downcase-alist '()) (set! skk-set-henkan-point-key '()) @@ -2327,7 +2327,7 @@ (register-im 'skk "ja" - "EUC-JP" + "UTF-8" skk-im-name-label skk-im-short-desc #f --- loader.scm.orig +++ loader.scm @@ -13,7 +13,7 @@ '( (skk "ja" - "EUC-JP" + "UTF-8" "SKK" "uim version of SKK input method" "skk")