Mercurial > hg > RemoteEditor > vim7
view src/REPNOTE.txt @ 49:000769ce6c9d default tip
Added tag v7-3-618 for changeset 67300faee616
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 01 Aug 2012 18:08:37 +0900 |
parents | 8d4ffb7c9f4e |
children |
line wrap: on
line source
Tue Oct 28 09:57:29 JST 2008 utf-8 encoding でないと動作しないので、それをチェックした方が良い。 session は不要。session 毎に channelを開ける(現状では)必要があるので、 rep_T を切替える方が良いらしい。 Tue Oct 28 01:28:47 JST 2008 まぁ、一応、それっぽくはなって来たかな。 readが0を返す場合と、-1を返す場合がある。0の場合は、 selectの関係があるので、close()しない方が良いと思う。 SessionManagerが死ぬと、read() で無限ループに入ってしまう。 Tue Oct 28 00:40:44 JST 2008 mode change の最初のml_replace で、delete command が出てない。 prevline==-1 のcheckのせいだった delete command のasserttion がfailすることがある。 assert del_cmd==0 は正しくない ml_append 複数行(n) appendすると、prev_line_flushが xtr=1 で複数回呼ばれ rep_register では、xtr=n となる。 ml_delete 複数行(n) deleteすると、prev_line_flushが xtr=-1 で複数回呼ばれ rep_register では、xtr=-n となる。 Mon Oct 27 15:53:19 JST 2008 直せば直すほど、動かなくなってくる。joinのsessionが変らしい。 Done: read がでたらめだった... Sun Oct 26 21:45:49 JST 2008 なんか、でたらめな感じ... そもそも、コマンドがちゃんと 読めてない? command を読み込む時に、 三回も malloc して、しかも、 一回は、free してない。 Sun Sep 7 20:18:14 JST 2008 ml_replace 文字のinsert の時には毎回呼ばれる 文字のdeleteの時には、最初の一回しか呼ばれない ml_append 行のopen の時に一回だけ呼ばれる 複数行appendしても、一回ずつ呼ばれる ml_delete 複数行deleteしても、一回ずつ呼ばれる changed_common これらが呼ばれて変更があった時に呼ばれる 複数行の変更は一回にまとめられて、変更行数がxtraに入る というわけなので、以下のようなアルゴリズムになると思われる ml_* で、prev_line_flushを呼ぶ。 prev_line とcurrent lineを比較して異なっていたら、 insert されているdelete commandがあったらキャンセルする 溜っているのは、changed_commonのreplaceのケースのみ prev_line をcurrent lineに設定して、 delete の場合は、DELETE_CMDとして現在の行をセーブして終了 ml_deleteは1行毎に呼ばれる 送ってしまっても構わない append の場合は何もしない 最後にまとめてchanged_common でINSERT_CMDを発行すれば良い` あとはreplaceの場合となる 既にprev_lineがsaveしてあったら何もしないで終了 文字のinsertの場合 そうでなかったら、current lineを DELETE_CMD としてセーブする 最初のreplaceの場合 changed_common で、 xtra < 0 の場合は何もしないで溜ったコマンドを送信 ml_delete の分だけDELETE_CMDが送信される (送ってなければ) xtra > 0 の場合は、INSERT_CMD を行数の分だけ送信 xtra == 0 の場合は、INSERT_CMD を送信して、 現在行をDELETE_CMDとしてセーブ (ml_replace は文字の削除では呼ばれないので、ここでセーブする必要がある)