村田さんフォローありがとうございます。
>>>> In
<14213.61136.609620.72159A(a)bibross.muse.ba2.so-net.ne.jp>
>>>> Masahiro MURATA (村田全寛) <muse(a)ba2.so-net.ne.jp> wrote:
山岡> 1. henkan-quit() が呼ばれたときに egg:*in-fence-mode* が nil に
山岡> なっているのはどういう場合なんでしょうか?
村田さん> henkan-region のあと,henkan-quit した場合です。
山岡> 2. henkan-quit() で egg:*in-fence-mode* が nil だった場合に
山岡> egg:*region-start* と egg:*region-end* を nil にする必要はあ
山岡> るのでしょうか?
村田さん> 上記の後,もう一度 henkan-region すると,エラーになってその
村田さん> 後のキー入力がいっさいできなくなるので必要です。
なるほど、良くわかりました。実際にやってみて *scratch* バッファを一つ
潰しました。(^^;;)
してみると
>>>> In <yosuiu7uxuba.fsf(a)jpl.org>
>>>> Katsumi Yamaoka <yamaoka(a)jpl.org> wrote:
(let ((start (copy-marker egg:*region-start*))
(end (copy-marker egg:*region-end*)))
(henkan-quit)
(setq egg:*region-start* start
egg:*region-end* end))
この方法で egg:*region-start* と egg:*region-end* の値を復活させた場合
は、boiled-egg でも問題が起きる、と言うかこういう対策が不要だった従来
の egg-wnn と併用する場合でも、問題が起きるのではないでしょうか?
福居さん、確認してみていただけませんか?
ちなみにぼくはこんなふうにしました。
・適当なバッファにひらがなを書いて、
・領域指定してから M-x henkan-region
・確定させずに C-g など (henkan-quit) で抜けて、
・再びひらがなを書いて M-x henkan-region
もしこれで問題があるようなら、
(defun rK-cancel-trans()
"cancel KANJI transformation (KANJI -> roman(hankaku) or
hiragana/ktakana)."
(interactive)
(let ((start (copy-marker egg:*region-start*))
(end (copy-marker egg:*region-end*)))
(henkan-quit)
(if (not (eq be-trans-mode 'K)) nil
(delete-region start end)
(fence-exit-internal)
(insert be-trans-src)
(setq be-trans-mode 'x)
(setq disable-undo nil))))
とでもした方が良いように思います。
;; それにしても boiled-egg はすごいことをやっているんですね。:-p
村田さん> しかし,このエラーが回避できるなら他の方法でもよいと思います。
うう〜む、ぼくはもう降りたいです。(^^;;)
--
Katsumi Yamaoka <yamaoka(a)jpl.org>