blob: ecf3f574c6fdd4b3ff4566dc914ff72a8228f125 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
$NetBSD: patch-lib_rdoc_parser_c.rb,v 1.1.2.2 2013/07/16 19:12:27 tron Exp $
Dirty hack for Ruby 1.8.7.
--- lib/rdoc/parser/c.rb.orig 2013-07-05 02:21:00.000000000 +0000
+++ lib/rdoc/parser/c.rb
@@ -729,6 +729,7 @@ class RDoc::Parser::C < RDoc::Parser
def find_class_comment class_name, class_mod
comment = nil
+ begin
if @content =~ %r%
((?>/\*.*?\*/\s+))
(static\s+)?
@@ -747,6 +748,29 @@ class RDoc::Parser::C < RDoc::Parser
else
comment = ''
end
+ rescue RegexpError
+ if RUBY_VERSION == "1.8.7"
+ if @content =~ %r%
+ ((?>/\*.*?\*/\s+))
+ (static\s+)?
+ void\s+
+ Init_#{class_name}\s*(?:_\(\s*)?\(\s*(?:void\s*)?\)%xmi then
+ comment = $1.sub(%r%Document-(?:class|module):\s+#{class_name}%, '')
+ elsif @content =~ %r%Document-(?:class|module):\s+#{class_name}\s*?
+ (?:<\s+[:,\w]+)?\n((?>.*?\*/))%xm then
+ comment = "/*\n#{$1}"
+ elsif @content =~ %r%((?>/\*.*?\*/\s+))
+ ([\w\.\s]+\s* = \s+)?rb_define_(class|module).*?"(#{class_name})"%xm then
+ comment = $1
+ elsif @content =~ %r%((?>/\*.*?\*/\s+))
+ ([\w\.\s]+\s* = \s+)?rb_define_(class|module)_under.*?"(#{class_name.split('::').last})"%xm then
+ comment = $1
+ else
+ comment = ''
+ end
+ end
+ comment = ''
+ end
comment = RDoc::Comment.new comment, @top_level
comment.normalize
|