不断の日記 (の体裁をした覚え書き) です。
2008-11-02 (Sun) [長年日記]
■ tdiaryserch で検索すると「Plugin error in '00default.rb'.」のエラーが発生(2)
tdiaryserch が「Plugin error in '00default.rb'.」エラーを吐く件について、ふと、
「tdiary/plugin/00default.rb の
19: when 'month'
20: Time::local( *@cgi.params['date'][0].scan(/^(\d{4})(\d\d)/ ).flatten )
の scan 絡みでエラーになっているんだったら、ココの判定に引っかからないようにすればいいんじゃね?」
と思いつき、場当たり的な対応をしてみた。 ついでに、一部、 EUC-JP で処理をするようになっている部分が残っていたようなので、それらも合わせて修正。
--- search.rb.org 2008-07-12 10:42:15.312500000 +0900
+++ search.rb 2008-11-02 15:22:12.031250000 +0900
@@ -191,7 +191,7 @@
def setup_patterns(query)
patterns = split_string(query).map {|pat|
check_pattern pat
- /#{Regexp.quote(pat)}/ie
+ /#{Regexp.quote(pat)}/iu
}
raise WrongQuery, 'no pattern' if patterns.empty?
raise WrongQuery, 'too many sub patterns' if patterns.length > 8
@@ -206,7 +206,7 @@
end
def split_string(str)
- str.split(/[\s#{Z_SPACE}]+/oe).reject {|w| w.empty? }
+ str.split(/[\s#{Z_SPACE}]+/ou).reject {|w| w.empty? }
end
def save_query(query, file)
@@ -380,14 +380,14 @@
end
when /Comment/
cmt = component
- escape((cmt.name + ': ' + cmt.body).slice(/\A.{0,120}/me))
+ escape((cmt.name + ': ' + cmt.body).slice(/\A.{0,120}/mu))
else
raise "must not happen: #{component.class}"
end
end
def tdiary2text(html)
- apply_tdiary_plugins(html).gsub(%r[<[^>]*>]em, '').slice(/\A.{0,120}/me)
+ apply_tdiary_plugins(html).gsub(%r[<[^>]*>]um, '').slice(/\A.{0,120}/mu)
end
Years = {}
@@ -401,7 +401,7 @@
def initialize_tdiary_plugins(cgi)
@plugin = TDiary::Plugin.new('conf' => @config,
- 'mode' => 'month',
+ 'mode' => 'nil',
'secure' => false,
'diaries' => {},
'cgi' => cgi,
とりあえず、これで手元の環境では、件のエラーは出なくなったが、適切な修正なのかどうかは謎(^^;
[]
PSP「プレイステーション・ポータブル」 ピアノ・ブラック(PSP-3000PB)
モンスターハンター ポータブル 2nd G - PSP the Best
無事,エラーが解消されました. <br>非常に助かりました. <br>ありがとうございました.
お役に立てたようで何よりですが、わたしの怪しいパッチを適用して実稼働環境で運用するのは危険性が…。 <br>開発陣の正式対応を待って頂いた方が良いのではないかと思います(^^;;; <br>
対策版がリリースされました。 <br>http://coderepos.org/share/browser/platform/tdiary/util/tdiarysearch/search.rb?rev=22629 <br>