寺川です。 emacs-21.1 の 折り返し行に纏わる vertial-motion , scroll-up , scroll-down 及び 表示関係の不具合を修正するパッチを作りました。 いつの間にか1ヶ月経っているわけですが、ようやく一段落付きました。 パッチの信頼性を評価するためには、解説も必要かと思うので、 また後日用意するつもりですが、とりあえずパッチ本体だけ送ります。 バグ報告等よろしくお願いします。>みなさま また本家の方にコミットすることを考えた場合、どのようにすれば すみやかに事を運ぶことが出来るか等、教えてもらえますでしょうか? あと一点だけ、みなさんの意見を聞いてみたい事があります。 emacs の動作の仕様に関することなのですが、 現在次の様な動作をしています。 figure1 -------------------- aaaaaaaaaaaaaaaa[TAB\ TAB]Bccccccccccccccc\ Deeee X figure2 -------------------- BcccccccccccccccDeee\ e X figure3 -------------------- Cdddd X ウィンドウの幅は 20文字分になっていて、デフォルトの等幅フォントです。 figure1 が最初の状態。(scroll-up 1) すると、figure2 になります。 window start の marker が、タブの途中という状態を保持出来ないという制限から、 タブの次の位置から表示が始まっています。 figure2 の状態での、vertical-motion の動作は以下のようになってしまいます。 B の位置から (vertical-motion 1) で、Dの位置へ移動。 D の位置から (vertical-motion 1) で、Xの位置へ移動。 X の位置から (vertical-motion -1) で、D の位置へ移動。 D の位置から (vertical-motion -1) で、B の位置へ移動。 他のつまり、figure1 の状態で考えたのと同じ位置へ移動する、ということです。 figure2 の状態から、(scroll-up 1) すると、figure3 になります。 この時はカーソルの移動に異常な所は有りません。 表示されている範囲でのカーソルの動きという点の絞れば対処することが出来ると 思います。 しかし、elisp のインターフェースとしては、ウィンドウにどう表示されているか に関わりなく、バッファという操作対象だけを見て動作するべきでもあります。 この点について、みなさんはどう思われますでしょうか? (marker が、TAB の途中を示すことができたとしても、 window-start インターフェース では互換性を保てませんし、 いろいろ難しそうですが。) P.S. vertical-motion のバグをとっていて LIGHTS OUT というパズルを 思い出しました。 http://www.ztv.ne.jp/takao/k2/java-s/clrfl/ これでいうと、Lv2 の 3 くらいでしょうか。:) ---- Applause こと 寺川 愛印 applause@xxxxxxxxxx
Attachment:
emacs-21.1-proper-continuation-20020318.diff.gz
Description: Binary data