◀ANSI版開発トップへ
  • 1530 ssrc_2002-02-09_p1.lzh
    • 1531 Re:ssrc_2002-02-09_p1.lzh
      • 1534 Re2:ssrc_2002-02-09_p1.lzh
        • 1537 Re3:ssrc_2002-02-09_p1.lzh
          • 1543 Re4:ssrc_2002-02-09_p1.lzh
            • 1544 Re5:ssrc_2002-02-09_p1.lzh
        • 1538 置換でアプリケーションエラー
          • 1548 Re:置換でアプリケーションエラー
            • 1549 Re2:置換でアプリケーションエラー
              • 1551 Re3:置換でアプリケーションエラー
                • 1552 Re4:置換でアプリケーションエラー
    • 1535 Re:ssrc_2002-02-09_p1.lzh
      • 1536 Re2:ssrc_2002-02-09_p1.lzh
        • 1539 GREPアイコン
          • 1540 Re:GREPアイコン
            • 1545 Re2:GREPアイコン
          • 1547 Re:GREPアイコン
            • 1553 Re2:GREPアイコン
      • 1598 Re:ssrc_2002-02-09_p1.lzh
  • [1530] ssrc_2002-02-09_p1.lzh hor 2002年02月09日 20:26

    ssrc_2002-02-09.zip からの変更を ssrc_2002-02-09_p1.lzh にUpしました。

    [変更など]
    + icon_grep.icoの変更とその大小アイコンを別々に扱うロジックを追加
    + あろかさんの「ファイル名をコピー」のアイコンを作成
    + すべて置換の実行中に表示されるダイアログの更新間隔を(置換数 % 8)から(置換数 % 100)に変更して体感速度を向上
    + すべて置換もマクロで扱えるように変更
    + アウトラインダイアログで「ブックマーク」<->「タイプ別設定アウトライン解析」をキーで切替えたときの動作が変だったのを修正
    + アウトラインダイアログに「ジャンプしたらフォーカスを移す」オプションを追加
    + アウトラインダイアログに「ブックマーク一覧で空行を無視する」オプションを追加(あろかさん提案)
    + 検索,置換ダイアログの「該当行マーク」(F_BOOKMARK_PATTERN)もマクロで記録できるように変更
    + 再描画(F_REDRAW)もマクロで記録できるように変更

    [バグとか]
    + CDlgFind,CDlgReplaceのIDC_CHK_LOHICASE Enable制御廃止もれを修正
    + 矩形エリアの端がEOFのみの行を含むときCut,Copyするとアプリケーションエラーになるのを修正
    + 正規表現でEOFのみの位置から次検索しても先頭から再検索できるように修正
    + 正規表現で検索したときにEOF直前の文字が何度もマッチしてしまうのを修正

    [その他]
    + 検索文字列を色分けする&正規表現検索のときの処理を見直して速度改善
    + iniファイルに未定義の正規表現キーワード,外部マクロが出力されないように変更
    + CDlgFuncList::SetTreeBookMarkを削除(他のロジックに統合)して軽量化
    + CShareData::AddToSearchKeyArrの移動元のコメントを削除
    + CDlgReplaceのCEditView::Command_REPLACE,CEditView::Command_REPLACE_ALLに移動したロジックを削除
    + CShareData_new2のCMenuDrawerへ移動された個所を削除

    ※ssrc_2002-02-09.zip には みくさんの my_icmp20020202.zip が入っていないようです。
    • [1531] Re:ssrc_2002-02-09_p1.lzh hor 2002年02月09日 21:10

      > ssrc_2002-02-09.zip からの変更を ssrc_2002-02-09_p1.lzh にUpしました。

      ごめんなさい。以下修正もれです。

      CDlgFuncList.cpp

      @@ -1357,6 +1357,9 @@
      pcEditView->HandleCommand( nFuncCode, TRUE, 0, 0, 0, 0 );
      if( m_pShareData->m_Common.m_bAutoCloseDlgFuncList ){
      ::DestroyWindow( m_hWnd );
      + }else
      + if( m_pShareData->m_Common.m_bFunclistSetFocusOnJump ){
      + ::SetFocus( m_hwndParent );
      }
      }
      }
      • [1534] Re2:ssrc_2002-02-09_p1.lzh hor 2002年02月10日 00:27

        ▼ horさん
        > > ssrc_2002-02-09.zip からの変更を ssrc_2002-02-09_p1.lzh にUpしました。
        >

        CDlgFuncList.cpp , CEditView_Command.cpp を修正して
        ssrc_2002-02-09_p2.lzh をUpしました。

        が、正規表現置換で // を / に置換するオペレーションを行うと、
        はじめのうちは正常に実行できるのですが、そのうちにアプリケーションエラーになります。
        (「置換」,「すべて置換」のどちらでも)

        なおそうと試みたのですが、私には解決できませんでした ・・・ どなたか修正お願いします。
        • [1537] Re3:ssrc_2002-02-09_p1.lzh あろか 2002年02月10日 09:47

          ▼ horさん
          > ssrc_2002-02-09_p2.lzh をUpしました。
          >
          p2を元にヘッダを整理した diff2002-2-9_p3.zip をUpしました。
          ※影響ファイルが多くてサイズが大きかったので差分だけUpします。

          バグ修正・機能追加はひとつもありません。
          • [1543] Re4:ssrc_2002-02-09_p1.lzh やざき 2002年02月10日 23:52

            ▼ あろかさん
            > p2を元にヘッダを整理した diff2002-2-9_p3.zip をUpしました。
            > ※影響ファイルが多くてサイズが大きかったので差分だけUpします。
            >
            > バグ修正・機能追加はひとつもありません。

            取り込みました。ありがとうございます。

            で、取り込んでいったら
            sakura_core.*
            は不要そうな気がしたので削除しました。
            • [1544] Re5:ssrc_2002-02-09_p1.lzh あろか 2002年02月11日 02:38

              ▼ やざきさん
              > ▼ あろかさん
              > > p2を元にヘッダを整理した diff2002-2-9_p3.zip をUpしました。
              >
              > 取り込みました。ありがとうございます。
              >
              ついでにもうひとつ。
              ルーラー部分をクリックするとタブ幅が変わるようにしてみました。
              挙動がいまいちなのでもうすこし動作仕様を練らないと本採用は難しそう。
              ベースは p2 です。

              > で、取り込んでいったら
              > sakura_core.*
              > は不要そうな気がしたので削除しました。
              よろしくお願いしまーす。
        • [1538] 置換でアプリケーションエラー げんた 2002年02月10日 12:47

          ▼ horさん
          >が、正規表現置換で // を / に置換するオペレーションを行うと、
          >そのうちにアプリケーションエラーになります。
          該当個所を発見しました.

          CBregexp::Replace において,パターン格納用メモリを
          char *szNPattern = new char[ ( strlen( szPattern0 ) + strlen( szPattern1 )) * 2 + 5 ];
          としていますが,

          s/文字列1/文字列2/オプション
          ですので検索・置換文字列に加えて s///kmi\0 の8文字が必要です.しかし5文字しか余裕がないのでバッファオーバーランしているのだと思います.不要なオプションmを削って,最後の+5を+7より大きな値にしてもらえれば直ります.

          CBregexp::Compileの方は /文字列/オプション で,//ki\0 ですから5文字に収まっていますので,
          私がそっちからコピーしたときに計算し忘れたんだと思います m(_ _)m.
          バッファオーバーランはバッファ破壊を起こした場所の「次の」メモリ操作で死にますので発見が難しいですよね.

          なお,この問題は1.2.105.3でも発生する可能性があります.
          • [1548] Re:置換でアプリケーションエラー hor 2002年02月11日 11:51

            ▼ げんたさん
            > ▼ horさん
            > >が、正規表現置換で // を / に置換するオペレーションを行うと、
            > >そのうちにアプリケーションエラーになります。
            > 該当個所を発見しました.
            >
            > CBregexp::Replace において,パターン格納用メモリを
            > char *szNPattern = new char[ ( strlen( szPattern0 ) + strlen( szPattern1 )) * 2 + 5 ];
            > としていますが,
            >
            > s/文字列1/文字列2/オプション
            > ですので検索・置換文字列に加えて s///kmi\0 の8文字が必要です.しかし5文字しか余裕がないのでバッファオーバーランしているのだと思います.不要なオプションmを削って,最後の+5を+7より大きな値にしてもらえれば直ります.
            >
            > CBregexp::Compileの方は /文字列/オプション で,//ki\0 ですから5文字に収まっていますので,
            > 私がそっちからコピーしたときに計算し忘れたんだと思います m(_ _)m.
            > バッファオーバーランはバッファ破壊を起こした場所の「次の」メモリ操作で死にますので発見が難しいですよね.
            >
            > なお,この問題は1.2.105.3でも発生する可能性があります.

            解決! ありがとうございました。

            ところでCBregexp::Replace内のBSubst実行後のReleaseCompileBuffer()って
            ssrc_2002-02-01前後で入ったり消えたりしてると思うんですけど、
            ほんとはどっちが良いんでしょう?
            • [1549] Re2:置換でアプリケーションエラー やざき 2002年02月11日 12:29

              ▼ horさん
              > ところでCBregexp::Replace内のBSubst実行後のReleaseCompileBuffer()って
              > ssrc_2002-02-01前後で入ったり消えたりしてると思うんですけど、
              > ほんとはどっちが良いんでしょう?

              いまあるとおり、Replace内にあるのが正解。
              私が実装したものは、Replace外でReleaseCompileBufferしていました。
              • [1551] Re3:置換でアプリケーションエラー げんた 2002年02月11日 14:22

                ReleaseCompileBuffer()というのは動作としてはメモリ解放ですが、newに対するdeleteと同じではないので別にいちいち解放する必要はないと思います。どちらかといえば前回の続きではないよという宣言。

                何回呼んでも問題は起こらないので終了時に解放しても間違いではありませんが、検索を行う直前にやるものと考えた方がしっくり来ます。
                • [1552] Re4:置換でアプリケーションエラー やざき 2002年02月11日 14:32

                  (BREGEXP.DLLのページから引用)
                  >BREGEXP構造体をうまく使うと処理を高速化できます。同じ正規表現を使う関数の呼出しには、同じコンパイルブロックを使えばいいのです。

                  なので、がむしゃらにReleaseしてしまうのはさびしいですねぇ。
    • [1535] Re:ssrc_2002-02-09_p1.lzh やざき 2002年02月10日 00:30

      いただきました。すばらしいですねぇ。
      いくつか確認をば。

      > + icon_grep.icoの変更とその大小アイコンを別々に扱うロジックを追加

      icon_grep.icoが、DEBUG版のアイコンと同じものになってますけど、虫眼鏡の間違い?
      それとも意図して変えてます?


      > + アウトラインダイアログに「ジャンプしたらフォーカスを移す」オプションを追加

      ENTERキーを押したときは、フォーカスが移動しますが、ダブルクリックしたときは移動しないみたいです。
      「ジャンプ」を押した時は移動します。


      > [バグとか]
      > + CDlgFind,CDlgReplaceのIDC_CHK_LOHICASE Enable制御廃止もれを修正

      重ね重ね失礼しました。(__;

      > + CShareData_new2のCMenuDrawerへ移動された個所を削除

      これに伴って、CShareData_new2に入っていたコンストラクタを、CShareData_newに入れて、
      CShareData_new2を削除しました。

      > ※ssrc_2002-02-09.zip には みくさんの my_icmp20020202.zip が入っていないようです。

      こちらも失礼いたしました。(__;

      では~。
      • [1536] Re2:ssrc_2002-02-09_p1.lzh hor 2002年02月10日 00:54

        ▼ やざきさん
        > icon_grep.icoが、DEBUG版のアイコンと同じものになってますけど、虫眼鏡の間違い?
        > それとも意図して変えてます?

        意図して変えました。
        虫眼鏡のやつをしばらく使ってたのですが、なんだかうっとおしくなってきたので、
        DEBUG版に良く似たicon_std.icoの色違いにしたいな~と思いまして・・・

        > > + アウトラインダイアログに「ジャンプしたらフォーカスを移す」オプションを追加
        > ENTERキーを押したときは、フォーカスが移動しますが、ダブルクリックしたときは移動しないみたいです。
        > 「ジャンプ」を押した時は移動します。

        ssrc_2002-02-09_p2.lzh で修正しました。確認よろしくお願いします。

        あと、別件ですが CEditView_Command_New.cpp の799行目に m_bDrawSWITCH=FALSE; を挿入して、
        935行目の/* 再描画 */の前に m_bDrawSWITCH=TRUE; を入れると大きな「元に戻す」を実行したときのストレスが緩和します。
        • [1539] GREPアイコン げんた 2002年02月10日 15:06

          >虫眼鏡のやつをしばらく使ってたのですが、なんだかうっとおしくなってきたので、
          >DEBUG版に良く似たicon_std.icoの色違いにしたいな~と思いまして・・・
          虫眼鏡アイコン(やざきさん作?)気に入っていたのに...(ToT)ダー
          どの辺が鬱陶しいのかは好みの問題なので聞いてもしょうがないと思いますが,形が違った方がタスクバーから見つけやすいと思うのですが.

          アプリケーションアイコンも外部から読み込み可能にできませんかね.以前2chでUPされたアイコンも活用したいし.
          • [1540] Re:GREPアイコン やざき 2002年02月10日 16:56

            ▼ げんたさん
            > 虫眼鏡アイコン(やざきさん作?)

            違います~。参加したときにはもうあった。

            私も明らかに違うアイコンのほうが好み。
            デバッグモードで作業することも多いので、デバッグモードのアイコンとGREPのアイコンが同じようなのは少し困るかも。
            • [1545] Re2:GREPアイコン あろか 2002年02月11日 02:48

              ▼ やざきさん
              > ▼ げんたさん
              > > 虫眼鏡アイコン(やざきさん作?)
              >
              > 違います~。参加したときにはもうあった。
              >
              > 私も明らかに違うアイコンのほうが好み。
              > デバッグモードで作業することも多いので、デバッグモードのアイコンとGREPのアイコンが同じようなのは少し困るかも。
              虫眼鏡アイコンの背景がきれいに白いので多少違和感を感じることはあります。でも青いやつは検索結果らしくなくて物足りない気がします。
              で、四角が見えるようにエディタのアイコンに虫眼鏡を重ねたら。。。右利きの人には使えなくなってしまった。(^_^;
          • [1547] Re:GREPアイコン hor 2002年02月11日 09:25

            ▼ げんたさん
            > >虫眼鏡のやつをしばらく使ってたのですが、なんだかうっとおしくなってきたので、
            > >DEBUG版に良く似たicon_std.icoの色違いにしたいな~と思いまして・・・
            > 虫眼鏡アイコン(やざきさん作?)気に入っていたのに...(ToT)ダー
            > どの辺が鬱陶しいのかは好みの問題なので聞いてもしょうがないと思いますが,形が違った方がタスクバーから見つけやすいと思うのですが.
            >

            現在のGrep「虫眼鏡」は私(hor)が作ったものです・・・白の部分が多いせいか、明るすぎて鬱陶しく感じました。
            でも、思いのほか「虫眼鏡」の方が好評のようなので、これをちょっと暗くしたようなアイコンを作ってみます。
            • [1553] Re2:GREPアイコン hor 2002年02月11日 17:59

              > でも、思いのほか「虫眼鏡」の方が好評のようなので、これをちょっと暗くしたようなアイコンを作ってみます。

              と思いましたが、なんだか良いのができないです。 とりあえず前のままってことで・・・
      • [1598] Re:ssrc_2002-02-09_p1.lzh みく 2002年02月14日 19:31

        >タイトル: Re:ssrc_2002-02-09_p1.lzh
        >発言者: やざき
        >> ※ssrc_2002-02-09.zip には みくさんの my_icmp20020202.zip が入っていないようです。
        >
        >こちらも失礼いたしました。(__;

        これですが、ヘッダを書き換えないと有効になりません。
        ただ有効にすると、他のソースファイルもicmp系関数を置き換えないと
        希望どおりの動作になりませね。→なので今回は無効にしてます。