mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* regex.c (re_compile_pattern): fix previous change.
* instruby.rb, ext/extmk.rb, ext/tk/lib/tk.rb, lib/benchmark.rb, lib/cgi.rb, lib/debug.rb, lib/getoptlong.rb, lib/jcode.rb, lib/optparse.rb, lib/time.rb, lib/date/format.rb, lib/irb/ruby-lex.rb: escape `[', `]', `-' in chracter class in regexp to avoid warning. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3595 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
108cf940d8
commit
58ef7c2088
14 changed files with 56 additions and 46 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
|||
Fri Mar 21 23:40:41 2003 Tanaka Akira <akr@m17n.org>
|
||||
|
||||
* regex.c (re_compile_pattern): fix previous change.
|
||||
|
||||
* instruby.rb, ext/extmk.rb, ext/tk/lib/tk.rb, lib/benchmark.rb,
|
||||
lib/cgi.rb, lib/debug.rb, lib/getoptlong.rb, lib/jcode.rb,
|
||||
lib/optparse.rb, lib/time.rb, lib/date/format.rb,
|
||||
lib/irb/ruby-lex.rb: escape `[', `]', `-' in chracter class in
|
||||
regexp to avoid warning.
|
||||
|
||||
Fri Mar 21 23:23:45 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||
|
||||
* regex.c (re_compile_pattern): give warning for unescaped square
|
||||
|
|
|
@ -127,7 +127,7 @@ def parse_args()
|
|||
|
||||
$mflags = Shellwords.shellwords(mflags)
|
||||
if arg = $mflags.first
|
||||
arg.insert(0, '-') if /\A[^-][^=]*\Z/ =~ arg
|
||||
arg.insert(0, '-') if /\A[^\-][^=]*\Z/ =~ arg
|
||||
end
|
||||
|
||||
$make, *rest = Shellwords.shellwords($make)
|
||||
|
|
|
@ -605,7 +605,7 @@ module TkCore
|
|||
end
|
||||
|
||||
def rb_appsend(interp, async, *args)
|
||||
args = args.collect!{|c| _get_eval_string(c).gsub(/[][$"]/, '\\\\\&')}
|
||||
args = args.collect!{|c| _get_eval_string(c).gsub(/[\]\[$"]/, '\\\\\&')}
|
||||
args.push(').to_s"')
|
||||
appsend(interp, async, 'ruby "(', *args)
|
||||
end
|
||||
|
@ -620,7 +620,7 @@ module TkCore
|
|||
end
|
||||
|
||||
def rb_appsend_displayof(interp, win, async, *args)
|
||||
args = args.collect!{|c| _get_eval_string(c).gsub(/[][$"]/, '\\\\\&')}
|
||||
args = args.collect!{|c| _get_eval_string(c).gsub(/[\]\[$"]/, '\\\\\&')}
|
||||
args.push(').to_s"')
|
||||
appsend_displayof(interp, win, async, 'ruby "(', *args)
|
||||
end
|
||||
|
@ -1179,14 +1179,14 @@ class TkVariable
|
|||
elsif val.kind_of?(Array)
|
||||
a = []
|
||||
val.each_with_index{|e,i| a.push(i); a.push(array2tk_list(e))}
|
||||
s = '"' + a.join(" ").gsub(/[][$"]/, '\\\\\&') + '"'
|
||||
s = '"' + a.join(" ").gsub(/[\]\[$"]/, '\\\\\&') + '"'
|
||||
INTERP._eval(format('global %s; array set %s %s', @id, @id, s))
|
||||
elsif val.kind_of?(Hash)
|
||||
s = '"' + val.to_a.collect{|e| array2tk_list(e)}.join(" ")\
|
||||
.gsub(/[][$"]/, '\\\\\&') + '"'
|
||||
.gsub(/[\]\[$"]/, '\\\\\&') + '"'
|
||||
INTERP._eval(format('global %s; array set %s %s', @id, @id, s))
|
||||
else
|
||||
s = '"' + _get_eval_string(val).gsub(/[][$"]/, '\\\\\&') + '"'
|
||||
s = '"' + _get_eval_string(val).gsub(/[\]\[$"]/, '\\\\\&') + '"'
|
||||
INTERP._eval(format('global %s; set %s %s', @id, @id, s))
|
||||
end
|
||||
end
|
||||
|
@ -1214,7 +1214,7 @@ class TkVariable
|
|||
|
||||
def value=(val)
|
||||
begin
|
||||
s = '"' + _get_eval_string(val).gsub(/[][$"]/, '\\\\\&') + '"'
|
||||
s = '"' + _get_eval_string(val).gsub(/[\]\[$"]/, '\\\\\&') + '"'
|
||||
INTERP._eval(format('global %s; set %s %s', @id, @id, s))
|
||||
rescue
|
||||
if INTERP._eval(format('global %s; array exists %s', @id, @id)) != "1"
|
||||
|
@ -1226,12 +1226,12 @@ class TkVariable
|
|||
elsif val.kind_of?(Array)
|
||||
a = []
|
||||
val.each_with_index{|e,i| a.push(i); a.push(array2tk_list(e))}
|
||||
s = '"' + a.join(" ").gsub(/[][$"]/, '\\\\\&') + '"'
|
||||
s = '"' + a.join(" ").gsub(/[\]\[$"]/, '\\\\\&') + '"'
|
||||
INTERP._eval(format('global %s; unset %s; array set %s %s',
|
||||
@id, @id, @id, s))
|
||||
elsif val.kind_of?(Hash)
|
||||
s = '"' + val.to_a.collect{|e| array2tk_list(e)}.join(" ")\
|
||||
.gsub(/[][$"]/, '\\\\\&') + '"'
|
||||
.gsub(/[\]\[$"]/, '\\\\\&') + '"'
|
||||
INTERP._eval(format('global %s; unset %s; array set %s %s',
|
||||
@id, @id, @id, s))
|
||||
else
|
||||
|
@ -1438,7 +1438,7 @@ class TkVarAccess<TkVariable
|
|||
def initialize(varname, val=nil)
|
||||
@id = varname
|
||||
if val
|
||||
s = '"' + _get_eval_string(val).gsub(/[][$"]/, '\\\\\&') + '"' #"
|
||||
s = '"' + _get_eval_string(val).gsub(/[\]\[$"]/, '\\\\\&') + '"' #"
|
||||
INTERP._eval(format('global %s; set %s %s', @id, @id, s))
|
||||
end
|
||||
end
|
||||
|
|
|
@ -25,7 +25,7 @@ def parse_args()
|
|||
|
||||
$mflags = Shellwords.shellwords(mflags)
|
||||
if arg = $mflags.first
|
||||
arg.insert(0, '-') if /\A[^-][^=]*\Z/ =~ arg
|
||||
arg.insert(0, '-') if /\A[^\-][^=]*\Z/ =~ arg
|
||||
end
|
||||
|
||||
$make, *rest = Shellwords.shellwords($make)
|
||||
|
|
|
@ -577,13 +577,13 @@ module Benchmark
|
|||
|
||||
def format(arg0 = nil, *args)
|
||||
fmtstr = (arg0 || FMTSTR).dup
|
||||
fmtstr.gsub!(/(%[-+\.\d]*)n/){"#{$1}s" % label}
|
||||
fmtstr.gsub!(/(%[-+\.\d]*)u/){"#{$1}f" % utime}
|
||||
fmtstr.gsub!(/(%[-+\.\d]*)y/){"#{$1}f" % stime}
|
||||
fmtstr.gsub!(/(%[-+\.\d]*)U/){"#{$1}f" % cutime}
|
||||
fmtstr.gsub!(/(%[-+\.\d]*)Y/){"#{$1}f" % cstime}
|
||||
fmtstr.gsub!(/(%[-+\.\d]*)t/){"#{$1}f" % total}
|
||||
fmtstr.gsub!(/(%[-+\.\d]*)r/){"(#{$1}f)" % real}
|
||||
fmtstr.gsub!(/(%[\-+\.\d]*)n/){"#{$1}s" % label}
|
||||
fmtstr.gsub!(/(%[\-+\.\d]*)u/){"#{$1}f" % utime}
|
||||
fmtstr.gsub!(/(%[\-+\.\d]*)y/){"#{$1}f" % stime}
|
||||
fmtstr.gsub!(/(%[\-+\.\d]*)U/){"#{$1}f" % cutime}
|
||||
fmtstr.gsub!(/(%[\-+\.\d]*)Y/){"#{$1}f" % cstime}
|
||||
fmtstr.gsub!(/(%[\-+\.\d]*)t/){"#{$1}f" % total}
|
||||
fmtstr.gsub!(/(%[\-+\.\d]*)r/){"(#{$1}f)" % real}
|
||||
arg0 ? Kernel::format(fmtstr, *args) : fmtstr
|
||||
end
|
||||
|
||||
|
|
|
@ -236,7 +236,7 @@ class CGI
|
|||
url_encoded_string = CGI::escape("string")
|
||||
=end
|
||||
def CGI::escape(string)
|
||||
string.gsub(/([^ a-zA-Z0-9_.-]+)/n) do
|
||||
string.gsub(/([^ a-zA-Z0-9_.\-]+)/n) do
|
||||
'%' + $1.unpack('H2' * $1.size).join('%').upcase
|
||||
end.tr(' ', '+')
|
||||
end
|
||||
|
|
|
@ -80,7 +80,7 @@ class Date
|
|||
when '%F'
|
||||
return unless __strptime(str, '%Y-%m-%d', elem)
|
||||
when '%G'
|
||||
return unless str.sub!(/\A([-+]?\d+)/o, '')
|
||||
return unless str.sub!(/\A([\-+]?\d+)/o, '')
|
||||
val = $1.to_i
|
||||
elem[:cwyear] = val
|
||||
when '%g'
|
||||
|
@ -163,7 +163,7 @@ class Date
|
|||
when '%x'
|
||||
return unless __strptime(str, '%m/%d/%y', elem)
|
||||
when '%Y'
|
||||
return unless str.sub!(/\A([-+]?\d+)/o, '')
|
||||
return unless str.sub!(/\A([\-+]?\d+)/o, '')
|
||||
val = $1.to_i
|
||||
elem[:year] = val
|
||||
when '%y'
|
||||
|
@ -173,7 +173,7 @@ class Date
|
|||
elem[:year] = val
|
||||
elem[:cent] ||= if val >= 69 then 19 else 20 end
|
||||
when '%Z', '%z'
|
||||
return unless str.sub!(/\A([a-z0-9:+-]+(?:\s+dst\b)?)/io, '')
|
||||
return unless str.sub!(/\A([a-z0-9:+\-]+(?:\s+dst\b)?)/io, '')
|
||||
val = $1
|
||||
elem[:zone] = val
|
||||
offset = zone_to_diff(val)
|
||||
|
@ -227,7 +227,7 @@ class Date
|
|||
def self._parse(str, comp=false)
|
||||
str = str.dup
|
||||
|
||||
str.gsub!(/[^-+.\/:0-9a-z]+/ino, ' ')
|
||||
str.gsub!(/[^\-+.\/:0-9a-z]+/ino, ' ')
|
||||
|
||||
# day
|
||||
if str.sub!(/(#{PARSE_DAYPAT})\S*/ino, ' ')
|
||||
|
@ -246,7 +246,7 @@ class Date
|
|||
(
|
||||
[a-z]+(?:\s+dst)?\b
|
||||
|
|
||||
[-+]\d+(?::?\d+)
|
||||
[\-+]\d+(?::?\d+)
|
||||
)
|
||||
)?
|
||||
/inox,
|
||||
|
@ -308,7 +308,7 @@ class Date
|
|||
end
|
||||
|
||||
# iso
|
||||
elsif str.sub!(/([-+]?\d+)-(\d+)-(-?\d+)/no, ' ')
|
||||
elsif str.sub!(/([\-+]?\d+)-(\d+)-(-?\d+)/no, ' ')
|
||||
year = $1.to_i
|
||||
mon = $2.to_i
|
||||
mday = $3.to_i
|
||||
|
@ -363,7 +363,7 @@ class Date
|
|||
|
||||
# ddd
|
||||
elsif str.sub!(
|
||||
/([-+]?)(\d{4,14})
|
||||
/([\-+]?)(\d{4,14})
|
||||
(?:
|
||||
\s*
|
||||
T?
|
||||
|
@ -375,7 +375,7 @@ class Date
|
|||
(
|
||||
Z
|
||||
|
|
||||
[-+]\d{2,4}
|
||||
[\-+]\d{2,4}
|
||||
)
|
||||
\b
|
||||
)?
|
||||
|
@ -444,7 +444,7 @@ class Date
|
|||
if ZONES.include?(abb)
|
||||
offset = ZONES[abb]
|
||||
offset += 3600 if dst
|
||||
elsif /\A([+-])(\d{2}):?(\d{2})?\Z/no =~ str
|
||||
elsif /\A([+\-])(\d{2}):?(\d{2})?\Z/no =~ str
|
||||
offset = $2.to_i * 3600 + $3.to_i * 60
|
||||
offset *= -1 if $1 == '-'
|
||||
end
|
||||
|
|
|
@ -425,7 +425,7 @@ class Context
|
|||
b = previous_line ? previous_line - 10 : binding_line - 5
|
||||
e = b + 9
|
||||
else
|
||||
b, e = $1.split(/[-,]/)
|
||||
b, e = $1.split(/[\-,]/)
|
||||
if e
|
||||
b = b.to_i
|
||||
e = e.to_i
|
||||
|
|
|
@ -180,7 +180,7 @@ class GetoptLong
|
|||
#
|
||||
next if i == argument_flag
|
||||
begin
|
||||
if !i.is_a?(String) || i !~ /^-([^-]|-.+)$/
|
||||
if !i.is_a?(String) || i !~ /^-([^\-]|-.+)$/
|
||||
raise ArgumentError, "an invalid option `#{i}'"
|
||||
end
|
||||
if (@canonical_names.include?(i))
|
||||
|
|
|
@ -948,7 +948,7 @@ class RubyLex
|
|||
allow_point = false
|
||||
when allow_e && "e", allow_e && "E"
|
||||
type = TkFLOAT
|
||||
if peek(0) =~ /[+-]/
|
||||
if peek(0) =~ /[+\-]/
|
||||
getc
|
||||
end
|
||||
allow_e = false
|
||||
|
|
|
@ -9,7 +9,7 @@ class String
|
|||
printf STDERR, "feel free for some warnings:\n" if $VERBOSE
|
||||
|
||||
def _regex_quote(str)
|
||||
str.gsub(/(\\[][\-\\])|\\(.)|([][\\])/) do
|
||||
str.gsub(/(\\[\]\[\-\\])|\\(.)|([\]\[\\])/) do
|
||||
$1 || $2 || '\\' + $3
|
||||
end
|
||||
end
|
||||
|
|
|
@ -965,7 +965,7 @@ Default options, which never appear in option summary.
|
|||
raise ArgumentError, "unsupported argument type: #{o}"
|
||||
when *ArgumentStyle.keys
|
||||
style = notwice(ArgumentStyle[o], style, 'style')
|
||||
when /^--no-([^][=\s]*)(.+)?/
|
||||
when /^--no-([^\]\[=\s]*)(.+)?/
|
||||
q, a = $1, $2
|
||||
o = notwice(a ? Object : TrueClass, klass, 'type')
|
||||
not_pattern, not_conv = search(:atype, o) unless not_style
|
||||
|
@ -975,7 +975,7 @@ Default options, which never appear in option summary.
|
|||
ldesc << "--no-#{q}"
|
||||
long << 'no-' + (q = q.downcase)
|
||||
nolong << q
|
||||
when /^--\[no-\]([^][=\s]*)(.+)?/
|
||||
when /^--\[no-\]([^\]\[=\s]*)(.+)?/
|
||||
q, a = $1, $2
|
||||
o = notwice(a ? Object : TrueClass, klass, 'type')
|
||||
if a
|
||||
|
@ -987,7 +987,7 @@ Default options, which never appear in option summary.
|
|||
not_pattern, not_conv = search(:atype, FalseClass) unless not_style
|
||||
not_style = Switch::NoArgument
|
||||
nolong << 'no-' + o
|
||||
when /^--([^][=\s]*)(.+)?/
|
||||
when /^--([^\]\[=\s]*)(.+)?/
|
||||
q, a = $1, $2
|
||||
if a
|
||||
o = notwice(NilClass, klass, 'type')
|
||||
|
@ -1346,14 +1346,14 @@ Default options, which never appear in option summary.
|
|||
hex = 'x[\da-f]+(?:_[\da-f]+)*'
|
||||
octal = "0(?:[0-7]*(?:_[0-7]+)*|#{binary}|#{hex})"
|
||||
integer = "#{octal}|#{decimal}"
|
||||
accept(Integer, %r"\A[-+]?(?:#{integer})"io) {|s| Integer(s) if s}
|
||||
accept(Integer, %r"\A[\-+]?(?:#{integer})"io) {|s| Integer(s) if s}
|
||||
|
||||
=begin
|
||||
: Float
|
||||
Float number format, and converts to (({Float})).
|
||||
=end #'#"#`#
|
||||
float = "(?:#{decimal}(?:\\.(?:#{decimal})?)?|\\.#{decimal})(?:E[-+]?#{decimal})?"
|
||||
floatpat = %r"\A[-+]?#{float}"io
|
||||
float = "(?:#{decimal}(?:\\.(?:#{decimal})?)?|\\.#{decimal})(?:E[\\-+]?#{decimal})?"
|
||||
floatpat = %r"\A[\-+]?#{float}"io
|
||||
accept(Float, floatpat) {|s| s.to_f if s}
|
||||
|
||||
=begin
|
||||
|
@ -1361,13 +1361,13 @@ Default options, which never appear in option summary.
|
|||
Generic numeric format, and converts to (({Integer})) for integer
|
||||
format, (({Float})) for float format.
|
||||
=end #'#"#`#
|
||||
accept(Numeric, %r"\A[-+]?(?:#{octal}|#{float})"io) {|s| eval(s) if s}
|
||||
accept(Numeric, %r"\A[\-+]?(?:#{octal}|#{float})"io) {|s| eval(s) if s}
|
||||
|
||||
=begin
|
||||
: OptionParser::DecimalInteger
|
||||
Decimal integer format, to be converted to (({Integer})).
|
||||
=end #'#"#`#
|
||||
DecimalInteger = /\A[-+]?#{decimal}/io
|
||||
DecimalInteger = /\A[\-+]?#{decimal}/io
|
||||
accept(DecimalInteger) {|s| s.to_i if s}
|
||||
|
||||
=begin
|
||||
|
@ -1375,7 +1375,7 @@ Default options, which never appear in option summary.
|
|||
Ruby/C like octal/hexadecimal/binary integer format, to be converted
|
||||
to (({Integer})).
|
||||
=end #'#"#`#
|
||||
OctalInteger = /\A[-+]?(?:[0-7]+(?:_[0-7]+)*|0(?:#{binary}|#{hex}))/io
|
||||
OctalInteger = /\A[\-+]?(?:[0-7]+(?:_[0-7]+)*|0(?:#{binary}|#{hex}))/io
|
||||
accept(OctalInteger) {|s| s.oct if s}
|
||||
|
||||
=begin
|
||||
|
|
|
@ -69,9 +69,9 @@ class Time
|
|||
def zone_offset(zone, year=Time.now.year)
|
||||
off = nil
|
||||
zone = zone.upcase
|
||||
if /\A([-+])(\d\d):?(\d\d)\z/ =~ zone
|
||||
if /\A([\-+])(\d\d):?(\d\d)\z/ =~ zone
|
||||
off = ($1 == '-' ? -1 : 1) * ($2.to_i * 60 + $3.to_i) * 60
|
||||
elsif /\A[-+]\d\d\z/ =~ zone
|
||||
elsif /\A[\-+]\d\d\z/ =~ zone
|
||||
off = zone.to_i * 3600
|
||||
elsif ZoneOffset.include?(zone)
|
||||
off = ZoneOffset[zone] * 3600
|
||||
|
|
6
regex.c
6
regex.c
|
@ -185,7 +185,7 @@ static int current_mbctype = MBCTYPE_ASCII;
|
|||
|
||||
#ifdef RUBY
|
||||
#include "util.h"
|
||||
# re_warning(x) rb_warn(x)
|
||||
# define re_warning(x) rb_warn(x)
|
||||
#endif
|
||||
|
||||
#ifndef re_warning
|
||||
|
@ -1489,6 +1489,8 @@ re_compile_pattern(pattern, size, bufp)
|
|||
|
||||
if (c == '-')
|
||||
re_warning("character class has `-' without escape");
|
||||
if (c == '[' && *p != ':')
|
||||
re_warning("character class has `[' without escape");
|
||||
|
||||
/* \ escapes characters when inside [...]. */
|
||||
if (c == '\\') {
|
||||
|
@ -1695,8 +1697,6 @@ re_compile_pattern(pattern, size, bufp)
|
|||
}
|
||||
}
|
||||
else if (had_mbchar == 0 && (!current_mbctype || !had_num_literal)) {
|
||||
if (c == '[')
|
||||
re_warning("character class has `[' without escape");
|
||||
SET_LIST_BIT(c);
|
||||
had_num_literal = 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue