[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

[MD:3013]emacs-21.1-proper-continuation-20020318.diff.gz



寺川です。

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