OSDN Git Service

kernel-doc: better handle '::' sequences
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 25 Mar 2021 18:14:25 +0000 (19:14 +0100)
committerJonathan Corbet <corbet@lwn.net>
Thu, 25 Mar 2021 18:50:27 +0000 (12:50 -0600)
Right now, if one of the following headers end with a '::', the
kernel-doc script will do the wrong thing:

description|context|returns?|notes?|examples?

The real issue is with examples, as people could try to write
something like:

example::

/* Some C code */

and this won't be properly evaluated. So, improve the regex
to not catch '\w+::' regex for the above identifiers.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: https://lore.kernel.org/r/2cf44cf1fa42588632735d4fbc8e84304bdc235f.1616696051.git.mchehab+huawei@kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
scripts/kernel-doc

index cb92d0e..0ecd714 100755 (executable)
@@ -392,7 +392,7 @@ my $doc_com_body = '\s*\* ?';
 my $doc_decl = $doc_com . '(\w+)';
 # @params and a strictly limited set of supported section names
 my $doc_sect = $doc_com .
-    '\s*(\@[.\w]+|\@\.\.\.|description|context|returns?|notes?|examples?)\s*:(.*)';
+    '\s*(\@[.\w]+|\@\.\.\.|description|context|returns?|notes?|examples?)\s*:([^:]*)$';
 my $doc_content = $doc_com_body . '(.*)';
 my $doc_block = $doc_com . 'DOC:\s*(.*)?';
 my $doc_inline_start = '^\s*/\*\*\s*$';