scripts: get_abi.pl: Better handle multiple What parameters
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Sat, 18 Sep 2021 09:52:11 +0000 (11:52 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 21 Sep 2021 16:32:53 +0000 (18:32 +0200)
Using a comma here is problematic, as some What: expressions
may already contain a comma. So, use \xac character instead.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: https://lore.kernel.org/r/e83e7ffaf3429f8dfca00d1d01653ecfa36f6119.1631957565.git.mchehab+huawei@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
scripts/get_abi.pl

index d7aa820..cfc107d 100755 (executable)
@@ -129,12 +129,12 @@ sub parse_abi {
                                push @{$symbols{$content}->{file}}, " $file:" . ($ln - 1);
 
                                if ($tag =~ m/what/) {
-                                       $what .= "" . $content;
+                                       $what .= "\xac" . $content;
                                } else {
                                        if ($what) {
                                                parse_error($file, $ln, "What '$what' doesn't have a description", "") if (!$data{$what}->{description});
 
-                                               foreach my $w(split //, $what) {
+                                               foreach my $w(split /\xac/, $what) {
                                                        $symbols{$w}->{xref} = $what;
                                                };
                                        }
@@ -239,7 +239,7 @@ sub parse_abi {
        if ($what) {
                parse_error($file, $ln, "What '$what' doesn't have a description", "") if (!$data{$what}->{description});
 
-               foreach my $w(split //,$what) {
+               foreach my $w(split /\xac/,$what) {
                        $symbols{$w}->{xref} = $what;
                };
        }
@@ -328,7 +328,7 @@ sub output_rest {
 
                        printf ".. _%s:\n\n", $data{$what}->{label};
 
-                       my @names = split //,$w;
+                       my @names = split /\xac/,$w;
                        my $len = 0;
 
                        foreach my $name (@names) {