[Anthy-dev 934] Re: uim-skk の送り仮名の問題

Back to archive index

Etsushi Kato ekato****@ees*****
2004年 7月 17日 (土) 10:59:53 JST


加藤です。
もう一度向井さんの考えを試してみました。

On Fri, Jul 16, 2004 at 10:57:01PM +0900,
Jun Mukai <mukai****@jmuk*****> wrote:

> 私も residual-kana を利用するのは考えていたのですが、ルールを追加する
> のではなく、「今入力したキーが子音の場合、そのキーを(送り仮名ではなく) 
> 変換対象の方のローマ字変換前のもの(rkc?)に追加してから residual-kana 
> を実行する」という構造の方が簡単に行く気がします。
> 
> この場合、
> ・末尾が (子音 . 子音) の場合 → 同じキーな場合は「っ」が入る。さもな
>   ければルールにマッチしないので無視するだけ
> ・末尾が (母音 . 子音) の場合 → 母音はもうひらがなになっているはず。
>   子音は residual-kana で消されるので問題なし
> 
> となり、意図した動作が実現できるように思います。

すばらしいアイデアです。
以下のパッチで向井さんの意図どおり動きました。

田畑さん、こちらをコミットしていただけたらと思いますが、shiin-char? は
名前を変えて頂いてかまいませんし、もし skk 以外で使うことがあるなら、
util.scm に入れて頂いてもかまいません。

-- 
Etsushi Kato
ekato****@ees*****
-------------- next part --------------
--- skk.scm.orig	Thu Jul 15 11:14:28 2004
+++ skk.scm	Sat Jul 17 10:50:56 2004
@@ -834,6 +834,16 @@
 	  (skk-get-string sc res kana)
 	  #f))))
 
+(define shiin-char?
+  (lambda (c)
+    (and (alphabet-char? c)
+	 (and
+	  (not (= c 97))
+	  (not (= c 105))
+	  (not (= c 117))
+	  (not (= c 101))
+	  (not (= c 111))))))
+
 (define skk-proc-state-kanji
   (lambda (c key key-state)
     (let* ((sc (skk-current-context c))
@@ -904,6 +914,16 @@
 	     (set! key (to-lower-char key))
 	     (skk-context-set-okuri-head! sc
 					  (charcode->string key))
+	     (if (shiin-char? key)
+		 (begin
+		   (set! res
+			 (rk-push-key! rkc (charcode->string key)))
+		   (if res
+		       (skk-context-set-head! sc
+					      (cons
+					       res
+					       (skk-context-head sc))))
+		 ))
 	     (skk-append-residual-kana sc)
 	     #t)
 	   #t)


Anthy-dev メーリングリストの案内
Back to archive index