]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
scripts/kernel-doc: Escape all literal braces in regexes
authorBen Hutchings <ben@decadent.org.uk>
Sun, 5 Aug 2018 16:41:09 +0000 (17:41 +0100)
committerJonathan Corbet <corbet@lwn.net>
Mon, 6 Aug 2018 19:36:20 +0000 (13:36 -0600)
Commit 701b3a3c0ac4 ("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.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
scripts/kernel-doc

index 31a34ced55a34c1e1ca3f8d8d2112d15a94c2716..8f0f508a78e9be78aa57a57de5a9e58e18496f0b 100755 (executable)
@@ -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 .= " "
             }