diff options
author | wakou <wakou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-12-14 00:26:05 +0000 |
---|---|---|
committer | wakou <wakou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-12-14 00:26:05 +0000 |
commit | 652f744cba955435d0c69f17fa42c3c7b88bcbe9 (patch) | |
tree | 09a31579caec58362a41c4d02a94f15ee62cc2e8 | |
parent | 3e865dceffae6245f9277af11e0422d10b01258c (diff) | |
download | ruby-652f744cba955435d0c69f17fa42c3c7b88bcbe9.tar.gz |
wakou
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | lib/cgi.rb | 73 | ||||
-rw-r--r-- | lib/net/telnet.rb | 46 |
3 files changed, 74 insertions, 53 deletions
@@ -1,3 +1,11 @@ +Thu Dec 14 09:20:26 2000 Wakou Aoyama <wakou@fsinet.or.jp> + + * lib/cgi.rb: support -T1 on ruby 1.6.2 + + * lib/cgi.rb: $1 --> Regexp::last_match[1] + + * lib/net/telnet.rb: ditto. + Wed Dec 13 12:41:27 2000 WATANABE Hirofumi <eban@ruby-lang.org> * ruby.c (proc_options): accept "--^M" for DOS line endings. diff --git a/lib/cgi.rb b/lib/cgi.rb index 101fa0a8ad..ed8a91d351 100644 --- a/lib/cgi.rb +++ b/lib/cgi.rb @@ -4,7 +4,7 @@ cgi.rb - cgi support library -Version 2.1.0 +Version 2.1.1 Copyright (C) 2000 Network Applied Communication Laboratory, Inc. @@ -185,10 +185,10 @@ class CGI CR = "\015" LF = "\012" EOL = CR + LF - VERSION = "2.1.0" - RELEASE_DATE = "2000-10-12" - VERSION_CODE = 210 - RELEASE_CODE = 20001012 + VERSION = "2.1.1" + RELEASE_DATE = "2000-12-14" + VERSION_CODE = 211 + RELEASE_CODE = 20001214 NEEDS_BINMODE = true if /WIN/ni === RUBY_PLATFORM PATH_SEPARATOR = {'UNIX'=>'/', 'WINDOWS'=>'\\', 'MACINTOSH'=>':'} @@ -241,7 +241,7 @@ class CGI =end def CGI::escape(string) string.gsub(/([^ a-zA-Z0-9_.-]+)/n) do - '%' + $1.unpack('H2' * $1.size).join('%').upcase + '%' + Regexp::last_match[1].unpack('H2' * Regexp::last_match[1].size).join('%').upcase end.tr(' ', '+') end @@ -252,7 +252,7 @@ class CGI =end def CGI::unescape(string) string.tr('+', ' ').gsub(/((?:%[0-9a-fA-F]{2})+)/n) do - [$1.delete('%')].pack('H*') + [Regexp::last_match[1].delete('%')].pack('H*') end end @@ -272,34 +272,34 @@ class CGI =end def CGI::unescapeHTML(string) string.gsub(/&(.*?);/n) do - match = $1.dup + match = Regexp::last_match[1].dup case match when /\Aamp\z/ni then '&' when /\Aquot\z/ni then '"' when /\Agt\z/ni then '>' when /\Alt\z/ni then '<' when /\A#(\d+)\z/n then - if Integer($1) < 256 - Integer($1).chr + if Integer(Regexp::last_match[1]) < 256 + Integer(Regexp::last_match[1]).chr else - if Integer($1) < 65536 and ($KCODE[0] == ?u or $KCODE[0] == ?U) - [Integer($1)].pack("U") + if Integer(Regexp::last_match[1]) < 65536 and ($KCODE[0] == ?u or $KCODE[0] == ?U) + [Integer(Regexp::last_match[1])].pack("U") else - "&##{$1};" + "&##{Regexp::last_match[1]};" end end when /\A#x([0-9a-f]+)\z/ni then - if $1.hex < 256 - $1.hex.chr + if Regexp::last_match[1].hex < 256 + Regexp::last_match[1].hex.chr else - if $1.hex < 65536 and ($KCODE[0] == ?u or $KCODE[0] == ?U) - [$1.hex].pack("U") + if Regexp::last_match[1].hex < 65536 and ($KCODE[0] == ?u or $KCODE[0] == ?U) + [Regexp::last_match[1].hex].pack("U") else - "&#x#{$1};" + "&#x#{Regexp::last_match[1]};" end end else - "&#{$1};" + "&#{Regexp::last_match[1]};" end end end @@ -316,7 +316,7 @@ class CGI def CGI::escapeElement(string, *element) unless element.empty? string.gsub(/<\/?(?:#{element.join("|")})(?!\w)(?:.|\n)*?>/ni) do - CGI::escapeHTML($&) + CGI::escapeHTML(Regexp::last_match[0]) end else string @@ -336,7 +336,7 @@ class CGI =end def CGI::unescapeElement(string, *element) string.gsub(/<\/?(?:#{element.join("|")})(?!\w)(?:.|\n)*?>/ni) do - CGI::unescapeHTML($&) + CGI::unescapeHTML(Regexp::last_match[0]) end end @@ -491,7 +491,7 @@ status: if defined?(MOD_RUBY) buf.scan(/([^:]+): (.+)#{EOL}/n){ - Apache::request[$1] = $2 + Apache::request[Regexp::last_match[1]] = Regexp::last_match[2] } Apache::request.send_http_header '' @@ -787,7 +787,7 @@ convert string charset, and set language to "ja". if (not head) and (/#{EOL}#{EOL}/n === buf) buf = buf.sub(/\A((?:.|\n)*?#{EOL})#{EOL}/n) do - head = $1.dup + head = Regexp::last_match[1].dup "" end next @@ -809,8 +809,8 @@ convert string charset, and set language to "ja". end buf = buf.sub(/\A((?:.|\n)*?)(?:#{EOL})?#{boundary}(#{EOL}|--)/n) do - body.print $1 - if "--" == $2 + body.print Regexp::last_match[1] + if "--" == Regexp::last_match[2] content_length = -1 end "" @@ -828,27 +828,27 @@ convert string charset, and set language to "ja". eval <<-END def body.original_filename #{ - filename = ($1 or "").dup + filename = (Regexp::last_match[1] or "").dup if (/Mac/ni === env_table['HTTP_USER_AGENT']) and (/Mozilla/ni === env_table['HTTP_USER_AGENT']) and (not /MSIE/ni === env_table['HTTP_USER_AGENT']) CGI::unescape(filename) else filename - end.dump - } + end.dump.untaint + }.taint end END /Content-Type: (.*)/ni === head eval <<-END def body.content_type - #{($1 or "").dump} + #{(Regexp::last_match[1] or "").dump.untaint}.taint end END /Content-Disposition:.* name="?([^\";]*)"?/ni === head - name = $1.dup + name = Regexp::last_match[1].dup if params.has_key?(name) params[name].push(body) @@ -891,7 +891,7 @@ convert string charset, and set language to "ja". if ("POST" == env_table['REQUEST_METHOD']) and (%r|\Amultipart/form-data.*boundary=\"?([^\";,]+)\"?|n === env_table['CONTENT_TYPE']) - boundary = $1.dup + boundary = Regexp::last_match[1].dup @params = read_multipart(boundary, Integer(env_table['CONTENT_LENGTH'])) else @params = CGI::parse( @@ -951,7 +951,7 @@ convert string charset, and set language to "ja". lines = string.gsub(/(?!\A)<(?:.|\n)*?>/n, "\n\\0").gsub(/<(?:.|\n)*?>(?!\n)/n, "\\0\n") end_pos = 0 while end_pos = lines.index(/^<\/(\w+)/n, end_pos) - element = $1.dup + element = Regexp::last_match[1].dup start_pos = lines.rindex(/^\s*<#{element}/ni, end_pos) lines[start_pos ... end_pos] = "__" + lines[start_pos ... end_pos].gsub(/\n(?!\z)/n, "\n" + shift) + "__" end @@ -1925,6 +1925,15 @@ end == HISTORY +* Mon Dec 11 00:16:51 JST 2000 - wakou + * version 2.1.1 + * support -T1 on ruby 1.6.2 + * body.original_filename: eval(str.dump.untaint).taint + * body.content_type: eval(str.dump.untaint).taint + * $& --> Regexp::last_match[0] + * $1 --> Regexp::last_match[1] + * $2 --> Regexp::last_match[2] + * Thu Oct 12 01:16:59 JST 2000 - wakou * version 2.1.0 * bug fix: CGI::html(): PRETTY option didn't work. diff --git a/lib/net/telnet.rb b/lib/net/telnet.rb index 8ff1884e7a..4a0860eb84 100644 --- a/lib/net/telnet.rb +++ b/lib/net/telnet.rb @@ -4,7 +4,7 @@ net/telnet.rb - simple telnet client library -Version 1.6.0 +Version 1.6.1 Wakou Aoyama <wakou@fsinet.or.jp> @@ -239,10 +239,10 @@ module Net CR = "\015" LF = "\012" EOL = CR + LF - VERSION = "1.6.0" - RELEASE_DATE = "2000-09-12" - VERSION_CODE = 160 - RELEASE_CODE = 20000912 + VERSION = "1.6.1" + RELEASE_DATE = "2000-12-14" + VERSION_CODE = 161 + RELEASE_CODE = 20001214 def initialize(options) @options = options @@ -398,42 +398,42 @@ module Net [#{OPT_BINARY}-#{OPT_NEW_ENVIRON}#{OPT_EXOPL}]| #{SB}[^#{IAC}]*#{IAC}#{SE} )/xno) do - if IAC == $1 # handle escaped IAC characters + if IAC == Regexp::last_match[1] # handle escaped IAC characters IAC - elsif AYT == $1 # respond to "IAC AYT" (are you there) + elsif AYT == Regexp::last_match[1] # respond to "IAC AYT" (are you there) self.write("nobody here but us pigeons" + EOL) '' - elsif DO[0] == $1[0] # respond to "IAC DO x" - if OPT_BINARY[0] == $1[1] + elsif DO[0] == Regexp::last_match[1][0] # respond to "IAC DO x" + if OPT_BINARY[0] == Regexp::last_match[1][1] @telnet_option["BINARY"] = true self.write(IAC + WILL + OPT_BINARY) else - self.write(IAC + WONT + $1[1..1]) + self.write(IAC + WONT + Regexp::last_match[1][1..1]) end '' - elsif DONT[0] == $1[0] # respond to "IAC DON'T x" with "IAC WON'T x" - self.write(IAC + WONT + $1[1..1]) + elsif DONT[0] == Regexp::last_match[1][0] # respond to "IAC DON'T x" with "IAC WON'T x" + self.write(IAC + WONT + Regexp::last_match[1][1..1]) '' - elsif WILL[0] == $1[0] # respond to "IAC WILL x" - if OPT_BINARY[0] == $1[1] + elsif WILL[0] == Regexp::last_match[1][0] # respond to "IAC WILL x" + if OPT_BINARY[0] == Regexp::last_match[1][1] self.write(IAC + DO + OPT_BINARY) - elsif OPT_ECHO[0] == $1[1] + elsif OPT_ECHO[0] == Regexp::last_match[1][1] self.write(IAC + DO + OPT_ECHO) - elsif OPT_SGA[0] == $1[1] + elsif OPT_SGA[0] == Regexp::last_match[1][1] @telnet_option["SGA"] = true self.write(IAC + DO + OPT_SGA) else - self.write(IAC + DONT + $1[1..1]) + self.write(IAC + DONT + Regexp::last_match[1][1..1]) end '' - elsif WONT[0] == $1[0] # respond to "IAC WON'T x" - if OPT_ECHO[0] == $1[1] + elsif WONT[0] == Regexp::last_match[1][0] # respond to "IAC WON'T x" + if OPT_ECHO[0] == Regexp::last_match[1][1] self.write(IAC + DONT + OPT_ECHO) - elsif OPT_SGA[0] == $1[1] + elsif OPT_SGA[0] == Regexp::last_match[1][1] @telnet_option["SGA"] = false self.write(IAC + DONT + OPT_SGA) else - self.write(IAC + DONT + $1[1..1]) + self.write(IAC + DONT + Regexp::last_match[1][1..1]) end '' else @@ -599,6 +599,10 @@ end == HISTORY +* Mon Dec 11 00:16:51 JST 2000 - wakou + * version 1.6.1 + * $1 --> Regexp::last_match[1] + * 2000/09/12 05:37:35 - matz * change: iterator? --> block_given? |