On 1/5/21 9:13 pm, Matthew Wilcox wrote: > On Thu, Apr 29, 2021 at 12:07:29PM +0530, Aditya Srivastava wrote: >> + my $name = qr{[a-zA-Z0-9_~:]+}; >> + my $prototype_end1 = qr{[^\(]*}; >> + my $prototype_end2 = qr{[^\{]*}; >> + my $prototype_end = qr{\(($prototype_end1|$prototype_end2)\)}; > > Would this be better written as: > > my $prototype_end = qr{\([^\(\{]*\)} > Hi Matthew I have actually tried this earlier, but it does not work as expected, probably because of greedy matching. I have produced the list of warning differences before and after over the files, when using this regex: https://github.com/AdityaSrivast/kernel-tasks/blob/master/random/kernel-doc/diff_on_alt_protend > And now that I look at the whole thing, doesn't this fail to parse > a function declared as: > > int f(void (*g)(long)); > > (that is, f takes a single argument, which is a pointer to a function > which takes a long argument and returns void) > I think this will match against: $prototype =~ m/^($type1)\s+($name)\s*$prototype_end/ Thanks Aditya