Skip to content

Commit

Permalink
set ERB#filename so that it is used when reporting syntax/runtime err…
Browse files Browse the repository at this point in the history
…ors.

Tabs converted to spaces.


git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@9121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information
seki committed Sep 11, 2005
1 parent f126734 commit 713cecb
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 75 deletions.
5 changes: 5 additions & 0 deletions ChangeLog
@@ -1,3 +1,8 @@
Sun Sep 11 22:05:51 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>

* bin/erb (ERB::Main#run): set ERB#filename so that it is used
when reporting syntax/runtime errors. Tabs converted to spaces.

Sat Sep 10 10:17:03 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>

* ext/openssl/ossl_engine.c (ossl_engine_s_by_id):
Expand Down
152 changes: 77 additions & 75 deletions bin/erb
Expand Up @@ -12,13 +12,13 @@ class ERB
arg = self.shift
return nil if arg == '--'
if arg =~ /^-(.)(.*)/
return arg if $1 == '-'
raise 'unknown switch "-"' if $2.index('-')
self.unshift "-#{$2}" if $2.size > 0
"-#{$1}"
return arg if $1 == '-'
raise 'unknown switch "-"' if $2.index('-')
self.unshift "-#{$2}" if $2.size > 0
"-#{$1}"
else
self.unshift arg
nil
self.unshift arg
nil
end
end

Expand All @@ -30,13 +30,13 @@ class ERB
return trim_mode if disable_percent
case trim_mode
when 0
return '%'
return '%'
when 1
return '%>'
return '%>'
when 2
return '%<>'
return '%<>'
when '-'
return '%-'
return '%-'
end
end
module_function :trim_mode_opt
Expand All @@ -45,60 +45,60 @@ class ERB
trim_mode = 0
disable_percent = false
begin
while switch = ARGV.switch
case switch
when '-x' # ruby source
output = true
when '-n' # line number
number = true
when '-v' # verbose
$VERBOSE = true
when '--version' # version
STDERR.puts factory.version
exit
when '-d', '--debug' # debug
$DEBUG = true
when '-r' # require
require ARGV.req_arg
when '-S' # sacurity level
arg = ARGV.req_arg
raise "invalid safe_level #{arg.dump}" unless arg =~ /^[0-4]$/
safe_level = arg.to_i
when '-T' # trim mode
arg = ARGV.req_arg
if arg == '-'
trim_mode = arg
next
end
raise "invalid trim mode #{arg.dump}" unless arg =~ /^[0-2]$/
trim_mode = arg.to_i
when '-K' # KCODE
arg = ARGV.req_arg
case arg.downcase
when 'e', '-e', 'euc'
$KCODE = 'EUC'
when 's', '-s', 'sjis'
$KCODE = 'SJIS'
when 'u', '-u', 'utf8'
$KCODE = 'UTF8'
when 'n', '-n', 'none'
$KCODE = 'NONE'
else
raise "invalid KCODE #{arg.dump}"
end
when '-P'
disable_percent = true
when '--help'
raise "print this help"
else
raise "unknown switch #{switch.dump}"
end
end
rescue # usage
STDERR.puts $!.to_s
STDERR.puts File.basename($0) +
" [switches] [inputfile]"
STDERR.puts <<EOU
while switch = ARGV.switch
case switch
when '-x' # ruby source
output = true
when '-n' # line number
number = true
when '-v' # verbose
$VERBOSE = true
when '--version' # version
STDERR.puts factory.version
exit
when '-d', '--debug' # debug
$DEBUG = true
when '-r' # require
require ARGV.req_arg
when '-S' # sacurity level
arg = ARGV.req_arg
raise "invalid safe_level #{arg.dump}" unless arg =~ /^[0-4]$/
safe_level = arg.to_i
when '-T' # trim mode
arg = ARGV.req_arg
if arg == '-'
trim_mode = arg
next
end
raise "invalid trim mode #{arg.dump}" unless arg =~ /^[0-2]$/
trim_mode = arg.to_i
when '-K' # KCODE
arg = ARGV.req_arg
case arg.downcase
when 'e', '-e', 'euc'
$KCODE = 'EUC'
when 's', '-s', 'sjis'
$KCODE = 'SJIS'
when 'u', '-u', 'utf8'
$KCODE = 'UTF8'
when 'n', '-n', 'none'
$KCODE = 'NONE'
else
raise "invalid KCODE #{arg.dump}"
end
when '-P'
disable_percent = true
when '--help'
raise "print this help"
else
raise "unknown switch #{switch.dump}"
end
end
rescue # usage
STDERR.puts $!.to_s
STDERR.puts File.basename($0) +
" [switches] [inputfile]"
STDERR.puts <<EOU
-x print ruby script
-n print ruby script with line number
-v enable verbose mode
Expand All @@ -109,25 +109,27 @@ class ERB
-T [trim_mode] specify trim_mode (0..2, -)
-P disregard the lin which starts in "%"
EOU
exit 1
exit 1
end

src = $<.read
filename = $FILENAME
exit 2 unless src
trim = trim_mode_opt(trim_mode, disable_percent)
erb = factory.new(src.untaint, safe_level, trim)
erb.filename = filename
if output
if number
l = 1
for line in erb.src
puts "%3d %s"%[l, line]
l += 1
end
else
puts erb.src
end
if number
l = 1
for line in erb.src
puts "%3d %s"%[l, line]
l += 1
end
else
puts erb.src
end
else
erb.run(TOPLEVEL_BINDING.taint)
erb.run(TOPLEVEL_BINDING.taint)
end
end
module_function :run
Expand Down

0 comments on commit 713cecb

Please sign in to comment.