mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-03 10:10:33 +02: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…
	
		Reference in a new issue