From 4643b08a2646cb5af3cff5ec58e5de07adef8141 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Mon, 11 Oct 2021 17:01:52 -0400 Subject: [PATCH] fix: comments in C files use the global markup option Previously, Parser::C comments all defaulted to "rdoc" format, even when the user had set a different default with the `--markup=` option. --- lib/rdoc/parser/c.rb | 6 +++++- test/rdoc/test_rdoc_parser_c.rb | 17 +++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/rdoc/parser/c.rb b/lib/rdoc/parser/c.rb index ee24a271cf..111f6e2091 100644 --- a/lib/rdoc/parser/c.rb +++ b/lib/rdoc/parser/c.rb @@ -173,6 +173,8 @@ def initialize top_level, file_name, content, options, stats @classes = load_variable_map :c_class_variables @singleton_classes = load_variable_map :c_singleton_class_variables + @markup = @options.markup + # class_variable => { function => [method, ...] } @methods = Hash.new { |h, f| h[f] = Hash.new { |i, m| i[m] = [] } } @@ -1223,6 +1225,8 @@ def scan end def new_comment text = nil, location = nil, language = nil - RDoc::Comment.new(text, location, language) + RDoc::Comment.new(text, location, language).tap do |comment| + comment.format = @markup + end end end diff --git a/test/rdoc/test_rdoc_parser_c.rb b/test/rdoc/test_rdoc_parser_c.rb index 41001be22c..93d19dd26f 100644 --- a/test/rdoc/test_rdoc_parser_c.rb +++ b/test/rdoc/test_rdoc_parser_c.rb @@ -1946,6 +1946,23 @@ def test_markup_format_default assert_equal("rdoc", klass.attributes.find {|a| a.name == "default_format"}.comment.format) end + def test_markup_format_override + content = <<-EOF +void Init_Blah(void) { + cBlah = rb_define_class("Blah", rb_cObject); + + /* + * This should be interpreted in the default format. + */ + rb_attr(cBlah, rb_intern("default_format"), 1, 1, Qfalse); +} + EOF + + @options.markup = "markdown" + klass = util_get_class content, 'cBlah' + assert_equal("markdown", klass.attributes.find {|a| a.name == "default_format"}.comment.format) + end + def util_get_class content, name = nil @parser = util_parser content @parser.scan