From 6fe79d1edea4861d7453915e596cc39a83ddc683 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Thu, 7 Jul 2016 06:27:54 -0300 Subject: doc-rst: parse-headers: improve delimiters to detect symbols As we had to escape the symbols for the ReST markup to not do the wrong thing, the logic to discover start/end of strings are not trivial. Improve the end delimiter detection, in order to highlight more occurrences of the strings. Signed-off-by: Mauro Carvalho Chehab --- Documentation/sphinx/parse-headers.pl | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/Documentation/sphinx/parse-headers.pl b/Documentation/sphinx/parse-headers.pl index 287f6459e13a..ec9537ef586f 100755 --- a/Documentation/sphinx/parse-headers.pl +++ b/Documentation/sphinx/parse-headers.pl @@ -200,78 +200,79 @@ $data =~ s,([\_\`\*\<\>\&\\\\:\/]),\\$1,g; # Add references # -my $separators = "[\n \t\,\)\=\:\{\}\;]"; +my $start_delim = "[ \n\t\(\=\*\@]"; +my $end_delim = "(\\s|,|\\\\=|\\\\:|\\;|\\\)|\\}|\\{)"; foreach my $r (keys %ioctls) { my $n = $ioctls{$r}; - my $s = ":ref:`$r <$n>`"; + my $s = "\\ :ref:`$r <$n>`\\ "; $r =~ s,([\_\`\*\<\>\&\\\\:\/]),\\\\$1,g; print "$r -> $s\n" if ($debug); - $data =~ s/([\s])($r)($separators)/$1$s$3/g; + $data =~ s/($start_delim)($r)$end_delim/$1$s$3/g; } foreach my $r (keys %defines) { my $n = $defines{$r}; - my $s = ":ref:`$r <$n>`"; + my $s = "\\ :ref:`$r <$n>`\\ "; $r =~ s,([\_\`\*\<\>\&\\\\:\/]),\\\\$1,g; print "$r -> $s\n" if ($debug); - $data =~ s/([\s])($r)($separators)/$1$s$3/g; + $data =~ s/($start_delim)($r)$end_delim/$1$s$3/g; } foreach my $r (keys %enum_symbols) { my $n = $enum_symbols{$r}; - my $s = ":ref:`$r <$n>`"; + my $s = "\\ :ref:`$r <$n>`\\ "; $r =~ s,([\_\`\*\<\>\&\\\\:\/]),\\\\$1,g; print "$r -> $s\n" if ($debug); - $data =~ s/([\s])($r)($separators)/$1$s$3/g; + $data =~ s/($start_delim)($r)$end_delim/$1$s$3/g; } foreach my $r (keys %enums) { my $n = $enums{$r}; - my $s = ":ref:`enum $r <$n>`"; + my $s = "\\ :ref:`enum $r <$n>`\\ "; $r =~ s,([\_\`\*\<\>\&\\\\:\/]),\\\\$1,g; print "$r -> $s\n" if ($debug); - $data =~ s/enum\s+($r)($separators)/$s$2/g; + $data =~ s/enum\s+($r)$end_delim/$s$2/g; } foreach my $r (keys %structs) { my $n = $structs{$r}; - my $s = ":ref:`struct $r <$n>`"; + my $s = "\\ :ref:`struct $r <$n>`\\ "; $r =~ s,([\_\`\*\<\>\&\\\\:\/]),\\\\$1,g; print "$r -> $s\n" if ($debug); - $data =~ s/struct\s+($r)($separators)/$s$2/g; + $data =~ s/struct\s+($r)$end_delim/$s$2/g; } foreach my $r (keys %typedefs) { my $n = $typedefs{$r}; - my $s = ":ref:`$r <$n>`"; + my $s = "\\ :ref:`$r <$n>`\\ "; $r =~ s,([\_\`\*\<\>\&\\\\:\/]),\\\\$1,g; print "$r -> $s\n" if ($debug); - $data =~ s/([\s\(\,\=])($r)($separators)/$1$s$3/g; + $data =~ s/($start_delim)($r)$end_delim/$1$s$3/g; } # -- cgit v1.2.3