Commit 6fe79d1e authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

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: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 1ae64395
...@@ -200,78 +200,79 @@ $data =~ s,([\_\`\*\<\>\&\\\\:\/]),\\$1,g; ...@@ -200,78 +200,79 @@ $data =~ s,([\_\`\*\<\>\&\\\\:\/]),\\$1,g;
# Add references # Add references
# #
my $separators = "[\n \t\,\)\=\:\{\}\;]"; my $start_delim = "[ \n\t\(\=\*\@]";
my $end_delim = "(\\s|,|\\\\=|\\\\:|\\;|\\\)|\\}|\\{)";
foreach my $r (keys %ioctls) { foreach my $r (keys %ioctls) {
my $n = $ioctls{$r}; my $n = $ioctls{$r};
my $s = ":ref:`$r <$n>`"; my $s = "\\ :ref:`$r <$n>`\\ ";
$r =~ s,([\_\`\*\<\>\&\\\\:\/]),\\\\$1,g; $r =~ s,([\_\`\*\<\>\&\\\\:\/]),\\\\$1,g;
print "$r -> $s\n" if ($debug); 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) { foreach my $r (keys %defines) {
my $n = $defines{$r}; my $n = $defines{$r};
my $s = ":ref:`$r <$n>`"; my $s = "\\ :ref:`$r <$n>`\\ ";
$r =~ s,([\_\`\*\<\>\&\\\\:\/]),\\\\$1,g; $r =~ s,([\_\`\*\<\>\&\\\\:\/]),\\\\$1,g;
print "$r -> $s\n" if ($debug); 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) { foreach my $r (keys %enum_symbols) {
my $n = $enum_symbols{$r}; my $n = $enum_symbols{$r};
my $s = ":ref:`$r <$n>`"; my $s = "\\ :ref:`$r <$n>`\\ ";
$r =~ s,([\_\`\*\<\>\&\\\\:\/]),\\\\$1,g; $r =~ s,([\_\`\*\<\>\&\\\\:\/]),\\\\$1,g;
print "$r -> $s\n" if ($debug); 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) { foreach my $r (keys %enums) {
my $n = $enums{$r}; my $n = $enums{$r};
my $s = ":ref:`enum $r <$n>`"; my $s = "\\ :ref:`enum $r <$n>`\\ ";
$r =~ s,([\_\`\*\<\>\&\\\\:\/]),\\\\$1,g; $r =~ s,([\_\`\*\<\>\&\\\\:\/]),\\\\$1,g;
print "$r -> $s\n" if ($debug); 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) { foreach my $r (keys %structs) {
my $n = $structs{$r}; my $n = $structs{$r};
my $s = ":ref:`struct $r <$n>`"; my $s = "\\ :ref:`struct $r <$n>`\\ ";
$r =~ s,([\_\`\*\<\>\&\\\\:\/]),\\\\$1,g; $r =~ s,([\_\`\*\<\>\&\\\\:\/]),\\\\$1,g;
print "$r -> $s\n" if ($debug); 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) { foreach my $r (keys %typedefs) {
my $n = $typedefs{$r}; my $n = $typedefs{$r};
my $s = ":ref:`$r <$n>`"; my $s = "\\ :ref:`$r <$n>`\\ ";
$r =~ s,([\_\`\*\<\>\&\\\\:\/]),\\\\$1,g; $r =~ s,([\_\`\*\<\>\&\\\\:\/]),\\\\$1,g;
print "$r -> $s\n" if ($debug); 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;
} }
# #
......
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