*InterWiki内にBracketNameが書けない。 [#va3eee19] -ページ: BugTrack -投稿者: [[sha]] -優先順位: 重要 -状態: 完了 -カテゴリー: 本体バグ -投稿日: 2003-08-21 (木) 08:24:49 -バージョン: 1.4rc4 **メッセージ [#n7e962f2] make_link.php v1.56で、BracketNameとInterWikiNameの正規表現が調整されましたが、そのときから、InterWikiの引数として、BracketNameが書けなくなったようです。~ 具体的には、 [[編集:[[test]]]] と書くと、InterWikiが最初の'']]''までで閉じてしまい、 編集:[[test を実行しようとします。 ~#trackerの:configのlistで、下記のように使用していたのですが、うまく動作しなくなりました。 [[編集:[_page]]] ---- -以下のパッチを試してみてください。個人的な事情で今火だるまなもんで、あんまりしっかりデバッグしてません。すみません。 -- [[ぱんだ]] &new{2003-08-21 (木) 16:49:25}; diff -u -r1.56 make_link.php --- make_link.php 6 Aug 2003 05:53:43 -0000 1.56 +++ make_link.php 21 Aug 2003 07:43:59 -0000 @@ -413,6 +413,7 @@ function get_pattern() { $s2 = $this->start + 2; + $s5 = $this->start + 5; return <<<EOD \[\[ # open bracket (?: @@ -422,14 +423,18 @@ ((?:(?!\s|:|\]\]).)+) # (3) InterWiki (?<! > | >\[\[ ) # not '>' or '>[[' : # separator -((?:(?!>|\]\]).)+) # (4) param +( # (4) param + (\[\[)? # (5) open bracket + (?:(?!>|\]\]).)+ + (?($s5)\]\]) # close bracket if (5) +) (?($s2)\]\]) # close bracket if (2) \]\] # close bracket EOD; } function get_count() { - return 4; + return 5; } function set($arr,$page) { - InterWikiNameについては、以下のパターンが通るようになると思います。 -- [[ぱんだ]] &new{2003-08-21 (木) 16:49:25}; [[fuga:piyo]] [[fuga:[[piyo]]]] [[hoge>[[fuga:piyo]]]] ( [[[[fuga:piyo]]]] も通る) [[hoge>fuga:[[piyo]]]] ( [[[[fuga:[[piyo]]]]]] も通る) [[hoge>[[fuga:[[piyo]]]]]] ( [[[[fuga:[[piyo]]]]]] も通る) -パッチ当てました。上の例は全て大丈夫なことを確認しました。どうもありがとうございます。いやぁ、正規表現って奥が深いですね。 -- [[sha]] &new{2003-08-21 (木) 22:59:46}; -cvsに投入しました。 [[cvs:make_link.php]](v1.4:r1.57) -- [[ぱんだ]] &new{2003-09-03 (水) 11:05:23}; #comment //#comment