diff options
author | xibbar <xibbar@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-07-04 04:42:32 +0000 |
---|---|---|
committer | xibbar <xibbar@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-07-04 04:42:32 +0000 |
commit | 9c746e35ad3c265704710934e9dc44b1ff7f741a (patch) | |
tree | 7c5a51f4b5c28b1c4783d4981921b677c367adc6 /lib/cgi | |
parent | 38ca5cca0095d1a00a280009ab49772ce8749e91 (diff) |
Wed Jul 4 08:45:41 2012 Takeyuki FUJIOKA <xibbar@ruby-lang.org>
* 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
Diffstat (limited to 'lib/cgi')
-rw-r--r-- | lib/cgi/core.rb | 11 |
1 files changed, 6 insertions, 5 deletions
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 |