Bugs: Browse | Submit New | Admin

[#28987] rdoc not support RUBYOPT="-Ku"

Date:
2011-02-24 05:56
Priority:
3
Submitted By:
Guten (gutenlinux)
Assigned To:
Eric Hodel (drbrain)
Category:
None
State:
Open
Summary:
rdoc not support RUBYOPT="-Ku"

Detailed description
$ cat a.rb
# 你


$ RUBYOPT="-Ku" rdoc a.rb --debug
Parsing sources...
                                                          
Before reporting this, could you check that the file you're documenting
has proper syntax:

  /usr/bin/ruby -c a.rb

RDoc is not a full Ruby parser and will fail when fed invalid ruby programs.

The internal error was:

	(Encoding::CompatibilityError) incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string)

/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.4/lib/rdoc/encoding.rb:20:in `sub!'
	/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.4/lib/rdoc/encoding.rb:20:in `read_file'
	/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.4/lib/rdoc/rdoc.rb:312:in `parse_file'
	/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.4/lib/rdoc/rdoc.rb:367:in `block in parse_files'
	/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.4/lib/rdoc/rdoc.rb:365:in `map'
	/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.4/lib/rdoc/rdoc.rb:365:in `parse_files'
	/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.4/lib/rdoc/rdoc.rb:423:in `document'
	/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.4/bin/rdoc:15:in `<top (required)>'
	/usr/bin/rdoc:19:in `load'
	/usr/bin/rdoc:19:in `<main>'
incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string)
/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.4/lib/rdoc/encoding.rb:20:in `sub!'
	/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.4/lib/rdoc/encoding.rb:20:in `read_file'
	/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.4/lib/rdoc/rdoc.rb:312:in `parse_file'
	/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.4/lib/rdoc/rdoc.rb:367:in `block in parse_files'
	/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.4/lib/rdoc/rdoc.rb:365:in `map'
	/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.4/lib/rdoc/rdoc.rb:365:in `parse_files'
	/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.4/lib/rdoc/rdoc.rb:423:in `document'
	/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.4/bin/rdoc:15:in `<top (required)>'
	/usr/bin/rdoc:19:in `load'
	/usr/bin/rdoc:19:in `<main>'


rdoc-3.4/lib/rdoc/encoding.rb:20 
    content = open filename, "rb" do |f| f.read end
    utf8 = content.sub!(/\A\xef\xbb\xbf/, '')

in RUBYOPT="-Ku" regexp's encoding is UTF-8 but content's encoding is ASCII-8BIT

solution: 
    add '# encoding: ascii' in the head of file 'rdoc-3.4/lib/rdoc/encoding.rb'

Add A Comment: Notepad

Please login


Followup

Message
Date: 2011-02-26 01:25
Sender: Guten 

same problem when run rdoc command.

$ RUBYOPT="-Ku" rdoc rdoc a.rb
<internal:lib/rubygems/custom_require>:29:in `require':
/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.5.3/lib/rdoc/ruby_lex.rb:831
:
invalid multibyte escape: /[\w\x80-\xFF]/ (SyntaxError)
	from <internal:lib/rubygems/custom_require>:29:in
`require'
	from
/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.5.3/lib/rdoc/parser/ruby.rb:
11:in
`<top (required)>'
	from <internal:lib/rubygems/custom_require>:29:in
`require'
	from <internal:lib/rubygems/custom_require>:29:in
`require'
	from
/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.5.3/lib/rdoc/rdoc.rb:8:in
`<top (required)>'
	from <internal:lib/rubygems/custom_require>:29:in
`require'
	from <internal:lib/rubygems/custom_require>:29:in
`require'
	from
/usr/lib/ruby/gems/1.9.1/gems/rdoc-3.5.3/bin/rdoc:11:in
`<top (required)>'
	from /usr/bin/rdoc:19:in `load'
	from /usr/bin/rdoc:19:in `<main>'

solution:
   add '# encoding: ascii' in the head of file
'lib/rdoc/parser/ruby.rb'

Attached Files:

Name Description Download
No Files Currently Attached

Changes:

Field Old Value Date By
assigned_tonone2011-03-02 04:08zenspider
summaryrdoc not support RUBYOPT=&quot;-Ku&quot;2011-03-02 04:08zenspider
summaryrdoc not support RUBYOPT="-Ku"2011-02-26 01:25gutenlinux