summaryrefslogtreecommitdiff
path: root/tool/strip-rdoc.rb
diff options
context:
space:
mode:
Diffstat (limited to 'tool/strip-rdoc.rb')
-rwxr-xr-xtool/strip-rdoc.rb30
1 files changed, 9 insertions, 21 deletions
diff --git a/tool/strip-rdoc.rb b/tool/strip-rdoc.rb
index 0ac9c39323..d8e311cdbf 100755
--- a/tool/strip-rdoc.rb
+++ b/tool/strip-rdoc.rb
@@ -1,26 +1,14 @@
#!ruby
+# frozen_string_literal: true
# Filter for preventing Doxygen from processing RDoc comments.
# Used by the Doxygen template.
-ARGF.binmode
-source = ARGF.read
-source = source.gsub(%r{/\*([!*])((?!\*/).+?)\*/}m) do |comment|
- marker, comment = $1, $2
- next "/**#{comment}*/" unless /^\s*\*\s?\-\-\s*$/ =~ comment
- doxybody = nil
- comment.each_line do |line|
- if doxybody
- if /^\s*\*\s?\+\+\s*$/ =~ line
- break
- end
- doxybody << line
- else
- if /^\s*\*\s?--\s*$/ =~ line
- doxybody = "\n"
- end
- end
- end
- "/*#{marker}#{doxybody}*/"
-end
-print source
+print ARGF.binmode.read.tap {|src|
+ src.gsub!(%r|(/\*[!*])(?:(?!\*/).)+?^\s*\*\s?\-\-\s*$(.+?\*/)|m) {
+ marker = $1
+ comment = $2
+ comment.sub!(%r|^\s*\*\s?\+\+\s*$.+?(\s*\*/)\z|m, '\\1')
+ marker + comment
+ }
+}