・行番号の表示がロジック単位(改行単位)のとき、桁の算出基準が正しくないバグの修正 場合によってはpszLineNumがバッファオーバーランする可能性があります。
再現方法: 1ロジック行で100,000桁等のデータを用意 10桁で折り返し表示 全行選択 「選択範囲内全行行番号付きコピー」を実行 他のウィンドウなどに貼り付け 行番号が右揃いになっていない
PatchUnicode: #961
Diff:
--- old +++ new @@ -1,2 +1,10 @@ ・行番号の表示がロジック単位(改行単位)のとき、桁の算出基準が正しくないバグの修正 場合によってはpszLineNumがバッファオーバーランする可能性があります。 + +再現方法: +1ロジック行で100,000桁等のデータを用意 +10桁で折り返し表示 +全行選択 +「選択範囲内全行行番号付きコピー」を実行 +他のウィンドウなどに貼り付け +行番号が右揃いになっていない
[r3883]でコミットしました。
Commit: [r3883]
新規作成で改行せずに数文字入力して、「選択範囲内全行行番号付きコピー」するとバッファオーバーフローします。 同じ範囲を選択してもなぜか、1行のみだとGetTo().y=0で、2行以上だとGetTo().y=1になるようです。
いままでは、DetectWidthOfLineNumberArea_calculateで計算していたので、 最低桁が3桁以上(trunk/HEADでは設定で2桁以上)だったのが、 最低桁が1桁になってprintfで" %d:"でスペースが1つついているからダメみたいです。
同じ範囲を選択しても
「xx chars (1 line)selected.」と表示されていても、カーソルが次の行の行頭にあるときは、 GetTo()y=1になるけど、そういうことではない?
追記: trunk/HEADの設定でも最低2桁設定+1して返されるので戻り値は3以上でした。
そういうことではない?
すみません。違うみたいでした。 呼び出し元のCopySelectedAllLinesで選択範囲をいじってる影響ですね もう少し詳しく見てみます。
新しくトラッカーに登録しました。パッチ付き [patchunicode:#961]
Log in to post a comment.
Diff:
[r3883]でコミットしました。
Related
Commit: [r3883]
新規作成で改行せずに数文字入力して、「選択範囲内全行行番号付きコピー」するとバッファオーバーフローします。
同じ範囲を選択してもなぜか、1行のみだとGetTo().y=0で、2行以上だとGetTo().y=1になるようです。
いままでは、DetectWidthOfLineNumberArea_calculateで計算していたので、
最低桁が3桁以上(trunk/HEADでは設定で2桁以上)だったのが、
最低桁が1桁になってprintfで" %d:"でスペースが1つついているからダメみたいです。
「xx chars (1 line)selected.」と表示されていても、カーソルが次の行の行頭にあるときは、
GetTo()y=1になるけど、そういうことではない?
追記:
trunk/HEADの設定でも最低2桁設定+1して返されるので戻り値は3以上でした。
Last edit: Moca 2015-01-02
すみません。違うみたいでした。
呼び出し元のCopySelectedAllLinesで選択範囲をいじってる影響ですね
もう少し詳しく見てみます。
新しくトラッカーに登録しました。パッチ付き
[patchunicode:#961]
Related
PatchUnicode:
#961Last edit: Moca 2015-01-03