[Mew-dist 05204] Re: local-map
Mito
mit at example.com
1998年 6月 29日 (月) 18:04:17 JST
※ "山" こと kazu at example.com さんの
『[Mew-dist 05198] local-map』より
山> おそらく SKK でも同様だと思いますが、かんなではフェンスモードに入ると
山> local-map を書き換えて、もう一度入力されたキーに束縛されている関数(多
山> くの場合は新しい local-map にマッチした関数)を呼び出します。
SKK 10.38 しかないので、他のバージョンは知りませんが、SKK で
は、特になにもせずに日本語入力がちゃんとできました。
SKK では use-local-map は使わずに、minor-mode-map-alist を使っ
ているせいだと思いますが、text property まわりに関して、よく
わかっていませんので、別な理由かも知れません。
山> というわけで、property の local-map を設定していると、かんなが設定した
山> local-map が無視されます。試しに canna.el で local-map の設定と同時に
山> property の local-map を nil にするコードを書くとうまくいきました。
ということでしたので、原因がわかれば、どなたかが canna をちゃ
んと直してくれるだろうと思っていたのですが、どなたからも反応
がないようなので調べてみました。
use-local-map している所で overriding-terminal-local-map 変
数も設定するととりあえずは日本語入力できましたが、こんなもん
でいいのでしょうか?
詳しい方に添削していただきたいので、添付させていただきます。
山> (解決案2) Mew を昔に戻す。
W3 なんかも text property の local-map を使っているはずです
ので、戻す必要はないと思うのですが...。
--
6/29 17:58頃
NECソフトウェア新潟 水戸
mailto:mit at example.com \n
-------------- next part --------------
--- canna.el 1998/06/03 01:15:35 1.2
+++ canna.el 1998/06/29 08:22:18
@@ -533,7 +533,9 @@
(select-window (minibuffer-window))
(set-window-buffer (minibuffer-window)
(get-buffer-create canna:*menu-buffer*))
- (use-local-map canna-minibuffer-mode-map) ))
+ (use-local-map canna-minibuffer-mode-map)
+ (setq overriding-terminal-local-map canna-minibuffer-mode-map)
+ ))
)
(defun canna:minibuffer-input (str len revpos revlen nfixed)
@@ -570,6 +572,7 @@
(get-buffer-create canna:*menu-buffer*))
(use-local-map canna-minibuffer-mode-map)
+ (setq overriding-terminal-local-map canna-minibuffer-mode-map)
; (canna:yomi-attr-off (point-min) (point-max) )
; (canna:henkan-attr-off (point-min) (point-max) )
@@ -597,6 +600,7 @@
(progn
(setq canna:*cursor-was-in-minibuffer* nil)
(use-local-map canna:*minibuffer-local-map-backup*)
+ (setq overriding-terminal-local-map nil)
;; ミニバッファウィンドウのバッファを元に戻す。
(set-window-buffer (minibuffer-window) canna:*saved-minibuffer*)
@@ -621,6 +625,7 @@
kana-to-kanji translation, even if you are in the minibuffer."
(interactive "p")
(use-local-map canna:*minibuffer-local-map-backup*)
+ (setq overriding-terminal-local-map nil)
(set-window-buffer (minibuffer-window) canna:*saved-minibuffer*)
(select-window canna:*previous-window*)
(canna:functional-insert-command2 last-command-char arg) )
@@ -763,7 +768,9 @@
(buffer-disable-undo (current-buffer))) ; append by knak 97.10.21
(if (boundp 'disable-undo)
(setq disable-undo canna:*fence-mode*))
- (use-local-map canna-mode-map) )
+ (use-local-map canna-mode-map)
+ (setq overriding-terminal-local-map canna-mode-map)
+ )
(defun canna:enter-canna-mode-and-functional-insert ()
(canna:enter-canna-mode)
@@ -773,6 +780,7 @@
(defun canna:quit-canna-mode ()
(cond (canna:*fence-mode*
(use-local-map canna:*local-map-backup*)
+ (setq overriding-terminal-local-map nil)
(setq canna:*fence-mode* nil)
(if canna:*exit-japanese-mode*
(progn
Mew-dist メーリングリストの案内