From 9c746e35ad3c265704710934e9dc44b1ff7f741a Mon Sep 17 00:00:00 2001 From: xibbar Date: Wed, 4 Jul 2012 04:42:32 +0000 Subject: Wed Jul 4 08:45:41 2012 Takeyuki FUJIOKA * lib/cgi/core.rb: fix bug: When query parameter is 'id=123&id', cgi['id'] => '123' is correct. First parameter is valid. [Feature #6621] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/cgi/core.rb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/cgi/core.rb b/lib/cgi/core.rb index 376ad01130..5b01866e8e 100644 --- a/lib/cgi/core.rb +++ b/lib/cgi/core.rb @@ -367,12 +367,13 @@ class CGI params = {} query.split(/[&;]/).each do |pairs| key, value = pairs.split('=',2).collect{|v| CGI::unescape(v) } - if key && value - params.has_key?(key) ? params[key].push(value) : params[key] = [value] - elsif key - params[key]=[] - end + + next unless key + + params[key] ||= [] + params[key].push(value) if value end + params.default=[].freeze params end -- cgit v1.2.3