diff --git a/tp/Texinfo/Convert/HTML.pm b/tp/Texinfo/Convert/HTML.pm index 1fe5ce4912..a5347d100d 100644 --- a/tp/Texinfo/Convert/HTML.pm +++ b/tp/Texinfo/Convert/HTML.pm @@ -2444,12 +2444,28 @@ sub _convert_heading_command($$$$$) return $result; } + my $element; + if ($Texinfo::Common::root_commands{$command->{'cmdname'}} + and $command->{'parent'} + and $command->{'parent'}->{'type'} + and $command->{'parent'}->{'type'} eq 'element') { + $element = $command->{'parent'}; + } + my $element_header; + if ($element) { + $element_header = &{$self->{'format_element_header'}}($self, $cmdname, + $command, $element); + } my $section = $command->{'extra'}->{'associated_section'}; my $node; if ($section) { my $level = $section->{'level'}; $result .= join('', $self->close_registered_sections_level($level)); - $self->register_opened_section_level($level, "\n"); + my $close = "\n"; + if ($element_header and ! @{$self->{'pending_closes'}}) { + $close = $element_header . $close; + } + $self->register_opened_section_level($level, $close); } else { $node = $command->{'extra'}->{'associated_node'}; } @@ -2469,16 +2485,8 @@ sub _convert_heading_command($$$$$) print STDERR "Process $command " .Texinfo::Structuring::_print_root_command_texi($command)."\n" if ($self->get_conf('DEBUG')); - my $element; - if ($Texinfo::Common::root_commands{$command->{'cmdname'}} - and $command->{'parent'} - and $command->{'parent'}->{'type'} - and $command->{'parent'}->{'type'} eq 'element') { - $element = $command->{'parent'}; - } if ($element) { - $result .= &{$self->{'format_element_header'}}($self, $cmdname, - $command, $element); + $result .= $element_header; } my $heading_level;