◀ANSI版開発トップへ
  • 4511 全て選択後、選択終了桁を取得すると 1が返る
    • 4512 Re:全て選択後、選択終了桁を取得すると 1が返る
      • 4516 Re2:全て選択後、選択終了桁を取得すると 1が返る
        • 4517 Re3:全て選択後、選択終了桁を取得すると 1が返る
          • 4531 Re4:全て選択後、選択終了桁を取得すると 1が返る
  • [4511] 全て選択後、選択終了桁を取得すると 1が返る tis 2006年07月10日 22:31

    バグらしき箇所を発見しましたので、ご報告致します。

    内容は、全て選択後、選択終了桁を取得すると 1が返る、というものです。
    マウスドラッグやカーソル移動では、意図した結果が返ってきます。

    環境はこちら
    SakuraEditor 1.5.10.1 (初回起動時の iniファイルを使用)
    PPA 1.24


    内容が不適切、板違い等ございましたら、削除致します。
    • [4512] Re:全て選択後、選択終了桁を取得すると 1が返る maru 2006年07月11日 01:20

      ▼ tisさん
      > 内容は、全て選択後、選択終了桁を取得すると 1が返る、というものです。
      > マウスドラッグやカーソル移動では、意図した結果が返ってきます。
      最終行に改行が無いときとに
      「すべて選択」をすると再現します。
      • [4516] Re2:全て選択後、選択終了桁を取得すると 1が返る tis 2006年07月13日 01:26

        ▼ maruさん
        > 最終行に改行が無いときとに
        > 「すべて選択」をすると再現します。

        つまり、以下の文章のような、
        最終行が空行で終わる形、ということでしょうか?

        Line1[CrLf]
        Line2[CrLf]
        [EOF]

        確かに上記の文章だと、範囲終了桁に 1が返るのも納得できます。
        しかし、以下の文章のような、
        最終行に文字入力があって終わる形でも 1が返ってきます。

        Line1[CrLf]
        Line2[EOF]

        上記文章だと、範囲終了桁は 6が返るはずです。
        マクロリファレンスを見る限りでは、
        そのはずだと思うのですが、如何でしょうか?
        • [4517] Re3:全て選択後、選択終了桁を取得すると 1が返る げんた 2006年07月13日 06:46

          ソースコードを見ると,「すべて選択」では
          SetSelectArea( 0, 0, m_pcEditDoc->m_cLayoutMgr.GetLineCount(), 0 );
          と総行数+1を無条件で選択しています.
          このように広めにとっても画面上では問題ないのでしょうが,マクロではこのとき指定したままの値が返ってしまいます.

          「すべて選択」の末尾の判定を厳密に行わないとだめですね.
          • [4531] Re4:全て選択後、選択終了桁を取得すると 1が返る げんた 2006年07月29日 12:53

            >「すべて選択」の末尾の判定を厳密に行わないとだめですね.
            Patches #1530740 にパッチを出しました.

            Command_GOLINEEND()を参考にしたのですが,足したり引いたり奇妙なことをやっていてよくわかりませんでした.
            なので,シンプルに最後の位置を求めるだけにしたので何か特別なケースが抜けているかもしれません.