mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/cgi.rb : obsolete regex "n" option. [ruby-dev:36130]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
c27baaa090
commit
d166d0be91
2 changed files with 35 additions and 31 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
Mon Sep 8 22:16:20 2008 Takeyuki FUJIOKA <xibbar@ruby-lang.org>
|
||||||
|
|
||||||
|
* lib/cgi.rb : obsolete regex "n" option. [ruby-dev:36130]
|
||||||
|
|
||||||
Mon Sep 8 18:13:20 2008 NAKAMURA Usaku <usa@ruby-lang.org>
|
Mon Sep 8 18:13:20 2008 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||||
|
|
||||||
* win32/win32.c (getppid): typo. [ruby-dev:36202]
|
* win32/win32.c (getppid): typo. [ruby-dev:36202]
|
||||||
|
|
62
lib/cgi.rb
62
lib/cgi.rb
|
@ -286,7 +286,7 @@ class CGI
|
||||||
|
|
||||||
REVISION = '$Id$' #:nodoc:
|
REVISION = '$Id$' #:nodoc:
|
||||||
|
|
||||||
NEEDS_BINMODE = true if /WIN/ni.match(RUBY_PLATFORM)
|
NEEDS_BINMODE = true if /WIN/i.match(RUBY_PLATFORM)
|
||||||
|
|
||||||
# Path separators in different environments.
|
# Path separators in different environments.
|
||||||
PATH_SEPARATOR = {'UNIX'=>'/', 'WINDOWS'=>'\\', 'MACINTOSH'=>':'}
|
PATH_SEPARATOR = {'UNIX'=>'/', 'WINDOWS'=>'\\', 'MACINTOSH'=>':'}
|
||||||
|
@ -441,7 +441,7 @@ class CGI
|
||||||
def CGI::escapeElement(string, *elements)
|
def CGI::escapeElement(string, *elements)
|
||||||
elements = elements[0] if elements[0].kind_of?(Array)
|
elements = elements[0] if elements[0].kind_of?(Array)
|
||||||
unless elements.empty?
|
unless elements.empty?
|
||||||
string.gsub(/<\/?(?:#{elements.join("|")})(?!\w)(?:.|\n)*?>/ni) do
|
string.gsub(/<\/?(?:#{elements.join("|")})(?!\w)(?:.|\n)*?>/i) do
|
||||||
CGI::escapeHTML($&)
|
CGI::escapeHTML($&)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
@ -462,7 +462,7 @@ class CGI
|
||||||
def CGI::unescapeElement(string, *elements)
|
def CGI::unescapeElement(string, *elements)
|
||||||
elements = elements[0] if elements[0].kind_of?(Array)
|
elements = elements[0] if elements[0].kind_of?(Array)
|
||||||
unless elements.empty?
|
unless elements.empty?
|
||||||
string.gsub(/<\/?(?:#{elements.join("|")})(?!\w)(?:.|\n)*?>/ni) do
|
string.gsub(/<\/?(?:#{elements.join("|")})(?!\w)(?:.|\n)*?>/i) do
|
||||||
CGI::unescapeHTML($&)
|
CGI::unescapeHTML($&)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
@ -586,7 +586,7 @@ class CGI
|
||||||
|
|
||||||
options.delete("nph") if defined?(MOD_RUBY)
|
options.delete("nph") if defined?(MOD_RUBY)
|
||||||
if options.delete("nph") or
|
if options.delete("nph") or
|
||||||
(/IIS\/(\d+)/n.match(env_table['SERVER_SOFTWARE']) and $1.to_i < 5)
|
(/IIS\/(\d+)/.match(env_table['SERVER_SOFTWARE']) and $1.to_i < 5)
|
||||||
buf += (env_table["SERVER_PROTOCOL"] or "HTTP/1.0") + " " +
|
buf += (env_table["SERVER_PROTOCOL"] or "HTTP/1.0") + " " +
|
||||||
(HTTP_STATUS[options["status"]] or options["status"] or "200 OK") +
|
(HTTP_STATUS[options["status"]] or options["status"] or "200 OK") +
|
||||||
EOL +
|
EOL +
|
||||||
|
@ -657,19 +657,19 @@ class CGI
|
||||||
|
|
||||||
if defined?(MOD_RUBY)
|
if defined?(MOD_RUBY)
|
||||||
table = Apache::request.headers_out
|
table = Apache::request.headers_out
|
||||||
buf.scan(/([^:]+): (.+)#{EOL}/n){ |name, value|
|
buf.scan(/([^:]+): (.+)#{EOL}/){ |name, value|
|
||||||
warn sprintf("name:%s value:%s\n", name, value) if $DEBUG
|
warn sprintf("name:%s value:%s\n", name, value) if $DEBUG
|
||||||
case name
|
case name
|
||||||
when 'Set-Cookie'
|
when 'Set-Cookie'
|
||||||
table.add(name, value)
|
table.add(name, value)
|
||||||
when /^status$/ni
|
when /^status$/i
|
||||||
Apache::request.status_line = value
|
Apache::request.status_line = value
|
||||||
Apache::request.status = value.to_i
|
Apache::request.status = value.to_i
|
||||||
when /^content-type$/ni
|
when /^content-type$/i
|
||||||
Apache::request.content_type = value
|
Apache::request.content_type = value
|
||||||
when /^content-encoding$/ni
|
when /^content-encoding$/i
|
||||||
Apache::request.content_encoding = value
|
Apache::request.content_encoding = value
|
||||||
when /^location$/ni
|
when /^location$/i
|
||||||
if Apache::request.status == 200
|
if Apache::request.status == 200
|
||||||
Apache::request.status = 302
|
Apache::request.status = 302
|
||||||
end
|
end
|
||||||
|
@ -911,7 +911,7 @@ class CGI
|
||||||
def CGI::parse(query)
|
def CGI::parse(query)
|
||||||
params = Hash.new([].freeze)
|
params = Hash.new([].freeze)
|
||||||
|
|
||||||
query.split(/[&;]/n).each do |pairs|
|
query.split(/[&;]/).each do |pairs|
|
||||||
key, value = pairs.split('=',2).collect{|v| CGI::unescape(v) }
|
key, value = pairs.split('=',2).collect{|v| CGI::unescape(v) }
|
||||||
if params.has_key?(key)
|
if params.has_key?(key)
|
||||||
params[key].push(value)
|
params[key].push(value)
|
||||||
|
@ -940,7 +940,7 @@ class CGI
|
||||||
module QueryExtension
|
module QueryExtension
|
||||||
|
|
||||||
%w[ CONTENT_LENGTH SERVER_PORT ].each do |env|
|
%w[ CONTENT_LENGTH SERVER_PORT ].each do |env|
|
||||||
define_method(env.sub(/^HTTP_/n, '').downcase) do
|
define_method(env.sub(/^HTTP_/, '').downcase) do
|
||||||
(val = env_table[env]) && Integer(val)
|
(val = env_table[env]) && Integer(val)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -953,7 +953,7 @@ class CGI
|
||||||
HTTP_ACCEPT HTTP_ACCEPT_CHARSET HTTP_ACCEPT_ENCODING
|
HTTP_ACCEPT HTTP_ACCEPT_CHARSET HTTP_ACCEPT_ENCODING
|
||||||
HTTP_ACCEPT_LANGUAGE HTTP_CACHE_CONTROL HTTP_FROM HTTP_HOST
|
HTTP_ACCEPT_LANGUAGE HTTP_CACHE_CONTROL HTTP_FROM HTTP_HOST
|
||||||
HTTP_NEGOTIATE HTTP_PRAGMA HTTP_REFERER HTTP_USER_AGENT ].each do |env|
|
HTTP_NEGOTIATE HTTP_PRAGMA HTTP_REFERER HTTP_USER_AGENT ].each do |env|
|
||||||
define_method(env.sub(/^HTTP_/n, '').downcase) do
|
define_method(env.sub(/^HTTP_/, '').downcase) do
|
||||||
env_table[env]
|
env_table[env]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -1004,9 +1004,9 @@ class CGI
|
||||||
head = nil
|
head = nil
|
||||||
body = MorphingBody.new
|
body = MorphingBody.new
|
||||||
|
|
||||||
until head and /#{quoted_boundary}(?:#{EOL}|--)/n.match(buf)
|
until head and /#{quoted_boundary}(?:#{EOL}|--)/.match(buf)
|
||||||
if (not head) and /#{EOL}#{EOL}/n.match(buf)
|
if (not head) and /#{EOL}#{EOL}/.match(buf)
|
||||||
buf = buf.sub(/\A((?:.|\n)*?#{EOL})#{EOL}/n) do
|
buf = buf.sub(/\A((?:.|\n)*?#{EOL})#{EOL}/) do
|
||||||
head = $1.dup
|
head = $1.dup
|
||||||
""
|
""
|
||||||
end
|
end
|
||||||
|
@ -1030,7 +1030,7 @@ class CGI
|
||||||
content_length -= c.bytesize
|
content_length -= c.bytesize
|
||||||
end
|
end
|
||||||
|
|
||||||
buf = buf.sub(/\A((?:.|\n)*?)(?:[\r\n]{1,2})?#{quoted_boundary}([\r\n]{1,2}|--)/n) do
|
buf = buf.sub(/\A((?:.|\n)*?)(?:[\r\n]{1,2})?#{quoted_boundary}([\r\n]{1,2}|--)/) do
|
||||||
body.print $1
|
body.print $1
|
||||||
if "--" == $2
|
if "--" == $2
|
||||||
content_length = -1
|
content_length = -1
|
||||||
|
@ -1041,15 +1041,15 @@ class CGI
|
||||||
|
|
||||||
body.rewind
|
body.rewind
|
||||||
|
|
||||||
/Content-Disposition:.* filename=(?:"((?:\\.|[^\"])*)"|([^;\s]*))/ni.match(head)
|
/Content-Disposition:.* filename=(?:"((?:\\.|[^\"])*)"|([^;\s]*))/i.match(head)
|
||||||
filename = ($1 or $2 or "")
|
filename = ($1 or $2 or "")
|
||||||
if /Mac/ni.match(env_table['HTTP_USER_AGENT']) and
|
if /Mac/i.match(env_table['HTTP_USER_AGENT']) and
|
||||||
/Mozilla/ni.match(env_table['HTTP_USER_AGENT']) and
|
/Mozilla/i.match(env_table['HTTP_USER_AGENT']) and
|
||||||
(not /MSIE/ni.match(env_table['HTTP_USER_AGENT']))
|
(not /MSIE/i.match(env_table['HTTP_USER_AGENT']))
|
||||||
filename = CGI::unescape(filename)
|
filename = CGI::unescape(filename)
|
||||||
end
|
end
|
||||||
|
|
||||||
/Content-Type: ([^\s]*)/ni.match(head)
|
/Content-Type: ([^\s]*)/i.match(head)
|
||||||
content_type = ($1 or "")
|
content_type = ($1 or "")
|
||||||
|
|
||||||
(class << body; self; end).class_eval do
|
(class << body; self; end).class_eval do
|
||||||
|
@ -1058,7 +1058,7 @@ class CGI
|
||||||
define_method(:content_type) {content_type.dup.taint}
|
define_method(:content_type) {content_type.dup.taint}
|
||||||
end
|
end
|
||||||
|
|
||||||
/Content-Disposition:.* name="?([^\";\s]*)"?/ni.match(head)
|
/Content-Disposition:.* name="?([^\";\s]*)"?/i.match(head)
|
||||||
name = ($1 || "").dup
|
name = ($1 || "").dup
|
||||||
|
|
||||||
if params.has_key?(name)
|
if params.has_key?(name)
|
||||||
|
@ -1087,12 +1087,12 @@ class CGI
|
||||||
%|(offline mode: enter name=value pairs on standard input)\n|
|
%|(offline mode: enter name=value pairs on standard input)\n|
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
readlines.join(' ').gsub(/\n/n, '')
|
readlines.join(' ').gsub(/\n/, '')
|
||||||
end.gsub(/\\=/n, '%3D').gsub(/\\&/n, '%26')
|
end.gsub(/\\=/, '%3D').gsub(/\\&/, '%26')
|
||||||
|
|
||||||
words = Shellwords.shellwords(string)
|
words = Shellwords.shellwords(string)
|
||||||
|
|
||||||
if words.find{|x| /=/n.match(x) }
|
if words.find{|x| /=/.match(x) }
|
||||||
words.join('&')
|
words.join('&')
|
||||||
else
|
else
|
||||||
words.join('+')
|
words.join('+')
|
||||||
|
@ -1159,7 +1159,7 @@ class CGI
|
||||||
# Reads query parameters in the @params field, and cookies into @cookies.
|
# Reads query parameters in the @params field, and cookies into @cookies.
|
||||||
def initialize_query()
|
def initialize_query()
|
||||||
if ("POST" == env_table['REQUEST_METHOD']) and
|
if ("POST" == env_table['REQUEST_METHOD']) and
|
||||||
%r|\Amultipart/form-data.*boundary=\"?([^\";,]+)\"?|n.match(env_table['CONTENT_TYPE'])
|
%r|\Amultipart/form-data.*boundary=\"?([^\";,]+)\"?|.match(env_table['CONTENT_TYPE'])
|
||||||
boundary = $1.dup
|
boundary = $1.dup
|
||||||
@multipart = true
|
@multipart = true
|
||||||
@params = read_multipart(boundary, Integer(env_table['CONTENT_LENGTH']))
|
@params = read_multipart(boundary, Integer(env_table['CONTENT_LENGTH']))
|
||||||
|
@ -1245,14 +1245,14 @@ class CGI
|
||||||
# # </HTML>
|
# # </HTML>
|
||||||
#
|
#
|
||||||
def CGI::pretty(string, shift = " ")
|
def CGI::pretty(string, shift = " ")
|
||||||
lines = string.gsub(/(?!\A)<(?:.|\n)*?>/n, "\n\\0").gsub(/<(?:.|\n)*?>(?!\n)/n, "\\0\n")
|
lines = string.gsub(/(?!\A)<(?:.|\n)*?>/, "\n\\0").gsub(/<(?:.|\n)*?>(?!\n)/, "\\0\n")
|
||||||
end_pos = 0
|
end_pos = 0
|
||||||
while end_pos = lines.index(/^<\/(\w+)/n, end_pos)
|
while end_pos = lines.index(/^<\/(\w+)/, end_pos)
|
||||||
element = $1.dup
|
element = $1.dup
|
||||||
start_pos = lines.rindex(/^\s*<#{element}/ni, end_pos)
|
start_pos = lines.rindex(/^\s*<#{element}/i, end_pos)
|
||||||
lines[start_pos ... end_pos] = "__" + lines[start_pos ... end_pos].gsub(/\n(?!\z)/n, "\n" + shift) + "__"
|
lines[start_pos ... end_pos] = "__" + lines[start_pos ... end_pos].gsub(/\n(?!\z)/, "\n" + shift) + "__"
|
||||||
end
|
end
|
||||||
lines.gsub(/^((?:#{Regexp::quote(shift)})*)__(?=<\/?\w)/n, '\1')
|
lines.gsub(/^((?:#{Regexp::quote(shift)})*)__(?=<\/?\w)/, '\1')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue