xibbarこと福島の藤岡です。

(10/09/07 0:12), nonta wrote:
>   野田と申します。
>
> 下記のように、cgi.params['date'][0]とcgi['date']とでは
> どちらも"20100907"が返ってきますが、
> cgi.params['date'][0][4, 2]とcgi['date'][4, 2]とした場合は
> 片方は"09"で、片方はnilとなります。
> なぜこうのようになるのでしょうか?
>
> ちなみに、"09"となるほうを期待していました。
>

作ったのが私じゃないので確定はできないのですが、
バグでしょうね。以下のパッチでなおります。

echo "date=20100907" | ruby-1.8.7-p302 -rcgi -e 'p CGI.new["date"][4,2]'
"09"

diff --git a/cgi.rb b/cgi.rb
index 1b263d4..34aef62 100644
--- a/cgi.rb
+++ b/cgi.rb
@@ -1153,7 +1153,7 @@ class CGI
           warn "#{caller(1)[0]}:CAUTION! cgi['key'] ==
cgi.params['key'][0]; if want Array, use cgi.params['key']"
           @params[idx]
         else
-          super[idx,*args]
+          super(idx,*args)
         end
       end
       def first

redmineに登録後、コミットすればいいでしょうか?>knuさんかな?