[5640] 折り返し有効時のテキスト全選択ga 
2006/11/28 (火) 12:41:47 ぽよん
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
sakura 1.5.13.0でとりあえずの再現手順です。調査をお願いいたします。

*1.「現在のウィンドウ幅で折り返し」を有効にする
*2.以下のように2行入力("↓"は改行の意味)

aaa↓
bbb↓
*3.2行目の先頭にカーソルを置いてEnter(空行)
aaa↓

bbb↓
*4.Ctrl+Aで全選択後、Escapeで解除
*5.再度2行目の先頭にカーソルを置いてEnter(空行)
*6.Ctrl+Aで全選択しようとすると最終行が選択されない



[5643] Re:折り返し有効時のテキスト全選択ga 
2006/11/29 (水) 10:42:09 じゅうじ
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; InfoPath.1)
2つ前のバージョンからです。Yahoo! Junk に、
全選択だけを戻した実行ファイル置きました。
sakura_selectall.lzh (VC++6)
緊急ですので、直れば消します。


[5644] 矩形選択も不正動作 
2006/11/29 (水) 22:41:00 ryoji
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1) Gecko/20061010 Firefox/2.0
これ、最新の 1.5.13.0 だけおかしくなってるみたいですね。

既存ファイルを開いて全選択、ESCで解除してから、最終行以外のところにいくつか改行を追加して再度全選択したときにも最終行付近が選択されなくなっています。
全選択以外に、矩形選択の表示も変になってます。

全選択や矩形選択がおかしくなる典型的なケースについて、途中までの手順をマクロ記録しました。
後述のマクロを新規ファイルの状態から実行すると、

1↓
2↓
3↓
4↓
5↓
[EOF]

になって、1↓の行が矩形選択状態になります。
マクロは矩形選択モードを解除せずに終わっているので、続けて下矢印キーを4回押せば全部の行が反転するはずですが、3↓の行は反転しません。
これに続けて、
F5 で表示更新して ESC を入力すると今度は 3↓の行だけ反転します。
さらに続けて、
F5 で表示更新して Ctrl+Aでは先頭の2行しか選択されません。

---再現用マクロ---
S_Char(52);     // 文字入力
S_Char(13);     // 文字入力
S_Char(53);     // 文字入力
S_Char(13);     // 文字入力
S_GoFileTop(0); // ファイルの先頭に移動
S_BeginBoxSelect(0);    // 矩形範囲選択開始
S_Right(0);     // カーソル右移動
S_Down(0);      // カーソル下移動
S_CancelMode(0);        // 各種モードの取り消し
S_GoFileTop(0); // ファイルの先頭に移動
S_Char(49);     // 文字入力
S_Char(13);     // 文字入力
S_Char(50);     // 文字入力
S_Char(13);     // 文字入力
S_Char(51);     // 文字入力
S_Char(13);     // 文字入力
S_GoFileTop(0); // ファイルの先頭に移動
S_BeginBoxSelect(0);    // 矩形範囲選択開始
S_Right(0);     // カーソル右移動
S_Right(0);     // カーソル右移動
S_Right(0);     // カーソル右移動


[5645] 問題回避版をUPしました 
2006/11/29 (水) 23:04:26 ryoji
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1) Gecko/20061010 Firefox/2.0
Patches#1557887 「EOFを含む矩形範囲選択でEOF以降が反転」
(EOF_reversed2_r1001.diff ---> sakura/trunk#1014)
からおかしくなっていると思います。

EOF位置のキャッシュ機能がおまけで追加されているみたいなんですが、そこだけ部分的に除去したところ >>data:5640, >>data:5644 とも正しく動作している感じです。
http://sakura.qp.land.to/?Junk%2F17
(バイナリ&修正パッチ)
EOFキャッシュが正確に動くようになれば問題は無いのかな〜と思いますが、その辺りはどう手を入れればいいのか自分もよくわかってないです。


[5652] Re:問題回避版をUPしました 
2006/12/1 (金) 09:36:23 もか
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.0.7) Gecko/20060910 SeaMonkey/1.0.5
▼ ryojiさん, じゅうじさん
バグ混入させたみたいです。すみません。
緊急の対応ありがとうございます。

現在コンパイルテスト・確認はとっていないのですが
CLayoutMgr_New.cpp(rev 1014)のキャッシュ更新を促す個所は、
  845         if( nCurLine == m_pcDocLineMgr->GetLineCount() ){
  846                 m_nLineTypeBot = nCOMMENTMODE_Prev;
  847                 // 2006.10.01 Moca 最終行が変更された。EOF位置情報を破棄する。
  848                 m_nEOFColumn = -1;
  849                 m_nEOFLine = -1;
  850         }
で、ファイルの途中だけ更新され、
かつレイアウト情報更新が末尾までこない場合、
この分岐は条件が成立しないのをすっかり忘れていました。
よって桁位置が変わった場合は検出可能ですが、
行番号だけずれた場合がおかしいようです。

 CLayoutMgr::DoLayout_Rangeの先頭で必ず
  m_nEOFColumn = -1;
  m_nEOFLine = -1;
でとしてキャッシュ更新マークにすれば修正されるはずです。


[5650] Re:折り返し有効時のテキスト全選択んが 
2006/11/30 (木) 03:31:12 じゅうじ
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
2つ前の、1.5.12.0 (Sep. 23, 2006)
[ 1530740 ] 全て選択の選択範囲末尾が不正確
の時以降と見ました。それで、
--- sakura_core/CEditView_Command.cpp        (revision 987)
@@ -2198,7 +2198,12 @@
の、ファイルだけ修正を戻しました。

Yahoo! Junk/sakura_selectall.lzh (VC++6)
gentaさんの新規関数をMocaさんがさらに修正されてます。

(いつもの)#タスクトレイに常駐しているの、消してから起動してください。


[5654] Re:折り返し有効時のテキスト全選択ga 
2006/12/2 (土) 17:09:36 じゅうじ
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)
▼ げんたさん
すみません、疑って。
全選択で履歴を眺めていたら、最新バージョンのちょうど1つ前に「全選択」という文字があったので、それに決めて後は突っ走ってしまいました。
コンパイル&テスト用のPCを再度確認したら、9月のバージョンはzipすらダウンロードしてませんでした。(やれやれ)
多分その時の心境としては、zipで確認する手間を省いたんだと思います。なにせ、とにかく全選択の機能が動く最新版が欲しかったので。

2つ前と誤ったのは、SourceForge DownloadのFile Releasesに、1番上にあるのが現在の最新バージョンと思わなくて、1.5.13.0 が2つ前と思ってしまいました。WikiのHistoryは、何故か、一番上にテンプレが有って、2番目が最新ですよ。テンプレは、2番目とかに持ってくる…は、別の人ですね。


[5655] Re2:折り返し有効時のテキスト全選択ga 
2006/12/2 (土) 18:40:01 maru
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
▼ じゅうじさん
> WikiのHistoryは、何故か、一番上にテンプレが有って、

一番上はテンプレではなく、開発中の最新版の意味です。
コミットされいてリリース待ちになっている部分、つまり次バージョンで変更が決定している内容をまとめるページです。
たまたま今はSVNの最新と1.5.13.0に差異がないので、History/Nextが空っぽになっております。

リリース時に誰かが変更履歴をまとめるのは結構大変なので、コミットするたびに逐次変更履歴を追記する運用にしております。
実は、このHistory/Nextのページこそが、wikiを立ち上げた最大の目的だったりします。

ちょっと分かりにくいですか?名前(History/Next)が良くないとか。


[5657] Re3:折り返し有効時のテキスト全選択ga 
2006/12/3 (日) 16:24:34 じゅうじ
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
▼ maruさん
> ちょっと分かりにくいですか?名前(History/Next)が良くないとか。

有難う御座います。
History/Next は、雛型ではなく別格なのですね。
水平線の棒を入れるとか、後は、フォントを変えたりすると、良かったと思います。

まだ、Historyの話ですが、
コンパイル&テスト用PCと書きましたが、いつも使っている、(この)PCでは、やはり、
1.5.12.0 で、不具合が発生していました。
開発中のバージョン番号を見て、2つ前だと思ってしまいました、ご迷惑おかけしました。
よく見ると、開発中の1.5.13.0 でした、バージョン番号は当然1.5.12.0 です。
なぜか、仇を探そうとWiki探しましたけど、私には見つけられ無かったので、Yahoo!のJunk/2006-10-29_RC1 にアップロードして置きます。

INCM/CMT
Cyclamen v3.81