diff options
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-multipath-tools-refresh-kernel-doc-from-kernel-sourc.patch')
-rw-r--r-- | meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-multipath-tools-refresh-kernel-doc-from-kernel-sourc.patch | 784 |
1 files changed, 0 insertions, 784 deletions
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-multipath-tools-refresh-kernel-doc-from-kernel-sourc.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-multipath-tools-refresh-kernel-doc-from-kernel-sourc.patch deleted file mode 100644 index 375215870..000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-multipath-tools-refresh-kernel-doc-from-kernel-sourc.patch +++ /dev/null @@ -1,784 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Xose Vazquez Perez <xose.vazquez@gmail.com> -Date: Sun, 13 May 2018 00:39:42 +0200 -Subject: [PATCH] multipath-tools: refresh kernel-doc from kernel sources - -Cc: Gris Ge <fge@redhat.com> -Cc: Christophe Varoqui <christophe.varoqui@opensvc.com> -Cc: device-mapper development <dm-devel@redhat.com> -Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com> -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - libdmmp/docs/kernel-doc | 671 ++++++++++++++++++++++++++---------------------- - 1 file changed, 368 insertions(+), 303 deletions(-) - -diff --git a/libdmmp/docs/kernel-doc b/libdmmp/docs/kernel-doc -index fee8952..0057d8e 100755 ---- a/libdmmp/docs/kernel-doc -+++ b/libdmmp/docs/kernel-doc -@@ -1,4 +1,5 @@ - #!/usr/bin/env perl -+# SPDX-License-Identifier: GPL-2.0 - - use warnings; - use strict; -@@ -328,13 +329,15 @@ my $lineprefix=""; - use constant { - STATE_NORMAL => 0, # normal code - STATE_NAME => 1, # looking for function name -- STATE_FIELD => 2, # scanning field start -- STATE_PROTO => 3, # scanning prototype -- STATE_DOCBLOCK => 4, # documentation block -- STATE_INLINE => 5, # gathering documentation outside main block -+ STATE_BODY_MAYBE => 2, # body - or maybe more description -+ STATE_BODY => 3, # the body of the comment -+ STATE_PROTO => 4, # scanning prototype -+ STATE_DOCBLOCK => 5, # documentation block -+ STATE_INLINE => 6, # gathering documentation outside main block - }; - my $state; - my $in_doc_sect; -+my $leading_space; - - # Inline documentation state - use constant { -@@ -363,7 +366,7 @@ my $doc_sect = $doc_com . - my $doc_content = $doc_com_body . '(.*)'; - my $doc_block = $doc_com . 'DOC:\s*(.*)?'; - my $doc_inline_start = '^\s*/\*\*\s*$'; --my $doc_inline_sect = '\s*\*\s*(@[\w\s]+):(.*)'; -+my $doc_inline_sect = '\s*\*\s*(@\s*[\w][\w\.]*\s*):(.*)'; - my $doc_inline_end = '^\s*\*/\s*$'; - my $doc_inline_oneline = '^\s*/\*\*\s*(@[\w\s]+):\s*(.*)\s*\*/\s*$'; - my $export_symbol = '^\s*EXPORT_SYMBOL(_GPL)?\s*\(\s*(\w+)\s*\)\s*;'; -@@ -553,10 +556,9 @@ sub output_highlight { - } - if ($line eq ""){ - if (! $output_preformatted) { -- print $lineprefix, local_unescape($blankline); -+ print $lineprefix, $blankline; - } - } else { -- $line =~ s/\\\\\\/\&/g; - if ($output_mode eq "man" && substr($line, 0, 1) eq ".") { - print "\\&$line"; - } else { -@@ -747,17 +749,73 @@ sub output_blockhead_rst(%) { - } - } - --sub output_highlight_rst { -- my $contents = join "\n",@_; -- my $line; -- -- # undo the evil effects of xml_escape() earlier -- $contents = xml_unescape($contents); -- -+# -+# Apply the RST highlights to a sub-block of text. -+# -+sub highlight_block($) { -+ # The dohighlight kludge requires the text be called $contents -+ my $contents = shift; - eval $dohighlight; - die $@ if $@; -+ return $contents; -+} - -- foreach $line (split "\n", $contents) { -+# -+# Regexes used only here. -+# -+my $sphinx_literal = '^[^.].*::$'; -+my $sphinx_cblock = '^\.\.\ +code-block::'; -+ -+sub output_highlight_rst { -+ my $input = join "\n",@_; -+ my $output = ""; -+ my $line; -+ my $in_literal = 0; -+ my $litprefix; -+ my $block = ""; -+ -+ foreach $line (split "\n",$input) { -+ # -+ # If we're in a literal block, see if we should drop out -+ # of it. Otherwise pass the line straight through unmunged. -+ # -+ if ($in_literal) { -+ if (! ($line =~ /^\s*$/)) { -+ # -+ # If this is the first non-blank line in a literal -+ # block we need to figure out what the proper indent is. -+ # -+ if ($litprefix eq "") { -+ $line =~ /^(\s*)/; -+ $litprefix = '^' . $1; -+ $output .= $line . "\n"; -+ } elsif (! ($line =~ /$litprefix/)) { -+ $in_literal = 0; -+ } else { -+ $output .= $line . "\n"; -+ } -+ } else { -+ $output .= $line . "\n"; -+ } -+ } -+ # -+ # Not in a literal block (or just dropped out) -+ # -+ if (! $in_literal) { -+ $block .= $line . "\n"; -+ if (($line =~ /$sphinx_literal/) || ($line =~ /$sphinx_cblock/)) { -+ $in_literal = 1; -+ $litprefix = ""; -+ $output .= highlight_block($block); -+ $block = "" -+ } -+ } -+ } -+ -+ if ($block) { -+ $output .= highlight_block($block); -+ } -+ foreach $line (split "\n", $output) { - print $lineprefix . $line . "\n"; - } - } -@@ -1062,7 +1120,7 @@ sub dump_struct($$) { - # Handle bitmaps - $arg =~ s/:\s*\d+\s*//g; - # Handle arrays -- $arg =~ s/\[\S+\]//g; -+ $arg =~ s/\[.*\]//g; - # The type may have multiple words, - # and multiple IDs can be defined, like: - # const struct foo, *bar, foobar -@@ -1422,8 +1480,6 @@ sub push_parameter($$$$) { - } - } - -- $param = xml_escape($param); -- - # strip spaces from $param so that it is one continuous string - # on @parameterlist; - # this fixes a problem where check_sections() cannot find -@@ -1522,6 +1578,7 @@ sub dump_function($$) { - $prototype =~ s/__meminit +//; - $prototype =~ s/__must_check +//; - $prototype =~ s/__weak +//; -+ $prototype =~ s/__sched +//; - my $define = $prototype =~ s/^#\s*define\s+//; #ak added - $prototype =~ s/__attribute__\s*\(\( - (?: -@@ -1748,47 +1805,6 @@ sub process_proto_type($$) { - } - } - --# xml_escape: replace <, >, and & in the text stream; --# --# however, formatting controls that are generated internally/locally in the --# kernel-doc script are not escaped here; instead, they begin life like --# $blankline_html (4 of '\' followed by a mnemonic + ':'), then these strings --# are converted to their mnemonic-expected output, without the 4 * '\' & ':', --# just before actual output; (this is done by local_unescape()) --sub xml_escape($) { -- my $text = shift; -- if ($output_mode eq "man") { -- return $text; -- } -- $text =~ s/\&/\\\\\\amp;/g; -- $text =~ s/\</\\\\\\lt;/g; -- $text =~ s/\>/\\\\\\gt;/g; -- return $text; --} -- --# xml_unescape: reverse the effects of xml_escape --sub xml_unescape($) { -- my $text = shift; -- if ($output_mode eq "man") { -- return $text; -- } -- $text =~ s/\\\\\\amp;/\&/g; -- $text =~ s/\\\\\\lt;/</g; -- $text =~ s/\\\\\\gt;/>/g; -- return $text; --} -- --# convert local escape strings to html --# local escape strings look like: '\\\\menmonic:' (that's 4 backslashes) --sub local_unescape($) { -- my $text = shift; -- if ($output_mode eq "man") { -- return $text; -- } -- $text =~ s/\\\\\\\\lt:/</g; -- $text =~ s/\\\\\\\\gt:/>/g; -- return $text; --} - - sub map_filename($) { - my $file; -@@ -1826,15 +1842,291 @@ sub process_export_file($) { - close(IN); - } - --sub process_file($) { -- my $file; -+# -+# Parsers for the various processing states. -+# -+# STATE_NORMAL: looking for the /** to begin everything. -+# -+sub process_normal() { -+ if (/$doc_start/o) { -+ $state = STATE_NAME; # next line is always the function name -+ $in_doc_sect = 0; -+ $declaration_start_line = $. + 1; -+ } -+} -+ -+# -+# STATE_NAME: Looking for the "name - description" line -+# -+sub process_name($$) { -+ my $file = shift; - my $identifier; -- my $func; - my $descr; -- my $in_purpose = 0; -+ -+ if (/$doc_block/o) { -+ $state = STATE_DOCBLOCK; -+ $contents = ""; -+ $new_start_line = $. + 1; -+ -+ if ( $1 eq "" ) { -+ $section = $section_intro; -+ } else { -+ $section = $1; -+ } -+ } -+ elsif (/$doc_decl/o) { -+ $identifier = $1; -+ if (/\s*([\w\s]+?)(\(\))?\s*-/) { -+ $identifier = $1; -+ } -+ -+ $state = STATE_BODY; -+ # if there's no @param blocks need to set up default section -+ # here -+ $contents = ""; -+ $section = $section_default; -+ $new_start_line = $. + 1; -+ if (/-(.*)/) { -+ # strip leading/trailing/multiple spaces -+ $descr= $1; -+ $descr =~ s/^\s*//; -+ $descr =~ s/\s*$//; -+ $descr =~ s/\s+/ /g; -+ $declaration_purpose = $descr; -+ $state = STATE_BODY_MAYBE; -+ } else { -+ $declaration_purpose = ""; -+ } -+ -+ if (($declaration_purpose eq "") && $verbose) { -+ print STDERR "${file}:$.: warning: missing initial short description on line:\n"; -+ print STDERR $_; -+ ++$warnings; -+ } -+ -+ if ($identifier =~ m/^struct/) { -+ $decl_type = 'struct'; -+ } elsif ($identifier =~ m/^union/) { -+ $decl_type = 'union'; -+ } elsif ($identifier =~ m/^enum/) { -+ $decl_type = 'enum'; -+ } elsif ($identifier =~ m/^typedef/) { -+ $decl_type = 'typedef'; -+ } else { -+ $decl_type = 'function'; -+ } -+ -+ if ($verbose) { -+ print STDERR "${file}:$.: info: Scanning doc for $identifier\n"; -+ } -+ } else { -+ print STDERR "${file}:$.: warning: Cannot understand $_ on line $.", -+ " - I thought it was a doc line\n"; -+ ++$warnings; -+ $state = STATE_NORMAL; -+ } -+} -+ -+ -+# -+# STATE_BODY and STATE_BODY_MAYBE: the bulk of a kerneldoc comment. -+# -+sub process_body($$) { -+ my $file = shift; -+ -+ if (/$doc_sect/i) { # case insensitive for supported section names -+ $newsection = $1; -+ $newcontents = $2; -+ -+ # map the supported section names to the canonical names -+ if ($newsection =~ m/^description$/i) { -+ $newsection = $section_default; -+ } elsif ($newsection =~ m/^context$/i) { -+ $newsection = $section_context; -+ } elsif ($newsection =~ m/^returns?$/i) { -+ $newsection = $section_return; -+ } elsif ($newsection =~ m/^\@return$/) { -+ # special: @return is a section, not a param description -+ $newsection = $section_return; -+ } -+ -+ if (($contents ne "") && ($contents ne "\n")) { -+ if (!$in_doc_sect && $verbose) { -+ print STDERR "${file}:$.: warning: contents before sections\n"; -+ ++$warnings; -+ } -+ dump_section($file, $section, $contents); -+ $section = $section_default; -+ } -+ -+ $in_doc_sect = 1; -+ $state = STATE_BODY; -+ $contents = $newcontents; -+ $new_start_line = $.; -+ while (substr($contents, 0, 1) eq " ") { -+ $contents = substr($contents, 1); -+ } -+ if ($contents ne "") { -+ $contents .= "\n"; -+ } -+ $section = $newsection; -+ $leading_space = undef; -+ } elsif (/$doc_end/) { -+ if (($contents ne "") && ($contents ne "\n")) { -+ dump_section($file, $section, $contents); -+ $section = $section_default; -+ $contents = ""; -+ } -+ # look for doc_com + <text> + doc_end: -+ if ($_ =~ m'\s*\*\s*[a-zA-Z_0-9:\.]+\*/') { -+ print STDERR "${file}:$.: warning: suspicious ending line: $_"; -+ ++$warnings; -+ } -+ -+ $prototype = ""; -+ $state = STATE_PROTO; -+ $brcount = 0; -+ } elsif (/$doc_content/) { -+ # miguel-style comment kludge, look for blank lines after -+ # @parameter line to signify start of description -+ if ($1 eq "") { -+ if ($section =~ m/^@/ || $section eq $section_context) { -+ dump_section($file, $section, $contents); -+ $section = $section_default; -+ $contents = ""; -+ $new_start_line = $.; -+ } else { -+ $contents .= "\n"; -+ } -+ $state = STATE_BODY; -+ } elsif ($state == STATE_BODY_MAYBE) { -+ # Continued declaration purpose -+ chomp($declaration_purpose); -+ $declaration_purpose .= " " . $1; -+ $declaration_purpose =~ s/\s+/ /g; -+ } else { -+ my $cont = $1; -+ if ($section =~ m/^@/ || $section eq $section_context) { -+ if (!defined $leading_space) { -+ if ($cont =~ m/^(\s+)/) { -+ $leading_space = $1; -+ } else { -+ $leading_space = ""; -+ } -+ } -+ $cont =~ s/^$leading_space//; -+ } -+ $contents .= $cont . "\n"; -+ } -+ } else { -+ # i dont know - bad line? ignore. -+ print STDERR "${file}:$.: warning: bad line: $_"; -+ ++$warnings; -+ } -+} -+ -+ -+# -+# STATE_PROTO: reading a function/whatever prototype. -+# -+sub process_proto($$) { -+ my $file = shift; -+ -+ if (/$doc_inline_oneline/) { -+ $section = $1; -+ $contents = $2; -+ if ($contents ne "") { -+ $contents .= "\n"; -+ dump_section($file, $section, $contents); -+ $section = $section_default; -+ $contents = ""; -+ } -+ } elsif (/$doc_inline_start/) { -+ $state = STATE_INLINE; -+ $inline_doc_state = STATE_INLINE_NAME; -+ } elsif ($decl_type eq 'function') { -+ process_proto_function($_, $file); -+ } else { -+ process_proto_type($_, $file); -+ } -+} -+ -+# -+# STATE_DOCBLOCK: within a DOC: block. -+# -+sub process_docblock($$) { -+ my $file = shift; -+ -+ if (/$doc_end/) { -+ dump_doc_section($file, $section, $contents); -+ $section = $section_default; -+ $contents = ""; -+ $function = ""; -+ %parameterdescs = (); -+ %parametertypes = (); -+ @parameterlist = (); -+ %sections = (); -+ @sectionlist = (); -+ $prototype = ""; -+ $state = STATE_NORMAL; -+ } elsif (/$doc_content/) { -+ if ( $1 eq "" ) { -+ $contents .= $blankline; -+ } else { -+ $contents .= $1 . "\n"; -+ } -+ } -+} -+ -+# -+# STATE_INLINE: docbook comments within a prototype. -+# -+sub process_inline($$) { -+ my $file = shift; -+ -+ # First line (state 1) needs to be a @parameter -+ if ($inline_doc_state == STATE_INLINE_NAME && /$doc_inline_sect/o) { -+ $section = $1; -+ $contents = $2; -+ $new_start_line = $.; -+ if ($contents ne "") { -+ while (substr($contents, 0, 1) eq " ") { -+ $contents = substr($contents, 1); -+ } -+ $contents .= "\n"; -+ } -+ $inline_doc_state = STATE_INLINE_TEXT; -+ # Documentation block end */ -+ } elsif (/$doc_inline_end/) { -+ if (($contents ne "") && ($contents ne "\n")) { -+ dump_section($file, $section, $contents); -+ $section = $section_default; -+ $contents = ""; -+ } -+ $state = STATE_PROTO; -+ $inline_doc_state = STATE_INLINE_NA; -+ # Regular text -+ } elsif (/$doc_content/) { -+ if ($inline_doc_state == STATE_INLINE_TEXT) { -+ $contents .= $1 . "\n"; -+ # nuke leading blank lines -+ if ($contents =~ /^\s*$/) { -+ $contents = ""; -+ } -+ } elsif ($inline_doc_state == STATE_INLINE_NAME) { -+ $inline_doc_state = STATE_INLINE_ERROR; -+ print STDERR "${file}:$.: warning: "; -+ print STDERR "Incorrect use of kernel-doc format: $_"; -+ ++$warnings; -+ } -+ } -+} -+ -+ -+sub process_file($) { -+ my $file; - my $initial_section_counter = $section_counter; - my ($orig_file) = @_; -- my $leading_space; - - $file = map_filename($orig_file); - -@@ -1853,250 +2145,23 @@ sub process_file($) { - } - # Replace tabs by spaces - while ($_ =~ s/\t+/' ' x (length($&) * 8 - length($`) % 8)/e) {}; -+ # Hand this line to the appropriate state handler - if ($state == STATE_NORMAL) { -- if (/$doc_start/o) { -- $state = STATE_NAME; # next line is always the function name -- $in_doc_sect = 0; -- $declaration_start_line = $. + 1; -- } -- } elsif ($state == STATE_NAME) {# this line is the function name (always) -- if (/$doc_block/o) { -- $state = STATE_DOCBLOCK; -- $contents = ""; -- $new_start_line = $. + 1; -- -- if ( $1 eq "" ) { -- $section = $section_intro; -- } else { -- $section = $1; -- } -- } -- elsif (/$doc_decl/o) { -- $identifier = $1; -- if (/\s*([\w\s]+?)\s*-/) { -- $identifier = $1; -- } -- -- $state = STATE_FIELD; -- # if there's no @param blocks need to set up default section -- # here -- $contents = ""; -- $section = $section_default; -- $new_start_line = $. + 1; -- if (/-(.*)/) { -- # strip leading/trailing/multiple spaces -- $descr= $1; -- $descr =~ s/^\s*//; -- $descr =~ s/\s*$//; -- $descr =~ s/\s+/ /g; -- $declaration_purpose = xml_escape($descr); -- $in_purpose = 1; -- } else { -- $declaration_purpose = ""; -- } -- -- if (($declaration_purpose eq "") && $verbose) { -- print STDERR "${file}:$.: warning: missing initial short description on line:\n"; -- print STDERR $_; -- ++$warnings; -- } -- -- if ($identifier =~ m/^struct/) { -- $decl_type = 'struct'; -- } elsif ($identifier =~ m/^union/) { -- $decl_type = 'union'; -- } elsif ($identifier =~ m/^enum/) { -- $decl_type = 'enum'; -- } elsif ($identifier =~ m/^typedef/) { -- $decl_type = 'typedef'; -- } else { -- $decl_type = 'function'; -- } -- -- if ($verbose) { -- print STDERR "${file}:$.: info: Scanning doc for $identifier\n"; -- } -- } else { -- print STDERR "${file}:$.: warning: Cannot understand $_ on line $.", -- " - I thought it was a doc line\n"; -- ++$warnings; -- $state = STATE_NORMAL; -- } -- } elsif ($state == STATE_FIELD) { # look for head: lines, and include content -- if (/$doc_sect/i) { # case insensitive for supported section names -- $newsection = $1; -- $newcontents = $2; -- -- # map the supported section names to the canonical names -- if ($newsection =~ m/^description$/i) { -- $newsection = $section_default; -- } elsif ($newsection =~ m/^context$/i) { -- $newsection = $section_context; -- } elsif ($newsection =~ m/^returns?$/i) { -- $newsection = $section_return; -- } elsif ($newsection =~ m/^\@return$/) { -- # special: @return is a section, not a param description -- $newsection = $section_return; -- } -- -- if (($contents ne "") && ($contents ne "\n")) { -- if (!$in_doc_sect && $verbose) { -- print STDERR "${file}:$.: warning: contents before sections\n"; -- ++$warnings; -- } -- dump_section($file, $section, xml_escape($contents)); -- $section = $section_default; -- } -- -- $in_doc_sect = 1; -- $in_purpose = 0; -- $contents = $newcontents; -- $new_start_line = $.; -- while (substr($contents, 0, 1) eq " ") { -- $contents = substr($contents, 1); -- } -- if ($contents ne "") { -- $contents .= "\n"; -- } -- $section = $newsection; -- $leading_space = undef; -- } elsif (/$doc_end/) { -- if (($contents ne "") && ($contents ne "\n")) { -- dump_section($file, $section, xml_escape($contents)); -- $section = $section_default; -- $contents = ""; -- } -- # look for doc_com + <text> + doc_end: -- if ($_ =~ m'\s*\*\s*[a-zA-Z_0-9:\.]+\*/') { -- print STDERR "${file}:$.: warning: suspicious ending line: $_"; -- ++$warnings; -- } -- -- $prototype = ""; -- $state = STATE_PROTO; -- $brcount = 0; --# print STDERR "end of doc comment, looking for prototype\n"; -- } elsif (/$doc_content/) { -- # miguel-style comment kludge, look for blank lines after -- # @parameter line to signify start of description -- if ($1 eq "") { -- if ($section =~ m/^@/ || $section eq $section_context) { -- dump_section($file, $section, xml_escape($contents)); -- $section = $section_default; -- $contents = ""; -- $new_start_line = $.; -- } else { -- $contents .= "\n"; -- } -- $in_purpose = 0; -- } elsif ($in_purpose == 1) { -- # Continued declaration purpose -- chomp($declaration_purpose); -- $declaration_purpose .= " " . xml_escape($1); -- $declaration_purpose =~ s/\s+/ /g; -- } else { -- my $cont = $1; -- if ($section =~ m/^@/ || $section eq $section_context) { -- if (!defined $leading_space) { -- if ($cont =~ m/^(\s+)/) { -- $leading_space = $1; -- } else { -- $leading_space = ""; -- } -- } -- -- $cont =~ s/^$leading_space//; -- } -- $contents .= $cont . "\n"; -- } -- } else { -- # i dont know - bad line? ignore. -- print STDERR "${file}:$.: warning: bad line: $_"; -- ++$warnings; -- } -+ process_normal(); -+ } elsif ($state == STATE_NAME) { -+ process_name($file, $_); -+ } elsif ($state == STATE_BODY || $state == STATE_BODY_MAYBE) { -+ process_body($file, $_); - } elsif ($state == STATE_INLINE) { # scanning for inline parameters -- # First line (state 1) needs to be a @parameter -- if ($inline_doc_state == STATE_INLINE_NAME && /$doc_inline_sect/o) { -- $section = $1; -- $contents = $2; -- $new_start_line = $.; -- if ($contents ne "") { -- while (substr($contents, 0, 1) eq " ") { -- $contents = substr($contents, 1); -- } -- $contents .= "\n"; -- } -- $inline_doc_state = STATE_INLINE_TEXT; -- # Documentation block end */ -- } elsif (/$doc_inline_end/) { -- if (($contents ne "") && ($contents ne "\n")) { -- dump_section($file, $section, xml_escape($contents)); -- $section = $section_default; -- $contents = ""; -- } -- $state = STATE_PROTO; -- $inline_doc_state = STATE_INLINE_NA; -- # Regular text -- } elsif (/$doc_content/) { -- if ($inline_doc_state == STATE_INLINE_TEXT) { -- $contents .= $1 . "\n"; -- # nuke leading blank lines -- if ($contents =~ /^\s*$/) { -- $contents = ""; -- } -- } elsif ($inline_doc_state == STATE_INLINE_NAME) { -- $inline_doc_state = STATE_INLINE_ERROR; -- print STDERR "${file}:$.: warning: "; -- print STDERR "Incorrect use of kernel-doc format: $_"; -- ++$warnings; -- } -- } -- } elsif ($state == STATE_PROTO) { # scanning for function '{' (end of prototype) -- if (/$doc_inline_oneline/) { -- $section = $1; -- $contents = $2; -- if ($contents ne "") { -- $contents .= "\n"; -- dump_section($file, $section, xml_escape($contents)); -- $section = $section_default; -- $contents = ""; -- } -- } elsif (/$doc_inline_start/) { -- $state = STATE_INLINE; -- $inline_doc_state = STATE_INLINE_NAME; -- } elsif ($decl_type eq 'function') { -- process_proto_function($_, $file); -- } else { -- process_proto_type($_, $file); -- } -+ process_inline($file, $_); -+ } elsif ($state == STATE_PROTO) { -+ process_proto($file, $_); - } elsif ($state == STATE_DOCBLOCK) { -- if (/$doc_end/) -- { -- dump_doc_section($file, $section, xml_escape($contents)); -- $section = $section_default; -- $contents = ""; -- $function = ""; -- %parameterdescs = (); -- %parametertypes = (); -- @parameterlist = (); -- %sections = (); -- @sectionlist = (); -- $prototype = ""; -- $state = STATE_NORMAL; -- } -- elsif (/$doc_content/) -- { -- if ( $1 eq "" ) -- { -- $contents .= $blankline; -- } -- else -- { -- $contents .= $1 . "\n"; -- } -- } -+ process_docblock($file, $_); - } - } -+ -+ # Make sure we got something interesting. - if ($initial_section_counter == $section_counter) { - if ($output_mode ne "none") { - print STDERR "${file}:1: warning: no structured comments found\n"; --- -2.7.4 - |