Commit e9bca891 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab Committed by Greg Kroah-Hartman

scripts: get_abi.pl: fix parsing on ReST mode

When the source ABI file is using ReST notation, the script
should handle whitespaces and lines with care, as otherwise
the file won't be properly recognized.

Address the bugs that are on such part of the script.
Acked-by: default avatarJonathan Corbet <corbet@lwn.net>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: https://lore.kernel.org/r/5c22c54fbd0cda797b691d52c568be6d0d1079d8.1604042072.git.mchehab+huawei@kernel.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 11ce90a4
......@@ -151,7 +151,8 @@ sub parse_abi {
$content = $2;
}
while ($space =~ s/\t+/' ' x (length($&) * 8 - length($`) % 8)/e) {}
$data{$what}->{$tag} .= $content;
$data{$what}->{$tag} .= "$content\n" if ($content);
} else {
$data{$what}->{$tag} = $content;
}
......@@ -166,31 +167,28 @@ sub parse_abi {
}
if ($tag eq "description") {
my $content = $_;
while ($content =~ s/\t+/' ' x (length($&) * 8 - length($`) % 8)/e) {}
if (!$data{$what}->{description}) {
s/^($space)//;
if (m/^(\s*)(.*)/) {
my $sp = $1;
while ($sp =~ s/\t+/' ' x (length($&) * 8 - length($`) % 8)/e) {}
my $content = "$sp$2";
$content =~ s/^($space)//;
$data{$what}->{$tag} .= "$content";
# Preserve initial spaces for the first line
if ($content =~ m/^(\s*)(.*)$/) {
$space = $1;
$content = $2;
}
$data{$what}->{$tag} .= "$content\n" if ($content);
} else {
my $content = $_;
if (m/^\s*\n/) {
$data{$what}->{$tag} .= $content;
next;
}
while ($content =~ s/\t+/' ' x (length($&) * 8 - length($`) % 8)/e) {}
$space = "" if (!($content =~ s/^($space)//));
# Compress spaces with tabs
$content =~ s<^ {8}> <\t>;
$content =~ s<^ {1,7}\t> <\t>;
$content =~ s< {1,7}\t> <\t>;
# # Compress spaces with tabs
# $content =~ s<^ {8}> <\t>;
# $content =~ s<^ {1,7}\t> <\t>;
# $content =~ s< {1,7}\t> <\t>;
$data{$what}->{$tag} .= $content;
}
next;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment