scripts/kernel-doc: Escape all literal braces in regexes
PATCH v2 1/1 scripts/kernel-doc: Escape all literal braces in regexes
Commit 720ac2ef479d ("PATCH scripts/kernel-doc") fixed the two instances of literal braces that Perl 5.28 warns about, but there are still more than it doesn't warn about.
Escape all left braces that are treated as literal characters. Also escape literal right braces, for consistency and to avoid confusing bracket-matching in text editors.
---
v2: Rebase on top of commit 720ac2ef479d; reword accordingly
scripts/kernel-doc | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-)
scripts/kernel-doc +10 -10
@@ -1062,7 +1062,7 @@ sub dump_struct($$) { my $x = shift; my $file = shift; - if ($x =~ /(struct|union)\s+(\w+)\s*{(.*)}/) { + if ($x =~ /(struct|union)\s+(\w+)\s*\{(.*)\}/) { my $decl_type = $1; $declaration_name = $2; my $members = $3;
@@ -1148,20 +1148,20 @@ sub dump_struct($$) { } } } - $members =~ s/(struct|union)([^\{\};]+)\{([^\{\}]*)}([^\{\}\;]*)\;/$newmember/; + $members =~ s/(struct|union)([^\{\};]+)\{([^\{\}]*)\}([^\{\}\;]*)\;/$newmember/; } # Ignore other nested elements, like enums - $members =~ s/(\{[^\{\}]*})//g; + $members =~ s/(\{[^\{\}]*\})//g; create_parameterlist($members, ';', $file, $declaration_name); check_sections($file, $declaration_name, $decl_type, $sectcheck, $struct_actual); # Adjust declaration for better display - $declaration =~ s/([{;])/$1\n/g; - $declaration =~ s/}\s+;/};/g; + $declaration =~ s/([\{;])/$1\n/g; + $declaration =~ s/\}\s+;/};/g; # Better handle inlined enums - do {} while ($declaration =~ s/(enum\s+{[^}]+),([^\n])/$1,\n$2/); + do {} while ($declaration =~ s/(enum\s+\{[^\}]+),([^\n])/$1,\n$2/); my @def_args = split /\n/, $declaration; my $level = 1;
@@ -1171,12 +1171,12 @@ sub dump_struct($$) { $clause =~ s/\s+$//; $clause =~ s/\s+/ /; next if (!$clause); - $level-- if ($clause =~ m/(})/ && $level > 1); + $level-- if ($clause =~ m/(\})/ && $level > 1); if (!($clause =~ m/^\s*#/)) { $declaration .= "\t" x $level; } $declaration .= "\t" . $clause . "\n"; - $level++ if ($clause =~ m/(\{)/ && !($clause =~m/}/)); + $level++ if ($clause =~ m/(\{)/ && !($clause =~m/\}/)); } output_declaration($declaration_name, 'struct',
@@ -1244,7 +1244,7 @@ sub dump_enum($$) { # strip #define macros inside enums $x =~ s@#\s*((define|ifdef)\s+|endif)[^;]*;@@gos; - if ($x =~ /enum\s+(\w+)\s*{(.*)}/) { + if ($x =~ /enum\s+(\w+)\s*\{(.*)\}/) { $declaration_name = $1; my $members = $2; my %_members;
@@ -1785,7 +1785,7 @@ sub process_proto_type($$) { } while (1) { - if ( $x =~ /([^{};]*)([{};])(.*)/ ) { + if ( $x =~ /([^\{\};]*)([\{\};])(.*)/ ) { if( length $prototype ) { $prototype .= " " }
Jonathan Corbet
maintainerQuoted 3 lines · On Sun, 5 Aug 2018 17:41:09 +0100 Ben Hutchings <[email protected]> wrote:
Commit
720ac2ef479d("PATCHscripts/kernel-doc") fixed the two instances of literal braces that Perl 5.28 warns about, but there are still more than it doesn't warn about.
So where can I find this commit of which you speak? I can't find it in mainline, -next, or -stable...
The patch looks good, I'd like to get it in this coming merge window if possible.
Thanks,
jon
--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Bug#905116: [PATCH v2] scripts/kernel-doc: Escape all literal braces in regexes
Quoted 7 lines · Jonathan Corbet
Quoted 3 lines · On Sun, 5 Aug 2018 17:41:09 +0100 Ben Hutchings <[email protected]> wrote:
Commit
720ac2ef479d("PATCHscripts/kernel-doc") fixed the two instances of literal braces that Perl 5.28 warns about, but there are still more than it doesn't warn about.
Quoted 5 lines
So where can I find this commit of which you speak? I can't find it in mainline, -next, or -stable...
The patch looks good, I'd like to get it in this coming merge window if possible.
Sorry, that was the wrong commit hash. I mean commit 701b3a3c0ac4.
Ben.
Signature · 2 lines
Ben Hutchings Larkinson's Law: All laws are basically false.
Jonathan Corbet
maintainerQuoted 9 lines · On Sun, 5 Aug 2018 17:41:09 +0100 Ben Hutchings <[email protected]> wrote:
Commit
720ac2ef479d("PATCHscripts/kernel-doc") fixed the two instances of literal braces that Perl 5.28 warns about, but there are still more than it doesn't warn about.Escape all left braces that are treated as literal characters. Also escape literal right braces, for consistency and to avoid confusing bracket-matching in text editors.
Signed-off-by Ben Hutchings <[email protected]>
Applied (with the commit hash corrected), thanks.
jon
--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html