◀一般トップへ
  • 5242 サクラエディタで異常終了
    • 5261 Re:サクラエディタで異常終了
      • 5262 Re2:サクラエディタで異常終了
        • 5264 Re3:サクラエディタで異常終了
      • 5263 Re2:サクラエディタで異常終了
        • 5265 Re3:サクラエディタで異常終了
  • [5242] サクラエディタで異常終了 hokkaido_takeda 2006年05月25日 00:22

    いつもサクラエディタを使わせていただきありがとう
    ございます。
    以下条件で当方の環境で必ず異常終了しますので、
    調査していただけると助かります。

    1.一度保存済みのテキストファイルに下記のように
      入力します。
    a
    cccc
    ccccaaaaaad
    d【EOF】

    2.「ウィンドウ」から「左右に分割」をクリック
      します

    3.右ウィンドウに移動して「全て選択」します

    4.左ウィンドウに移動して4行目を削除します

    5.「上書き保存」します

    6.異常終了します
    • [5261] Re:サクラエディタで異常終了 ryoji 2006年06月03日 23:14

      > 5.「上書き保存」します

      ここで「上書き保存」せずに、全選択しているほうの
      ウィンドウをアクティブにするだけでも異常終了しますね。

      選択範囲の情報をステータスバーへ表示する処理
      CEditView::PrintSelectionInfoMsg()
      の中で落ちてます。
      • [5262] Re2:サクラエディタで異常終了 maru 2006年06月04日 16:16

        > CEditView::PrintSelectionInfoMsg()
        > の中で落ちてます。

        例1(最終行に改行がない場合)
        a
        cccc
        ccccaaaaaad
        d【EOF】

        例2(最終行に改行がある場合)
        a
        cccc
        ccccaaaaaad
        d
        【EOF】

        例1・例2ともに「すべて選択」での選択範囲は
        m_nSelectLineFrom 0
        m_nSelectColmFrom 0
        m_nSelectLineTo 4
        m_nSelectColmTo 0
        になっているようですが、何か理由があるのでしょうか。

        例2の4行目改行コードの前までを選択したときと
        例1の「すべて選択」の結果が同じのほうが
        自然な感じがするのですが。
        • [5264] Re3:サクラエディタで異常終了 maru 2006年06月04日 16:38

          よく考えたら最終行の改行コード有無は関係なかったです。
          abc
          def
          ghi
          [EOF]
          の内容で、
          1.左右に分割
          2.右ウインドウですべて選択
          3.左ウインドウで「ghi」の行を削除
          4.右ウインドウをアクティブ
          でも再現しますね。
      • [5263] Re2:サクラエディタで異常終了 yukihane 2006年06月04日 16:36

        メインエディタとしてサクラエディタを便利に使わせてもらっています。
        ついでにサクラエディタのソースでプログラミングの勉強を
        始めようと目論んでいるところです。
        よろしくお願いします。

        問題の件ですが、
        本来であれば
        非アクティブなペインの選択状態(CEditView::m_nSelectLineFromなど)
        も、アクティブペインと同じタイミングで更新する必要が
        あるのではないでしょうか。

        似たような現象として、以下のようなものもありました。
        (大した問題ではありませんが...)
        1.上の例で示されている文字列の3行目
        > ccccaaaaaad
        に、右ペインで行の最後にキャレットを移動させる。
        2.左ペインで3行目を削除。
        3.右ペインをアクティブにする。
        ⇒
        EOFの後ろにキャレットが表示される。
        これはキャレット位置状態が更新されていないことに
        よる問題ではないかと思います。


        異常終了の問題については、
        とりあえず非アクティブになったペインの選択状態を
        解除する、という案を考えてみましたが、
        本来の動作はどうあるべきでしょうか。
        • [5265] Re3:サクラエディタで異常終了 じゅうじ 2006年06月04日 21:50

          ▼ yukihaneさん
          > メインエディタとしてサクラエディタを便利に使わせてもらっています。
          > ついでにサクラエディタのソースでプログラミングの勉強を
          > 始めようと目論んでいるところです。
          > よろしくお願いします。
          >
          > 問題の件ですが、
          > 本来であれば
          > 非アクティブなペインの選択状態(CEditView::m_nSelectLineFromなど)
          > も、アクティブペインと同じタイミングで更新する必要が
          > あるのではないでしょうか。
          >
          > 異常終了の問題については、
          > とりあえず非アクティブになったペインの選択状態を
          > 解除する、という案を考えてみましたが、
          > 本来の動作はどうあるべきでしょうか。

          有難う御座います、もはや、勉強させて下さいのレベルではないですね。

          仕様について、これだと思う、関連リンク貼ってみます。
          左右分割OK
          1.5.3.3 [Notes] (2005-07-01 23:08)
          左右分割NG
          1.5.4.0 [Notes] (2005-07-15 23:07)

          >>web:223 maruさん
          1.5.4.0 >>data:4549 げんたさん
          2005.07.09 >>dev:3972 選択範囲の行数・バイト数表示 (げんた)

          http://members.at.infoseek.co.jp/sakura_editor/snapshot/printselectinfo.diff