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;