diff options
Diffstat (limited to 'lib/rack/request.rb')
-rw-r--r-- | lib/rack/request.rb | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/rack/request.rb b/lib/rack/request.rb index e6e46e9d..ac95b1ca 100644 --- a/lib/rack/request.rb +++ b/lib/rack/request.rb @@ -188,7 +188,7 @@ module Rack if @env["rack.request.query_string"] == query_string @env["rack.request.query_hash"] else - p = parse_query(query_string) + p = parse_query({ :query => query_string, :separator => '&;' }) @env["rack.request.query_string"] = query_string @env["rack.request.query_hash"] = p end @@ -212,7 +212,7 @@ module Rack form_vars.slice!(-1) if form_vars[-1] == ?\0 @env["rack.request.form_vars"] = form_vars - @env["rack.request.form_hash"] = parse_query(form_vars) + @env["rack.request.form_hash"] = parse_query({ :query => form_vars, :separator => '&' }) @env["rack.input"].rewind end @@ -366,7 +366,9 @@ module Rack end def parse_query(qs) - Utils.parse_nested_query(qs, '&') + d = '&' + qs, d = qs[:query], qs[:separator] if Hash === qs + Utils.parse_nested_query(qs, d) end def parse_multipart(env) |