kernel-doc: bugfix - empty line in Example section
If you have a section named "Example" that contains an empty line, attempting to generate htmldocs give you the error: /path/Documentation/DocBook/kernel-api.xml:3455: parser error : Opening and ending tag mismatch: programlisting line 3449 and para </para><para> ^ /path/Documentation/DocBook/kernel-api.xml:3473: parser error : Opening and ending tag mismatch: para line 3467 and programlisting </programlisting></informalexample> ^ /path/Documentation/DocBook/kernel-api.xml:3678: parser error : Opening and ending tag mismatch: programlisting line 3672 and para </para><para> ^ /path/Documentation/DocBook/kernel-api.xml:3701: parser error : Opening and ending tag mismatch: para line 3690 and programlisting </programlisting></informalexample> ^ unable to parse /path/Documentation/DocBook/kernel-api.xml Essentially, the script attempts to close a <programlisting> with a closing tag for a <para> block. This patch corrects the problem by simply not outputting anything extra when we're dumping pre-formatted text, since the empty line will be rendered correctly anyway. Signed-off-by: Daniel Santos <daniel.santos@pobox.com> Cc: Randy Dunlap <rdunlap@xenotime.net> Cc: Michal Marek <mmarek@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
6547842844
commit
e314ba3130
|
@ -230,6 +230,7 @@ my $dohighlight = "";
|
||||||
|
|
||||||
my $verbose = 0;
|
my $verbose = 0;
|
||||||
my $output_mode = "man";
|
my $output_mode = "man";
|
||||||
|
my $output_preformatted = 0;
|
||||||
my $no_doc_sections = 0;
|
my $no_doc_sections = 0;
|
||||||
my %highlights = %highlights_man;
|
my %highlights = %highlights_man;
|
||||||
my $blankline = $blankline_man;
|
my $blankline = $blankline_man;
|
||||||
|
@ -460,7 +461,9 @@ sub output_highlight {
|
||||||
|
|
||||||
foreach $line (split "\n", $contents) {
|
foreach $line (split "\n", $contents) {
|
||||||
if ($line eq ""){
|
if ($line eq ""){
|
||||||
|
if (! $output_preformatted) {
|
||||||
print $lineprefix, local_unescape($blankline);
|
print $lineprefix, local_unescape($blankline);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$line =~ s/\\\\\\/\&/g;
|
$line =~ s/\\\\\\/\&/g;
|
||||||
if ($output_mode eq "man" && substr($line, 0, 1) eq ".") {
|
if ($output_mode eq "man" && substr($line, 0, 1) eq ".") {
|
||||||
|
@ -643,10 +646,12 @@ sub output_section_xml(%) {
|
||||||
print "<title>$section</title>\n";
|
print "<title>$section</title>\n";
|
||||||
if ($section =~ m/EXAMPLE/i) {
|
if ($section =~ m/EXAMPLE/i) {
|
||||||
print "<informalexample><programlisting>\n";
|
print "<informalexample><programlisting>\n";
|
||||||
|
$output_preformatted = 1;
|
||||||
} else {
|
} else {
|
||||||
print "<para>\n";
|
print "<para>\n";
|
||||||
}
|
}
|
||||||
output_highlight($args{'sections'}{$section});
|
output_highlight($args{'sections'}{$section});
|
||||||
|
$output_preformatted = 0;
|
||||||
if ($section =~ m/EXAMPLE/i) {
|
if ($section =~ m/EXAMPLE/i) {
|
||||||
print "</programlisting></informalexample>\n";
|
print "</programlisting></informalexample>\n";
|
||||||
} else {
|
} else {
|
||||||
|
@ -949,10 +954,12 @@ sub output_blockhead_xml(%) {
|
||||||
}
|
}
|
||||||
if ($section =~ m/EXAMPLE/i) {
|
if ($section =~ m/EXAMPLE/i) {
|
||||||
print "<example><para>\n";
|
print "<example><para>\n";
|
||||||
|
$output_preformatted = 1;
|
||||||
} else {
|
} else {
|
||||||
print "<para>\n";
|
print "<para>\n";
|
||||||
}
|
}
|
||||||
output_highlight($args{'sections'}{$section});
|
output_highlight($args{'sections'}{$section});
|
||||||
|
$output_preformatted = 0;
|
||||||
if ($section =~ m/EXAMPLE/i) {
|
if ($section =~ m/EXAMPLE/i) {
|
||||||
print "</para></example>\n";
|
print "</para></example>\n";
|
||||||
} else {
|
} else {
|
||||||
|
@ -1028,10 +1035,12 @@ sub output_function_gnome {
|
||||||
print "<simplesect>\n <title>$section</title>\n";
|
print "<simplesect>\n <title>$section</title>\n";
|
||||||
if ($section =~ m/EXAMPLE/i) {
|
if ($section =~ m/EXAMPLE/i) {
|
||||||
print "<example><programlisting>\n";
|
print "<example><programlisting>\n";
|
||||||
|
$output_preformatted = 1;
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
print "<para>\n";
|
print "<para>\n";
|
||||||
output_highlight($args{'sections'}{$section});
|
output_highlight($args{'sections'}{$section});
|
||||||
|
$output_preformatted = 0;
|
||||||
print "</para>\n";
|
print "</para>\n";
|
||||||
if ($section =~ m/EXAMPLE/i) {
|
if ($section =~ m/EXAMPLE/i) {
|
||||||
print "</programlisting></example>\n";
|
print "</programlisting></example>\n";
|
||||||
|
|
Loading…
Reference in New Issue