The script should not generate cross-references inside
literal blocks.

Signed-off-by: Mauro Carvalho Chehab <mchehab+hua...@kernel.org>
---
 scripts/get_abi.pl | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/scripts/get_abi.pl b/scripts/get_abi.pl
index e5d1da492c1e..d7aa82094296 100755
--- a/scripts/get_abi.pl
+++ b/scripts/get_abi.pl
@@ -382,8 +382,27 @@ sub output_rest {
                                # Enrich text by creating cross-references
 
                                my $new_desc = "";
+                               my $init_indent = -1;
+                               my $literal_indent = -1;
+
                                open(my $fh, "+<", \$desc);
                                while (my $d = <$fh>) {
+                                       my $indent = $d =~ m/^(\s+)/;
+                                       my $spaces = length($indent);
+                                       $init_indent = $indent if ($init_indent 
< 0);
+                                       if ($literal_indent >= 0) {
+                                               if ($spaces > $literal_indent) {
+                                                       $new_desc .= $d;
+                                                       next;
+                                               } else {
+                                                       $literal_indent = -1;
+                                               }
+                                       } else {
+                                               if ($d =~ /()::$/ && !($d =~ 
/^\s*\.\./)) {
+                                                       $literal_indent = 
$spaces;
+                                               }
+                                       }
+
                                        $d =~ 
s,Documentation/(?!devicetree)(\S+)\.rst,:doc:`/$1`,g;
 
                                        my @matches = $d =~ 
m,Documentation/ABI/([\w\/\-]+),g;
-- 
2.30.2

Reply via email to