From: Jani Nikula Date: Wed, 16 Nov 2016 15:26:16 +0000 (+0200) Subject: kernel-doc: add support for one line inline struct member doc comments X-Git-Tag: v4.14-rc1~1033^2~166 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0c9aa209579d41c9b8bf1fc39ce042bea2ec422d;p=platform%2Fkernel%2Flinux-rpi.git kernel-doc: add support for one line inline struct member doc comments kernel-doc supports documenting struct members "inline" since a4c6ebede2f9 ("scripts/kernel-doc Allow struct arguments documentation in struct body"). This requires the inline kernel-doc comments to have the opening and closing comment markers (/** and */ respectively) on lines of their own, even for short comments. For example: /** * struct foo - struct documentation */ struct foo { /** * @bar: member documentation */ int bar; }; Add support for one line inline comments: /** * struct foo - struct documentation */ struct foo { /** @bar: member documentation */ int bar; }; Note that mixing of the two in one doc comment is not allowed; either both comment markers must be on lines of their own, or both must be on the one line. This limitation keeps both the comments more uniform, and kernel-doc less complicated. Cc: Daniel Vetter Signed-off-by: Jani Nikula Signed-off-by: Jonathan Corbet --- diff --git a/scripts/kernel-doc b/scripts/kernel-doc index e10378f..030fc63 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -421,6 +421,7 @@ my $doc_block = $doc_com . 'DOC:\s*(.*)?'; my $doc_inline_start = '^\s*/\*\*\s*$'; my $doc_inline_sect = '\s*\*\s*(@[\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*;'; my %parameterdescs; @@ -3024,7 +3025,16 @@ sub process_file($) { } } } elsif ($state == STATE_PROTO) { # scanning for function '{' (end of prototype) - if (/$doc_inline_start/) { + 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') {