summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-29 02:30:08 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-29 02:30:08 +0000
commitbb924f21d9b4d748fba08b4619a6d1726b810095 (patch)
tree21d5ce9dc97ee634976c1977fb7db008a9b1182e
parent6f2cff45e06156d2b3db8bd4f69249b0ff2ca0c6 (diff)
downloadruby-bb924f21d9b4d748fba08b4619a6d1726b810095.tar.gz
ruby-bb924f21d9b4d748fba08b4619a6d1726b810095.tar.xz
ruby-bb924f21d9b4d748fba08b4619a6d1726b810095.zip
* parse.y (ret_args): node may be NULL. [ruby-talk:84530]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--lib/cgi.rb2
-rw-r--r--parse.y2
3 files changed, 6 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 71e5ef160..ffbd5e51f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Wed Oct 29 11:27:39 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * parse.y (ret_args): node may be NULL. [ruby-talk:84530]
+
Tue Oct 28 15:20:12 2003 NAKAMURA Usaku <usa@ruby-lang.org>
* ext/tcltklib/tcltklib.c (VwaitVarProc, ip_rbVwaitObjCmd,
diff --git a/lib/cgi.rb b/lib/cgi.rb
index c380f9a9d..82318707d 100644
--- a/lib/cgi.rb
+++ b/lib/cgi.rb
@@ -891,7 +891,7 @@ class CGI
# # "name2" => ["value1", "value2", ...], ... }
#
def CGI::parse(query)
- params = Hash.new([])
+ params = Hash.new{|hash,key|hash[key]=[]}
query.split(/[&;]/n).each do |pairs|
key, value = pairs.split('=',2).collect{|v| CGI::unescape(v) }
diff --git a/parse.y b/parse.y
index 7901bcab3..75fa33e82 100644
--- a/parse.y
+++ b/parse.y
@@ -5366,7 +5366,7 @@ ret_args(node)
if (nd_type(node) == NODE_ARRAY && node->nd_next == 0) {
node = node->nd_head;
}
- if (nd_type(node) == NODE_SPLAT) {
+ if (node && nd_type(node) == NODE_SPLAT) {
node = NEW_SVALUE(node);
}
}