◀Unicode版開発トップへ
  • 1571 BugReport/82のパッチ
    • 1575 Commit報告(Fix): BugReport/82 \Q...\E検索が正しくない。
  • [1571] BugReport/82のパッチ ds14050 2011年06月02日 23:15

    BugReport/82
    <http://sakura.qp.land.to/?BugReport%2F82>
    の件でパッチを投稿しました。
    <https://sourceforge.net/tracker/?func=detail&aid=3310610&group_id=12488&atid=1013762>

    bcc32で作成した sakura.exe(1.6.6.0)と VS2008EEで作成した sakura.exe(2.0.2.0)、どちらも Revision 1922ベース、で添付したテストが通ることを確認してあります。
    パッチを適用していない、ダウンロードできる sakura.exe(2.0.2.0)では以下の二つのテストが失敗しました。
    FAILED: (bregonig限定) \c\というシークェンスの後ろの .をエスケープされていると誤認して .を置き換え忘れてはいけない。
    FAILED: (bregonig限定) \Q...\Eがサポートされているときは \Qの後ろの .を置き換えてはいけない。
    問題が発覚しなければ近いうちにコミットしたいと思います。マクロだけでも実行してみてください。

    <追記> 「\c\というシークェンスの後ろ」というのは間違いです。\c\\という(一つの文字を表す)シークェンスの後ろが正しいです。
    • [1575] Commit報告(Fix): BugReport/82 \Q...\E検索が正しくない。 ds14050 2011年06月11日 01:42

      リビジョン:
      1923
      http://sakura-editor.svn.sourceforge.net/viewvc/sakura-editor?view=revision&revision=1923

      変更種別:
      バグ修正

      内容:
      Fix: 正規表現 \Q...\Eの中に . や $ が含まれていたときに正しく検索できて
      いなかった。(BugReport/82, bregonig.dllを使用している場合のみ)

      補足:
      ログに PatchUnicode:3310610 書き忘れました。
      \Q...\Eの中に [ が入っていた場合も結果が正しくなかったはずです。
      本家 Perlでは変数埋め込みのために、\Q...\Eの中でも自由に $を置けないみたいです。