From ae8ad5ae270e06b251d3ef412c9337919e9d6933 Mon Sep 17 00:00:00 2001 From: xibbar Date: Sat, 3 Oct 2009 16:15:23 +0000 Subject: [PATCH] * lib/cgi/core.rb: fix command-line option of non-interactive terminal. [ruby-core:23016] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ lib/cgi/core.rb | 15 ++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 40d9775c8f..52abb259b6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Oct 4 00:59:52 2009 Takeyuki FUJIOKA + + * lib/cgi/core.rb: fix command-line option of + non-interactive terminal. [ruby-core:23016] + Sun Oct 4 00:40:18 2009 Nobuyoshi Nakada * lib/rake/contrib: added. [ruby-core:25918] diff --git a/lib/cgi/core.rb b/lib/cgi/core.rb index 02daf14e50..240d3bb714 100644 --- a/lib/cgi/core.rb +++ b/lib/cgi/core.rb @@ -555,12 +555,21 @@ class CGI %|(offline mode: enter name=value pairs on standard input)\n| ) end - readlines.join(' ').gsub(/\n/, '') - end.gsub(/\\=/, '%3D').gsub(/\\&/, '%26') + array = nil + begin + readlines + rescue + end + if not array.nil? + array.join(' ').gsub(/\n/n, '') + else + "" + end + end.gsub(/\\=/n, '%3D').gsub(/\\&/n, '%26') words = Shellwords.shellwords(string) - if words.find{|x| /=/.match(x) } + if words.find{|x| /=/n.match(x) } words.join('&') else words.join('+')