Browse Source

scripts/kernel-doc: Escape all literal braces in regexes

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>
Ben Hutchings 7 năm trước cách đây
mục cha
commit
673bb2dfc3
1 tập tin đã thay đổi với 10 bổ sung10 xóa
  1. 10 10
      scripts/kernel-doc

+ 10 - 10
scripts/kernel-doc

@@ -1062,7 +1062,7 @@ sub dump_struct($$) {
     my $x = shift;
     my $x = shift;
     my $file = shift;
     my $file = shift;
 
 
-    if ($x =~ /(struct|union)\s+(\w+)\s*{(.*)}/) {
+    if ($x =~ /(struct|union)\s+(\w+)\s*\{(.*)\}/) {
 	my $decl_type = $1;
 	my $decl_type = $1;
 	$declaration_name = $2;
 	$declaration_name = $2;
 	my $members = $3;
 	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
 	# Ignore other nested elements, like enums
-	$members =~ s/(\{[^\{\}]*})//g;
+	$members =~ s/(\{[^\{\}]*\})//g;
 
 
 	create_parameterlist($members, ';', $file, $declaration_name);
 	create_parameterlist($members, ';', $file, $declaration_name);
 	check_sections($file, $declaration_name, $decl_type, $sectcheck, $struct_actual);
 	check_sections($file, $declaration_name, $decl_type, $sectcheck, $struct_actual);
 
 
 	# Adjust declaration for better display
 	# 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
 	# 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 @def_args = split /\n/, $declaration;
 	my $level = 1;
 	my $level = 1;
@@ -1171,12 +1171,12 @@ sub dump_struct($$) {
 		$clause =~ s/\s+$//;
 		$clause =~ s/\s+$//;
 		$clause =~ s/\s+/ /;
 		$clause =~ s/\s+/ /;
 		next if (!$clause);
 		next if (!$clause);
-		$level-- if ($clause =~ m/(})/ && $level > 1);
+		$level-- if ($clause =~ m/(\})/ && $level > 1);
 		if (!($clause =~ m/^\s*#/)) {
 		if (!($clause =~ m/^\s*#/)) {
 			$declaration .= "\t" x $level;
 			$declaration .= "\t" x $level;
 		}
 		}
 		$declaration .= "\t" . $clause . "\n";
 		$declaration .= "\t" . $clause . "\n";
-		$level++ if ($clause =~ m/(\{)/ && !($clause =~m/}/));
+		$level++ if ($clause =~ m/(\{)/ && !($clause =~m/\}/));
 	}
 	}
 	output_declaration($declaration_name,
 	output_declaration($declaration_name,
 			   'struct',
 			   'struct',
@@ -1244,7 +1244,7 @@ sub dump_enum($$) {
     # strip #define macros inside enums
     # strip #define macros inside enums
     $x =~ s@#\s*((define|ifdef)\s+|endif)[^;]*;@@gos;
     $x =~ s@#\s*((define|ifdef)\s+|endif)[^;]*;@@gos;
 
 
-    if ($x =~ /enum\s+(\w+)\s*{(.*)}/) {
+    if ($x =~ /enum\s+(\w+)\s*\{(.*)\}/) {
 	$declaration_name = $1;
 	$declaration_name = $1;
 	my $members = $2;
 	my $members = $2;
 	my %_members;
 	my %_members;
@@ -1785,7 +1785,7 @@ sub process_proto_type($$) {
     }
     }
 
 
     while (1) {
     while (1) {
-	if ( $x =~ /([^{};]*)([{};])(.*)/ ) {
+	if ( $x =~ /([^\{\};]*)([\{\};])(.*)/ ) {
             if( length $prototype ) {
             if( length $prototype ) {
                 $prototype .= " "
                 $prototype .= " "
             }
             }