On 12/20/24 11:14 AM, Randy Dunlap wrote: > Hi Vegard, > > On 12/19/24 11:10 PM, Vegard Nossum wrote: >> >> On 20/12/2024 06:02, Randy Dunlap wrote: >>> On 12/19/24 10:37 AM, John Ousterhout wrote: >>>> kernel-doc gets confused by code like the following: >>>> >>>> /** >>>> * define HOMA_MIN_DEFAULT_PORT - The 16-bit port space is divided into >>>> * two nonoverlapping regions. Ports 1-32767 are reserved exclusively >>>> * for well-defined server ports. The remaining ports are used for client >>>> * ports; these are allocated automatically by Homa. Port 0 is reserved. >>>> */ >>>> #define HOMA_MIN_DEFAULT_PORT 0x8000 >>>> >>>> It seems to use the last "-" on the line (the one in "16-bit") rather >>>> than the first one, so it produces the following false error message: >>>> >>>> homa.h:50: warning: expecting prototype for HOMA_MIN_DEFAULT_PORT - >>>> The 16(). Prototype was for HOMA_MIN_DEFAULT_PORT() instead >>>> >>>> There are similar problems if there is a ":" later on the line. >>> >>> >>> @Vegard, can you look at this, please? >>> I have already looked but didn't arrive at a solution. >>> >>> >>> It appears to be these lines in process_name() that are confusing the function name >>> and following description: >>> >>> # Look for foo() or static void foo() - description; or misspelt >>> # identifier >>> elsif (/^$decl_start$fn_type?(\w+)\s*$parenthesis?\s*$decl_end?$/ || >>> /^$decl_start$fn_type?(\w+.*)$parenthesis?\s*$decl_end$/) { >>> $identifier = $1; >>> >>> Thanks. >> >> Hi, >> >> Is it just a matter of making that capture group less greedy? > > Yes, should be. > >> diff --git a/scripts/kernel-doc b/scripts/kernel-doc >> index f66070176ba31..ba9bc8760ff82 100755 >> --- a/scripts/kernel-doc >> +++ b/scripts/kernel-doc >> @@ -2085,7 +2085,7 @@ sub process_name($$) { >> # Look for foo() or static void foo() - description; or misspelt >> # identifier >> elsif (/^$decl_start$fn_type?(\w+)\s*$parenthesis?\s*$decl_end?$/ || >> - /^$decl_start$fn_type?(\w+.*)$parenthesis?\s*$decl_end$/) { >> + /^$decl_start$fn_type?(\w+.*?)$parenthesis?\s*$decl_end$/) { >> $identifier = $1; >> $decl_type = 'function'; >> $identifier =~ s/^define\s+//; >> >> We could also use [^-:]* instead of .* I guess. > > Yes, either (both) of those works. > I slightly prefer the alternative since it is stronger in some way (IMO). > > Thanks! Reviewed-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> Tested-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> -- ~Randy