зеркало из https://github.com/github/ruby.git
[ruby/rdoc] Fix support for `rb_file_const` and `rb_curses_define_const`
Constant definitions using these functions have been supported, but since RDoc::Parser::C#gen_const_table did not consider other than `rb_define_const` the documents for them have not been found, without `Document-const` direvtive. Fixes https://github.com/ruby/rdoc/issues/1067 https://github.com/ruby/rdoc/commit/cdad51a60b
This commit is contained in:
Родитель
e55a57af1e
Коммит
e324953090
|
@ -756,17 +756,27 @@ class RDoc::Parser::C < RDoc::Parser
|
|||
def gen_const_table file_content
|
||||
table = {}
|
||||
@content.scan(%r{
|
||||
((?>^\s*/\*.*?\*/\s+))
|
||||
rb_define_(\w+)\((?:\s*(?:\w+),)?\s*
|
||||
"(\w+)"\s*,
|
||||
(?<doc>(?>^\s*/\*.*?\*/\s+))
|
||||
rb_define_(?<type>\w+)\(\s*(?:\w+),\s*
|
||||
"(?<name>\w+)"\s*,
|
||||
.*?\)\s*;
|
||||
| (?<doc>(?>^\s*/\*.*?\*/\s+))
|
||||
rb_file_(?<type>const)\(\s*
|
||||
"(?<name>\w+)"\s*,
|
||||
.*?\)\s*;
|
||||
| (?<doc>(?>^\s*/\*.*?\*/\s+))
|
||||
rb_curses_define_(?<type>const)\(\s*
|
||||
(?<name>\w+)
|
||||
\s*\)\s*;
|
||||
| Document-(?:const|global|variable):\s
|
||||
((?:\w+::)*\w+)
|
||||
\s*?\n((?>.*?\*/))
|
||||
(?<name>(?:\w+::)*\w+)
|
||||
\s*?\n(?<doc>(?>.*?\*/))
|
||||
}mxi) do
|
||||
case
|
||||
when $1 then table[[$2, $3]] = $1
|
||||
when $4 then table[$4] = "/*\n" + $5
|
||||
name, doc, type = $~.values_at(:name, :doc, :type)
|
||||
if type
|
||||
table[[type, name]] = doc
|
||||
else
|
||||
table[name] = "/*\n" + doc
|
||||
end
|
||||
end
|
||||
table
|
||||
|
|
|
@ -583,8 +583,6 @@ void Init_curses(){
|
|||
mCurses = rb_define_module("Curses");
|
||||
|
||||
/*
|
||||
* Document-const: Curses::COLOR_BLACK
|
||||
*
|
||||
* Value of the color black
|
||||
*/
|
||||
rb_curses_define_const(COLOR_BLACK);
|
||||
|
@ -609,8 +607,7 @@ void Init_curses(){
|
|||
def test_do_constants_file
|
||||
content = <<-EOF
|
||||
void Init_File(void) {
|
||||
/* Document-const: LOCK_SH
|
||||
*
|
||||
/*
|
||||
* Shared lock
|
||||
*/
|
||||
rb_file_const("LOCK_SH", INT2FIX(LOCK_SH));
|
||||
|
|
Загрузка…
Ссылка в новой задаче