Dave Thomas wrote:

> It wouldn't be hard: it's just a question of updating the regexps to 
> recognize the different forms of definitions. Right now I'm pretty 
> bogged down with the new Pickaxe, but if someone wanted to generate a 
> patch I'd gladly apply it.

The problem is those pesky .klass things:

     cLADSPA_Descriptor.klass = rb_define_class_under(mLADSPA, 
"LADSPA_Descriptor", rb_cObject);
     rb_define_alloc_func(cLADSPA_Descriptor.klass, 
_wrap_LADSPA_Descriptor_allocate);

Index: rdoc/parsers/parse_c.rb
===================================================================
RCS file: /cvsroot/rdoc/rdoc/rdoc/parsers/parse_c.rb,v
retrieving revision 1.9
diff -u -r1.9 parse_c.rb
--- rdoc/parsers/parse_c.rb     5 Oct 2003 17:49:07 -0000       1.9
+++ rdoc/parsers/parse_c.rb     24 Jul 2004 13:08:40 -0000
@@ -196,7 +196,7 @@
          handle_class_module(var_name, "module", class_name, nil, 
in_module)
        end

-      @body.scan(/(\w+)\s* = \s*rb_define_class
+      @body.scan(/([\w\.]+)\s* = \s*rb_define_class
                  \(
                     \s*"(\w+)",
                     \s*(\w+)\s*
@@ -206,7 +206,7 @@
          handle_class_module(var_name, "class", class_name, parent, nil)
        end

-      @body.scan(/(\w+)\s* = \s*rb_define_class_under
+      @body.scan(/([\w\.]+)\s* = \s*rb_define_class_under
                  \(
                     \s*(\w+),
                     \s*"(\w+)",
@@ -221,7 +221,7 @@


      def do_methods
- 
@body.scan(/rb_define_(singleton_method|method|module_function)\(\s*(\w+)
,
+ 
@body.scan(/rb_define_(singleton_method|method|module_function)\(\s*([\w\.
]+),
                                 \s*"([^"]+)",
 
\s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\()?(\w+)\)?,
                                 \s*(-?\w+)\s*\)/xm) do


I don't know if there are other places where a similar thing should be 
done, or if you'd prefer a different regex (maybe one that would handle 
-> as well, like [-\w\.>] or perhaps [^\s=,])