Menu

#928 選択範囲内全行行番号付きコピーの行番号桁不正

None
closed
nobody
None
5
2015-01-03
2014-11-30
Moca
No

・行番号の表示がロジック単位(改行単位)のとき、桁の算出基準が正しくないバグの修正
場合によってはpszLineNumがバッファオーバーランする可能性があります。

再現方法:
1ロジック行で100,000桁等のデータを用意
10桁で折り返し表示
全行選択
「選択範囲内全行行番号付きコピー」を実行
他のウィンドウなどに貼り付け
行番号が右揃いになっていない

1 Attachments

Related

PatchUnicode: #961

Discussion

  • Moca

    Moca - 2014-11-30
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,2 +1,10 @@
     ・行番号の表示がロジック単位(改行単位)のとき、桁の算出基準が正しくないバグの修正
     場合によってはpszLineNumがバッファオーバーランする可能性があります。
    +
    +再現方法:
    +1ロジック行で100,000桁等のデータを用意
    +10桁で折り返し表示
    +全行選択
    +「選択範囲内全行行番号付きコピー」を実行
    +他のウィンドウなどに貼り付け
    +行番号が右揃いになっていない
    
    • Group: -->
     
  • Moca

    Moca - 2014-12-04

    [r3883]でコミットしました。

     

    Related

    Commit: [r3883]

  • Moca

    Moca - 2014-12-04
    • status: open --> closed
     
  • syat

    syat - 2015-01-02

    新規作成で改行せずに数文字入力して、「選択範囲内全行行番号付きコピー」するとバッファオーバーフローします。
    同じ範囲を選択してもなぜか、1行のみだとGetTo().y=0で、2行以上だとGetTo().y=1になるようです。

     
  • Moca

    Moca - 2015-01-02

    いままでは、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
  • Moca

    Moca - 2015-01-02

    そういうことではない?

    すみません。違うみたいでした。
    呼び出し元のCopySelectedAllLinesで選択範囲をいじってる影響ですね
    もう少し詳しく見てみます。

     
  • Moca

    Moca - 2015-01-03

    新しくトラッカーに登録しました。パッチ付き
    [patchunicode:#961]

     

    Related

    PatchUnicode: #961


    Last edit: Moca 2015-01-03

Log in to post a comment.

MongoDB Logo MongoDB