mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-26 02:25:00 -05:00
scripts: kernel-doc: fix typedef parsing
The include/linux/genalloc.h file defined this typedef: typedef unsigned long (*genpool_algo_t)(unsigned long *map,unsigned long size,unsigned long start,unsigned int nr,void *data, struct gen_pool *pool, unsigned long start_addr); Because it has a type composite of two words (unsigned long), the parser gets the typedef name wrong: .. c:macro:: long **Typedef**: Allocation callback function type definition Fix the regex in order to accept composite types when defining a typedef for a function pointer. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Link: https://lore.kernel.org/r/328e8018041cc44f7a1684e57f8d111230761c4f.1603792384.git.mchehab+huawei@kernel.org Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
parent
d94df02c47
commit
6b80975c63
1 changed files with 3 additions and 2 deletions
|
@ -1434,13 +1434,14 @@ sub dump_typedef($$) {
|
||||||
$x =~ s@/\*.*?\*/@@gos; # strip comments.
|
$x =~ s@/\*.*?\*/@@gos; # strip comments.
|
||||||
|
|
||||||
# Parse function prototypes
|
# Parse function prototypes
|
||||||
if ($x =~ /typedef\s+(\w+)\s*\(\*\s*(\w\S+)\s*\)\s*\((.*)\);/ ||
|
if ($x =~ /typedef((?:\s+[\w\*]+){1,8})\s*\(\*?\s*(\w\S+)\s*\)\s*\((.*)\);/ ||
|
||||||
$x =~ /typedef\s+(\w+)\s*(\w\S+)\s*\s*\((.*)\);/) {
|
$x =~ /typedef((?:\s+[\w\*]+\s+){1,8})\s*\*?(\w\S+)\s*\s*\((.*)\);/) {
|
||||||
|
|
||||||
# Function typedefs
|
# Function typedefs
|
||||||
$return_type = $1;
|
$return_type = $1;
|
||||||
$declaration_name = $2;
|
$declaration_name = $2;
|
||||||
my $args = $3;
|
my $args = $3;
|
||||||
|
$return_type =~ s/^\s+//;
|
||||||
|
|
||||||
create_parameterlist($args, ',', $file, $declaration_name);
|
create_parameterlist($args, ',', $file, $declaration_name);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue