[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
branch master updated: * tp/Texinfo/Convert/HTML.pm (_convert_printindex
From: |
Patrice Dumas |
Subject: |
branch master updated: * tp/Texinfo/Convert/HTML.pm (_convert_printindex_command), tp/Texinfo/XS/convert/convert_html.c (convert_printindex_command): convert subentries with seealso and seeentry too. |
Date: |
Sun, 07 Jan 2024 12:10:17 -0500 |
This is an automated email from the git hooks/post-receive script.
pertusus pushed a commit to branch master
in repository texinfo.
The following commit(s) were added to refs/heads/master by this push:
new 68e99769f5 * tp/Texinfo/Convert/HTML.pm (_convert_printindex_command),
tp/Texinfo/XS/convert/convert_html.c (convert_printindex_command): convert
subentries with seealso and seeentry too.
68e99769f5 is described below
commit 68e99769f5da0b469fe63445bc6d9ba2010e02fb
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Sun Jan 7 18:10:15 2024 +0100
* tp/Texinfo/Convert/HTML.pm (_convert_printindex_command),
tp/Texinfo/XS/convert/convert_html.c (convert_printindex_command):
convert subentries with seealso and seeentry too.
---
ChangeLog | 6 +
tp/Texinfo/Convert/HTML.pm | 351 ++++++-------
tp/Texinfo/XS/convert/convert_html.c | 543 +++++++++++----------
tp/t/results/indices/double_seeentry_seealso.pl | 3 +-
tp/t/results/indices/seealso_duplicate.pl | 4 +-
.../res_parser/formatting_chm/chapter.html | 1 -
.../res_parser/formatting_chm/chapter2.html | 1 -
.../EPUB/xhtml/chapter.xhtml | 1 -
.../EPUB/xhtml/chapter2.xhtml | 1 -
.../res_parser/formatting_html32/formatting.html | 2 -
.../formatting_html_no_split/formatting.html | 2 -
.../res_parser/formatting_xhtml/formatting.html | 2 -
.../formatting_enable_encoding/formatting.html | 2 -
.../EPUB/xhtml/chapter.xhtml | 1 -
.../EPUB/xhtml/chapter2.xhtml | 1 -
.../res_parser/formatting_exotic/chapter.html | 1 -
.../res_parser/formatting_exotic/chapter2.html | 1 -
.../res_parser/formatting_fr/formatting.html | 2 -
.../res_parser/formatting_fr_icons/formatting.html | 2 -
.../formatting_inline_css/formatting.html | 2 -
.../res_parser/formatting_mathjax/formatting.html | 2 -
.../formatting_numerical_entities/formatting.html | 2 -
.../formatting_sort_element_counts/formatting.html | 2 -
.../formatting_texi2html/formatting.html | 2 -
.../formatting_texi2html_nodes/chapter.html | 1 -
.../formatting_texi2html_nodes/chapter2.html | 1 -
.../formatting_weird_quotes/formatting.html | 2 -
.../res_parser/formatting_singular/chapter.html | 1 -
.../res_parser/formatting_singular/chapter2.html | 1 -
29 files changed, 469 insertions(+), 474 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 22dd078b36..696b804918 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2024-01-07 Patrice Dumas <pertusus@free.fr>
+
+ * tp/Texinfo/Convert/HTML.pm (_convert_printindex_command),
+ tp/Texinfo/XS/convert/convert_html.c (convert_printindex_command):
+ convert subentries with seealso and seeentry too.
+
2024-01-07 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/ParserNonXS.pm (_handle_close_brace),
diff --git a/tp/Texinfo/Convert/HTML.pm b/tp/Texinfo/Convert/HTML.pm
index cf55c89092..44d362bbae 100644
--- a/tp/Texinfo/Convert/HTML.pm
+++ b/tp/Texinfo/Convert/HTML.pm
@@ -6268,6 +6268,90 @@ sub _convert_printindex_command($$$$)
my $entry_ref_tree = {'contents' => [$entry_content_element]};
$entry_ref_tree->{'type'} = '_code' if ($in_code);
+
+ # determine the trees and normalized main entry and subentries, to be
+ # compared with the previous line normalized entries to determine
+ # what is already formatted as part of the previous lines and
+ # what levels should be added. The last level is always formatted.
+ my @new_normalized_entry_levels;
+ my @entry_trees;
+ $new_normalized_entry_levels[0]
+ = uc(Texinfo::Convert::NodeNameNormalization::convert_to_normalized(
+ $entry_ref_tree));
+ $entry_trees[0] = $entry_ref_tree;
+ my $subentry = $index_entry_ref->{'entry_element'};
+ my $subentry_level = 1;
+ my $subentries_max_level = 2;
+ while ($subentry->{'extra'} and $subentry->{'extra'}->{'subentry'}
+ and $subentry_level <= $subentries_max_level) {
+ $subentry = $subentry->{'extra'}->{'subentry'};
+ my $subentry_tree = {'contents' => []};
+ $subentry_tree->{'type'} = '_code' if ($in_code);
+ if ($subentry->{'args'} and $subentry->{'args'}->[0]
+ and $subentry->{'args'}->[0]->{'contents'}) {
+ push @{$subentry_tree->{'contents'}}, $subentry->{'args'}->[0];
+ }
+ if ($subentry_level >= $subentries_max_level) {
+ # at the max, concatenate the remaining subentries
+ my $other_subentries_tree =
$self->comma_index_subentries_tree($subentry);
+ push @{$subentry_tree->{'contents'}},
+ @{$other_subentries_tree->{'contents'}}
+ if defined($other_subentries_tree);
+ } else {
+ push @new_normalized_entry_levels,
+ uc(Texinfo::Convert::NodeNameNormalization::convert_to_normalized(
+ $subentry_tree));
+ }
+ push @entry_trees, $subentry_tree;
+ $subentry_level ++;
+ }
+ #print STDERR join('|', @new_normalized_entry_levels)."\n";
+ # level/index of the last entry
+ my $last_entry_level = $subentry_level -1;
+ my $with_new_formatted_entry = 0;
+ # format the leading entries when there are subentries (all entries
+ # except the last one), and when there is not such a subentry already
+ # formatted on the previous lines.
+ # Each on a line with increasing indentation, no hyperlink.
+ for (my $level = 0; $level < $last_entry_level; $level++) {
+ # skip levels already formatted as part of the previous lines
+ if (!$with_new_formatted_entry
+ and scalar(@prev_normalized_entry_levels) > $level
+ and $prev_normalized_entry_levels[$level]
+ eq $new_normalized_entry_levels[$level]) {
+ next;
+ }
+ $with_new_formatted_entry = 1;
+ my $convert_info
+ = "index $index_name l $letter index entry $entry_nr subentry $level";
+ my $entry;
+ if ($formatted_index_entry_nr > 1) {
+ # call with multiple_pass argument
+ $entry
+ = $self->convert_tree_new_formatting_context($entry_trees[$level],
+ $convert_info, "index-formatted-$formatted_index_entry_nr")
+ } else {
+ $entry = $self->convert_tree($entry_trees[$level],
+ $convert_info);
+ }
+ $entry = '<code>' .$entry .'</code>' if ($in_code);
+ my @td_entry_classes = ("$cmdname-index-entry");
+ # indent
+ if ($level > 0) {
+ push @td_entry_classes, "index-entry-level-$level";
+ }
+ $entries_text .= '<tr><td></td>'
+ # FIXME same class used for leading element of the entry and
+ # last element of the entry. Could be different.
+ .$self->html_attribute_class('td', \@td_entry_classes).'>'
+ . $entry . '</td>'
+ # empty cell, no section for this line
+ . "<td></td></tr>\n";
+ }
+ # last entry, always converted, associated to chapter/node and
+ # with an hyperlink or to seeentry/seealso
+ my $entry_tree = $entry_trees[$last_entry_level];
+
# index entry with @seeentry or @seealso
if ($main_entry_element->{'extra'}
and ($main_entry_element->{'extra'}->{'seeentry'}
@@ -6299,14 +6383,14 @@ sub _convert_printindex_command($$$$)
# TRANSLATORS: redirect to another index entry
# TRANSLATORS: @: is discardable and is used to avoid a msgfmt error
= $self->gdt('@code{{main_index_entry}}, @emph{See@:}
@code{{seeentry}}',
- {'main_index_entry' => $entry_ref_tree,
+ {'main_index_entry' => $entry_tree,
'seeentry' => $referred_tree});
} else {
$result_tree
# TRANSLATORS: redirect to another index entry
# TRANSLATORS: @: is discardable and used to avoid a msgfmt error
= $self->gdt('{main_index_entry}, @emph{See@:} {seeentry}',
- {'main_index_entry' => $entry_ref_tree,
+ {'main_index_entry' => $entry_tree,
'seeentry' => $referred_tree});
}
my $convert_info
@@ -6331,7 +6415,7 @@ sub _convert_printindex_command($$$$)
= "index $index_name l $letter index entry $entry_nr seealso";
if ($formatted_index_entry_nr > 1) {
# call with multiple_pass argument
- $entry =
$self->convert_tree_new_formatting_context($entry_ref_tree,
+ $entry = $self->convert_tree_new_formatting_context($entry_tree,
$conv_str_entry,
"index-formatted-$formatted_index_entry_nr");
$reference
@@ -6339,7 +6423,7 @@ sub _convert_printindex_command($$$$)
$conv_str_reference,
"index-formatted-$formatted_index_entry_nr");
} else {
- $entry = $self->convert_tree($entry_ref_tree,
+ $entry = $self->convert_tree($entry_tree,
$conv_str_entry);
$reference
= $self->convert_tree_new_formatting_context($reference_tree,
@@ -6352,204 +6436,127 @@ sub _convert_printindex_command($$$$)
$section_class = "$cmdname-index-see-also";
}
+ my @td_entry_classes = ($entry_class);
+ if ($last_entry_level > 0) {
+ push @td_entry_classes, "index-entry-level-$last_entry_level";
+ }
$entries_text .= '<tr><td></td>'
- .$self->html_attribute_class('td', [$entry_class]).'>'
+ .$self->html_attribute_class('td', \@td_entry_classes).'>'
. $entry .
$delimiter . '</td>'
.$self->html_attribute_class('td', [$section_class]).'>';
$entries_text .= $reference;
$entries_text .= "</td></tr>\n";
- @prev_normalized_entry_levels = ();
- next;
- }
-
- # determine the trees and normalized main entry and subentries, to be
- # compared with the previous line normalized entries to determine
- # what is already formatted as part of the previous lines and
- # what levels should be added. The last level is always formatted.
- my @new_normalized_entry_levels;
- my @entry_trees;
- $new_normalized_entry_levels[0]
- = uc(Texinfo::Convert::NodeNameNormalization::convert_to_normalized(
- $entry_ref_tree));
- $entry_trees[0] = $entry_ref_tree;
- my $subentry = $index_entry_ref->{'entry_element'};
- my $subentry_level = 1;
- my $subentries_max_level = 2;
- while ($subentry->{'extra'} and $subentry->{'extra'}->{'subentry'}
- and $subentry_level <= $subentries_max_level) {
- $subentry = $subentry->{'extra'}->{'subentry'};
- my $subentry_tree = {'contents' => []};
- $subentry_tree->{'type'} = '_code' if ($in_code);
- if ($subentry->{'args'} and $subentry->{'args'}->[0]
- and $subentry->{'args'}->[0]->{'contents'}) {
- push @{$subentry_tree->{'contents'}}, $subentry->{'args'}->[0];
- }
- if ($subentry_level >= $subentries_max_level) {
- # at the max, concatenate the remaining subentries
- my $other_subentries_tree =
$self->comma_index_subentries_tree($subentry);
- push @{$subentry_tree->{'contents'}},
- @{$other_subentries_tree->{'contents'}}
- if defined($other_subentries_tree);
- } else {
- push @new_normalized_entry_levels,
- uc(Texinfo::Convert::NodeNameNormalization::convert_to_normalized(
- $subentry_tree));
- }
- push @entry_trees, $subentry_tree;
- $subentry_level ++;
- }
- #print STDERR join('|', @new_normalized_entry_levels)."\n";
- # level/index of the last entry
- my $last_entry_level = $subentry_level -1;
- my $with_new_formatted_entry = 0;
- # format the leading entries when there are subentries (all entries
- # except the last one), and when there is not such a subentry already
- # formatted on the previous lines.
- # Each on a line with increasing indentation, no hyperlink.
- for (my $level = 0; $level < $last_entry_level; $level++) {
- # skip levels already formatted as part of the previous lines
- if (!$with_new_formatted_entry
- and scalar(@prev_normalized_entry_levels) > $level
- and $prev_normalized_entry_levels[$level]
- eq $new_normalized_entry_levels[$level]) {
- next;
- }
- $with_new_formatted_entry = 1;
- my $convert_info
- = "index $index_name l $letter index entry $entry_nr subentry $level";
+ @prev_normalized_entry_levels = @new_normalized_entry_levels;
+ } else {
my $entry;
+ my $convert_info = "index $index_name l $letter index entry $entry_nr";
if ($formatted_index_entry_nr > 1) {
# call with multiple_pass argument
- $entry
- = $self->convert_tree_new_formatting_context($entry_trees[$level],
- $convert_info, "index-formatted-$formatted_index_entry_nr")
+ $entry = $self->convert_tree_new_formatting_context($entry_tree,
+ $convert_info,
+ "index-formatted-$formatted_index_entry_nr");
} else {
- $entry = $self->convert_tree($entry_trees[$level],
- $convert_info);
+ $entry = $self->convert_tree($entry_tree, $convert_info);
}
- $entry = '<code>' .$entry .'</code>' if ($in_code);
- my @td_entry_classes = ("$cmdname-index-entry");
- # indent
- if ($level > 0) {
- push @td_entry_classes, "index-entry-level-$level";
- }
- $entries_text .= '<tr><td></td>'
- # FIXME same class used for leading element of the entry and
- # last element of the entry. Could be different.
- .$self->html_attribute_class('td', \@td_entry_classes).'>'
- . $entry . '</td>'
- # empty cell, no section for this line
- . "<td></td></tr>\n";
- }
- # last entry, always converted, associated to chapter/node and
- # with an hyperlink
- my $entry_tree = $entry_trees[$last_entry_level];
-
- my $entry;
- my $convert_info = "index $index_name l $letter index entry $entry_nr";
- if ($formatted_index_entry_nr > 1) {
- # call with multiple_pass argument
- $entry = $self->convert_tree_new_formatting_context($entry_tree,
- $convert_info,
- "index-formatted-$formatted_index_entry_nr");
- } else {
- $entry = $self->convert_tree($entry_tree, $convert_info);
- }
- next if ($entry !~ /\S/ and $last_entry_level == 0);
+ next if ($entry !~ /\S/ and $last_entry_level == 0);
- @prev_normalized_entry_levels = @new_normalized_entry_levels;
+ @prev_normalized_entry_levels = @new_normalized_entry_levels;
- $entry = '<code>' .$entry .'</code>' if ($in_code);
- my $target_element;
- if ($index_entry_ref->{'entry_associated_element'}) {
- $target_element = $index_entry_ref->{'entry_associated_element'};
- } else {
- $target_element = $main_entry_element;
- }
- my $entry_href = $self->command_href($target_element);
- my $formatted_entry = "<a href=\"$entry_href\">$entry</a>";
- my @td_entry_classes = ("$cmdname-index-entry");
- # subentry
- if ($last_entry_level > 0) {
- push @td_entry_classes, "index-entry-level-$last_entry_level";
- }
- $entries_text .= '<tr><td></td>'
- .$self->html_attribute_class('td', \@td_entry_classes).'>'
- . $formatted_entry . $self->get_conf('INDEX_ENTRY_COLON') . '</td>';
-
- my $associated_command;
- if ($self->get_conf('NODE_NAME_IN_INDEX')) {
- $associated_command = $main_entry_element->{'extra'}->{'element_node'};
- if (!defined($associated_command)) {
- $associated_command
- = $self->command_node($target_element);
+ $entry = '<code>' .$entry .'</code>' if ($in_code);
+ my $target_element;
+ if ($index_entry_ref->{'entry_associated_element'}) {
+ $target_element = $index_entry_ref->{'entry_associated_element'};
+ } else {
+ $target_element = $main_entry_element;
}
- if (!defined($associated_command)
- # do not warn if the entry is in a special region, like titlepage
- and not $main_entry_element->{'extra'}->{'element_region'}
- and $formatted_index_entry_nr == 1) {
- # NOTE _noticed_line_warn is not used as printindex should not
- # happen in multiple tree parsing that lead to ignore_notice being
set,
- # but the error message is printed only for the first entry
formatting.
- $self->converter_line_warn(
- sprintf(
- __("entry for index `%s' for \@printindex %s outside of any node"),
- $index_entry_ref->{'index_name'},
- $index_name),
- $main_entry_element->{'source_info'});
+ my $entry_href = $self->command_href($target_element);
+ my $formatted_entry = "<a href=\"$entry_href\">$entry</a>";
+ my @td_entry_classes = ("$cmdname-index-entry");
+ # subentry
+ if ($last_entry_level > 0) {
+ push @td_entry_classes, "index-entry-level-$last_entry_level";
}
- }
- if (!$associated_command) {
- $associated_command
- = $self->command_root_element_command($target_element);
- if (!$associated_command) {
- # Use Top if not associated command found
- $associated_command
- = $self->global_direction_unit('Top')->{'unit_command'};
- # NOTE the warning here catches the most relevant cases of
- # index entry that is not associated to the right command, which
- # are very few in the test suite. There is also a warning in the
- # parser with a much broader scope with possible overlap, but the
- # overlap is not a problem.
- # NODE_NAME_IN_INDEX may be undef even with USE_NODES set if the
- # converter is called as convert() as in the test suite
- if (defined($self->get_conf('NODE_NAME_IN_INDEX'))
- and not $self->get_conf('NODE_NAME_IN_INDEX')
+ $entries_text .= '<tr><td></td>'
+ .$self->html_attribute_class('td', \@td_entry_classes).'>'
+ . $formatted_entry . $self->get_conf('INDEX_ENTRY_COLON') . '</td>';
+
+ my $associated_command;
+ if ($self->get_conf('NODE_NAME_IN_INDEX')) {
+ $associated_command =
$main_entry_element->{'extra'}->{'element_node'};
+ if (!defined($associated_command)) {
+ $associated_command
+ = $self->command_node($target_element);
+ }
+ if (!defined($associated_command)
# do not warn if the entry is in a special region, like titlepage
and not $main_entry_element->{'extra'}->{'element_region'}
and $formatted_index_entry_nr == 1) {
- # NOTE _noticed_line_warn is not used as printindex should not
- # happen in multiple tree parsing that lead to ignore_notice being
set,
- # but the error message is printed only for the first entry
formatting.
- # NOTE the index entry may be associated to a node in that case.
+ # NOTE _noticed_line_warn is not used as printindex should not
+ # happen in multiple tree parsing that lead to ignore_notice being
set,
+ # but the error message is printed only for the first entry
formatting.
$self->converter_line_warn(
sprintf(
- __("entry for index `%s' for \@printindex %s outside of any section"),
+ __("entry for index `%s' for \@printindex %s outside of any node"),
$index_entry_ref->{'index_name'},
$index_name),
$main_entry_element->{'source_info'});
}
}
- }
-
- $entries_text .=
- $self->html_attribute_class('td', ["$cmdname-index-section"]).'>';
-
- if ($associated_command) {
- my $associated_command_href = $self->command_href($associated_command);
- my $associated_command_text = $self->command_text($associated_command);
+ if (!$associated_command) {
+ $associated_command
+ = $self->command_root_element_command($target_element);
+ if (!$associated_command) {
+ # Use Top if not associated command found
+ $associated_command
+ = $self->global_direction_unit('Top')->{'unit_command'};
+ # NOTE the warning here catches the most relevant cases of
+ # index entry that is not associated to the right command, which
+ # are very few in the test suite. There is also a warning in the
+ # parser with a much broader scope with possible overlap, but the
+ # overlap is not a problem.
+ # NODE_NAME_IN_INDEX may be undef even with USE_NODES set if the
+ # converter is called as convert() as in the test suite
+ if (defined($self->get_conf('NODE_NAME_IN_INDEX'))
+ and not $self->get_conf('NODE_NAME_IN_INDEX')
+ # do not warn if the entry is in a special region, like titlepage
+ and not $main_entry_element->{'extra'}->{'element_region'}
+ and $formatted_index_entry_nr == 1) {
+ # NOTE _noticed_line_warn is not used as printindex should not
+ # happen in multiple tree parsing that lead to ignore_notice being
set,
+ # but the error message is printed only for the first entry
formatting.
+ # NOTE the index entry may be associated to a node in that case.
+ $self->converter_line_warn(
+ sprintf(
+ __("entry for index `%s' for \@printindex %s outside of any section"),
+ $index_entry_ref->{'index_name'},
+ $index_name),
+ $main_entry_element->{'source_info'});
+ }
+ }
+ }
- if (defined($associated_command_href)) {
- $entries_text
- .= "<a href=\"$associated_command_href\">$associated_command_text</a>";
- } elsif (defined($associated_command_text)) {
- $entries_text .= $associated_command_text;
+ $entries_text .=
+ $self->html_attribute_class('td', ["$cmdname-index-section"]).'>';
+
+ if ($associated_command) {
+ my $associated_command_href
+ = $self->command_href($associated_command);
+ my $associated_command_text
+ = $self->command_text($associated_command);
+
+ if (defined($associated_command_href)) {
+ $entries_text
+ .= "<a href=\"$associated_command_href\">"
+ ."$associated_command_text</a>";
+ } elsif (defined($associated_command_text)) {
+ $entries_text .= $associated_command_text;
+ }
}
+ $entries_text .= "</td></tr>\n";
}
- $entries_text .= "</td></tr>\n";
}
# a letter and associated indice entries
if ($entries_text ne '') {
diff --git a/tp/Texinfo/XS/convert/convert_html.c
b/tp/Texinfo/XS/convert/convert_html.c
index 463490233c..d4c17037eb 100644
--- a/tp/Texinfo/XS/convert/convert_html.c
+++ b/tp/Texinfo/XS/convert/convert_html.c
@@ -12399,6 +12399,143 @@ convert_printindex_command (CONVERTER *self, const
enum command_id cmd,
/* index entry with @seeentry or @seealso */
seeentry = lookup_extra_element (main_entry_element, "seeentry");
seealso = lookup_extra_element (main_entry_element, "seealso");
+
+ memset (entry_trees, 0, sizeof (ELEMENT *) * SUBENTRIES_MAX_LEVEL);
+
+ /* determine the trees and normalized main entry and subentries, to be
+ compared with the previous line normalized entries to determine
+ what is already formatted as part of the previous lines and
+ what levels should be added. The last level is always formatted. */
+ new_normalized_entry_levels[0]
+ = normalized_upper_case (entry_ref_tree);
+ entry_trees[0] = entry_ref_tree;
+ subentry = index_entry_ref->entry_element;
+
+ while (subentry_level <= SUBENTRIES_MAX_LEVEL)
+ {
+ ELEMENT *new_subentry = lookup_extra_element (subentry,
+ "subentry");
+ ELEMENT *subentry_tree;
+ if (!new_subentry)
+ break;
+
+ subentry = new_subentry;
+
+ if (in_code)
+ subentry_tree = new_element (ET__code);
+ else
+ subentry_tree = new_element (ET_NONE);
+
+ if (subentry->args.number > 0
+ && subentry->args.list[0]->contents.number > 0)
+ add_to_contents_as_array (subentry_tree,
+ subentry->args.list[0]);
+
+ if (subentry_level >= SUBENTRIES_MAX_LEVEL)
+ {
+ /* at the max, concatenate the remaining subentries */
+ other_subentries_tree
+ = comma_index_subentries_tree (subentry, 0);
+ if (other_subentries_tree)
+ insert_list_slice_into_contents (subentry_tree,
+ subentry_tree->contents.number,
+ other_subentries_tree, 0,
+ other_subentries_tree->number);
+ }
+ else
+ {
+ new_normalized_entry_levels[subentry_level]
+ = normalized_upper_case (subentry_tree);
+
+ }
+ entry_trees[subentry_level] = subentry_tree;
+ subentry_level++;
+ }
+ /* level/index of the last entry */
+ last_entry_level = subentry_level - 1;
+
+ /* format the leading entries when there are subentries (all entries
+ except the last one), and when there is not such a subentry already
+ formatted on the previous lines.
+ Each on a line with increasing indentation, no hyperlink. */
+ if (last_entry_level > 0)
+ {
+ int with_new_formatted_entry = 0;
+ for (level = 0; level < last_entry_level; level++)
+ {
+ char *convert_info;
+ char *entry;
+
+ if (!with_new_formatted_entry
+ && prev_normalized_entry_levels[level]
+ && !strcmp (prev_normalized_entry_levels[level],
+ new_normalized_entry_levels[level]))
+ {
+ if (level > 0)
+ destroy_element (entry_trees[level]);
+ continue;
+ }
+
+ with_new_formatted_entry = 1;
+ xasprintf (&convert_info,
+ "index %s l %s index entry %zu subentry %d",
+ index_name, letter, entry_nr -1, level);
+ if (level > 0)
+ add_to_element_list (&self->tree_to_build,
+ entry_trees[level]);
+ if (*formatted_index_entry_nr > 1)
+ {
+ /* call with multiple_pass argument */
+ entry = convert_tree_new_formatting_context (self,
+ entry_trees[level], convert_info,
+ multiple_pass_str, 0, 0);
+ }
+ else
+ {
+ entry = html_convert_tree (self, entry_trees[level],
+ convert_info);
+ }
+ if (level > 0)
+ {
+ remove_element_from_list (&self->tree_to_build,
+ entry_trees[level]);
+ destroy_element (entry_trees[level]);
+ }
+ free (convert_info);
+
+ add_string (cmd_index_entry_class, entry_classes);
+ if (level > 0)
+ {
+ /* indent */
+ char *index_entry_level;
+ xasprintf (&index_entry_level, "index-entry-level-%d",
+ level);
+ add_string (index_entry_level, entry_classes);
+ free (index_entry_level);
+ }
+ text_append_n (&entries_text, "<tr><td></td>", 13);
+ attribute_class = html_attribute_class (self, "td",
+ entry_classes);
+ text_append (&entries_text, attribute_class);
+ clear_strings_list (entry_classes);
+ free (attribute_class);
+ text_append_n (&entries_text, ">", 1);
+
+ if (in_code)
+ text_append_n (&entries_text, "<code>", 6);
+ text_append (&entries_text, entry);
+ free (entry);
+ if (in_code)
+ text_append_n (&entries_text, "</code>", 7);
+ text_append_n (&entries_text, "</td>", 5);
+ /* empty cell, no section for this line */
+ text_append_n (&entries_text, "<td></td></tr>\n", 15);
+ }
+ }
+ /* last entry, always converted, associated to chapter/node and
+ with an hyperlink or to seeentry/seealso */
+ entry_tree = entry_trees[last_entry_level];
+
if (seeentry || seealso)
{
NAMED_STRING_ELEMENT_LIST *substrings
@@ -12430,9 +12567,9 @@ convert_printindex_command (CONVERTER *self, const enum
command_id cmd,
{
char *convert_info;
ELEMENT *result_tree;
- ELEMENT *entry_ref_tree_copy = copy_tree (entry_ref_tree);
+ ELEMENT *entry_tree_copy = copy_tree (entry_tree);
add_element_to_named_string_element_list (substrings,
- "main_index_entry", entry_ref_tree_copy);
+ "main_index_entry", entry_tree_copy);
add_element_to_named_string_element_list (substrings,
"seeentry", referred_tree);
if (in_code)
@@ -12493,13 +12630,13 @@ convert_printindex_command (CONVERTER *self, const
enum command_id cmd,
"index %s l %s index entry %zu seealso",
index_name, letter, entry_nr -1);
- add_to_element_list (&self->tree_to_build, entry_ref_tree);
+ add_to_element_list (&self->tree_to_build, entry_tree);
add_to_element_list (&self->tree_to_build, reference_tree);
if (*formatted_index_entry_nr > 1)
{
/* call with multiple_pass argument */
entry = convert_tree_new_formatting_context (self,
- entry_ref_tree, conv_str_entry,
+ entry_tree, conv_str_entry,
multiple_pass_str, 0, 0);
reference = convert_tree_new_formatting_context (self,
reference_tree, conv_str_reference,
@@ -12507,7 +12644,7 @@ convert_printindex_command (CONVERTER *self, const enum
command_id cmd,
}
else
{
- entry = html_convert_tree (self, entry_ref_tree,
+ entry = html_convert_tree (self, entry_tree,
conv_str_entry);
reference = html_convert_tree (self, reference_tree,
conv_str_reference);
@@ -12515,7 +12652,7 @@ convert_printindex_command (CONVERTER *self, const enum
command_id cmd,
remove_element_from_list (&self->tree_to_build,
reference_tree);
remove_element_from_list (&self->tree_to_build,
- entry_ref_tree);
+ entry_tree);
destroy_element_and_children (reference_tree);
free (conv_str_entry);
@@ -12528,6 +12665,14 @@ convert_printindex_command (CONVERTER *self, const
enum command_id cmd,
destroy_named_string_element_list (substrings);
text_append_n (&entries_text, "<tr><td></td>", 13);
+ if (last_entry_level > 0)
+ {
+ char *index_entry_level;
+ xasprintf (&index_entry_level, "index-entry-level-%d",
+ last_entry_level);
+ add_string (index_entry_level, entry_classes);
+ free (index_entry_level);
+ }
attribute_class = html_attribute_class (self, "td",
entry_classes);
text_append (&entries_text, attribute_class);
clear_strings_list (entry_classes);
@@ -12559,125 +12704,56 @@ convert_printindex_command (CONVERTER *self, const
enum command_id cmd,
free (reference);
}
text_append_n (&entries_text, "</td></tr>\n", 11);
- destroy_element (entry_ref_tree);
- if (*formatted_index_entry_nr > 1)
- free (multiple_pass_str);
- clear_normalized_entry_levels (prev_normalized_entry_levels);
-
- continue;
}
-
- memset (entry_trees, 0, sizeof (ELEMENT *) * SUBENTRIES_MAX_LEVEL);
-
- /* determine the trees and normalized main entry and subentries, to be
- compared with the previous line normalized entries to determine
- what is already formatted as part of the previous lines and
- what levels should be added. The last level is always formatted. */
- new_normalized_entry_levels[0]
- = normalized_upper_case (entry_ref_tree);
- entry_trees[0] = entry_ref_tree;
- subentry = index_entry_ref->entry_element;
-
- while (subentry_level <= SUBENTRIES_MAX_LEVEL)
+ else
{
- ELEMENT *new_subentry = lookup_extra_element (subentry,
- "subentry");
- ELEMENT *subentry_tree;
- if (!new_subentry)
- break;
-
- subentry = new_subentry;
+ xasprintf (&convert_info, "index %s l %s index entry %zu",
+ index_name, letter, entry_nr -1);
- if (in_code)
- subentry_tree = new_element (ET__code);
- else
- subentry_tree = new_element (ET_NONE);
-
- if (subentry->args.number > 0
- && subentry->args.list[0]->contents.number > 0)
- add_to_contents_as_array (subentry_tree,
- subentry->args.list[0]);
-
- if (subentry_level >= SUBENTRIES_MAX_LEVEL)
+ if (last_entry_level > 0)
+ add_to_element_list (&self->tree_to_build, entry_tree);
+ if (*formatted_index_entry_nr > 1)
{
- /* at the max, concatenate the remaining subentries */
- other_subentries_tree
- = comma_index_subentries_tree (subentry, 0);
- if (other_subentries_tree)
- insert_list_slice_into_contents (subentry_tree,
- subentry_tree->contents.number,
- other_subentries_tree, 0,
- other_subentries_tree->number);
+ /* call with multiple_pass argument */
+ entry = convert_tree_new_formatting_context (self,
+ entry_tree, convert_info,
+ multiple_pass_str, 0, 0);
}
else
{
- new_normalized_entry_levels[subentry_level]
- = normalized_upper_case (subentry_tree);
-
+ entry = html_convert_tree (self, entry_tree,
+ convert_info);
}
- entry_trees[subentry_level] = subentry_tree;
- subentry_level++;
- }
- /* level/index of the last entry */
- last_entry_level = subentry_level - 1;
-
- /* format the leading entries when there are subentries (all entries
- except the last one), and when there is not such a subentry already
- formatted on the previous lines.
- Each on a line with increasing indentation, no hyperlink. */
- if (last_entry_level > 0)
- {
- int with_new_formatted_entry = 0;
- for (level = 0; level < last_entry_level; level++)
+ if (last_entry_level > 0)
{
- char *convert_info;
- char *entry;
-
- if (!with_new_formatted_entry
- && prev_normalized_entry_levels[level]
- && !strcmp (prev_normalized_entry_levels[level],
- new_normalized_entry_levels[level]))
- {
- if (level > 0)
- destroy_element (entry_trees[level]);
- continue;
- }
+ remove_element_from_list (&self->tree_to_build, entry_tree);
+ destroy_element (entry_tree);
+ }
+ free (convert_info);
- with_new_formatted_entry = 1;
- xasprintf (&convert_info,
- "index %s l %s index entry %zu subentry %d",
- index_name, letter, entry_nr -1, level);
- if (level > 0)
- add_to_element_list (&self->tree_to_build,
- entry_trees[level]);
- if (*formatted_index_entry_nr > 1)
- {
- /* call with multiple_pass argument */
- entry = convert_tree_new_formatting_context (self,
- entry_trees[level], convert_info,
- multiple_pass_str, 0, 0);
- }
+ if (last_entry_level == 0
+ && (!entry || entry[strspn (entry, whitespace_chars)] ==
'\0'))
+ {
+ free (new_normalized_entry_levels[0]);
+ new_normalized_entry_levels[0] = 0;
+ }
+ else
+ {
+ if (index_entry_ref->entry_associated_element)
+ target_element = index_entry_ref->entry_associated_element;
else
- {
- entry = html_convert_tree (self, entry_trees[level],
- convert_info);
- }
- if (level > 0)
- {
- remove_element_from_list (&self->tree_to_build,
- entry_trees[level]);
- destroy_element (entry_trees[level]);
- }
- free (convert_info);
+ target_element = main_entry_element;
+
+ entry_href
+ = html_command_href (self, target_element, 0, 0, 0);
add_string (cmd_index_entry_class, entry_classes);
- if (level > 0)
+ if (last_entry_level > 0)
{
- /* indent */
char *index_entry_level;
xasprintf (&index_entry_level, "index-entry-level-%d",
- level);
+ last_entry_level);
add_string (index_entry_level, entry_classes);
free (index_entry_level);
}
@@ -12689,138 +12765,61 @@ convert_printindex_command (CONVERTER *self, const
enum command_id cmd,
free (attribute_class);
text_append_n (&entries_text, ">", 1);
+ text_printf (&entries_text, "<a href=\"%s\">", entry_href);
+ free (entry_href);
if (in_code)
text_append_n (&entries_text, "<code>", 6);
- text_append (&entries_text, entry);
- free (entry);
+ if (entry)
+ {
+ text_append (&entries_text, entry);
+ free (entry);
+ }
if (in_code)
text_append_n (&entries_text, "</code>", 7);
+ text_append_n (&entries_text, "</a>", 4);
+ text_append (&entries_text,
+ self->conf->INDEX_ENTRY_COLON.string);
text_append_n (&entries_text, "</td>", 5);
- /* empty cell, no section for this line */
- text_append_n (&entries_text, "<td></td></tr>\n", 15);
- }
- }
- /* last entry, always converted, associated to chapter/node and
- with an hyperlink */
- entry_tree = entry_trees[last_entry_level];
- xasprintf (&convert_info, "index %s l %s index entry %zu",
- index_name, letter, entry_nr -1);
- if (last_entry_level > 0)
- add_to_element_list (&self->tree_to_build, entry_tree);
- if (*formatted_index_entry_nr > 1)
- {
- /* call with multiple_pass argument */
- entry = convert_tree_new_formatting_context (self,
- entry_tree, convert_info,
- multiple_pass_str, 0, 0);
-
- free (multiple_pass_str);
- }
- else
- {
- entry = html_convert_tree (self, entry_tree,
- convert_info);
- }
- if (last_entry_level > 0)
- {
- remove_element_from_list (&self->tree_to_build, entry_tree);
- destroy_element (entry_tree);
- }
- free (convert_info);
-
- if (other_subentries_tree)
- free_comma_index_subentries_tree (other_subentries_tree);
- destroy_element (entry_ref_tree);
-
- if (last_entry_level == 0
- && (!entry || entry[strspn (entry, whitespace_chars)] == '\0'))
- {
- free (new_normalized_entry_levels[0]);
- continue;
- }
-
- for (level = 0; level < SUBENTRIES_MAX_LEVEL; level++)
- {
- free (prev_normalized_entry_levels[level]);
- prev_normalized_entry_levels[level]
- = new_normalized_entry_levels[level];
- }
-
- if (index_entry_ref->entry_associated_element)
- target_element = index_entry_ref->entry_associated_element;
- else
- target_element = main_entry_element;
-
- entry_href = html_command_href (self, target_element, 0, 0, 0);
-
- add_string (cmd_index_entry_class, entry_classes);
- if (last_entry_level > 0)
- {
- char *index_entry_level;
- xasprintf (&index_entry_level, "index-entry-level-%d",
- last_entry_level);
- add_string (index_entry_level, entry_classes);
- free (index_entry_level);
- }
- text_append_n (&entries_text, "<tr><td></td>", 13);
- attribute_class = html_attribute_class (self, "td",
- entry_classes);
- text_append (&entries_text, attribute_class);
- clear_strings_list (entry_classes);
- free (attribute_class);
- text_append_n (&entries_text, ">", 1);
-
- text_printf (&entries_text, "<a href=\"%s\">", entry_href);
- free (entry_href);
- if (in_code)
- text_append_n (&entries_text, "<code>", 6);
- if (entry)
- {
- text_append (&entries_text, entry);
- free (entry);
- }
- if (in_code)
- text_append_n (&entries_text, "</code>", 7);
- text_append_n (&entries_text, "</a>", 4);
- text_append (&entries_text, self->conf->INDEX_ENTRY_COLON.string);
- text_append_n (&entries_text, "</td>", 5);
-
- if (self->conf->NODE_NAME_IN_INDEX.integer > 0)
- {
- associated_command = lookup_extra_element (main_entry_element,
- "element_node");
- if (!associated_command)
- associated_command = html_command_node (self, target_element);
-
- if (!associated_command && *formatted_index_entry_nr == 1)
- {
- char *element_region
- = lookup_extra_string (main_entry_element,
"element_region");
- /* do not warn if the entry is in a special region, like titlepage */
- if (!element_region)
+ if (self->conf->NODE_NAME_IN_INDEX.integer > 0)
{
+ associated_command
+ = lookup_extra_element (main_entry_element,
+ "element_node");
+ if (!associated_command)
+ associated_command
+ = html_command_node (self, target_element);
+
+ if (!associated_command
+ && *formatted_index_entry_nr == 1)
+ {
+ char *element_region
+ = lookup_extra_string (main_entry_element,
+ "element_region");
+ /* do not warn if the entry is in a special region, like titlepage */
+ if (!element_region)
+ {
/* NOTE _noticed_line_warn is not used as printindex should not
happen in multiple tree parsing that lead to ignore_notice being set,
but the error message is printed only for the first entry formatting.
*/
- message_list_command_warn (&self->error_messages,
- self->conf,
- main_entry_element,
+ message_list_command_warn (&self->error_messages,
+ self->conf,
+ main_entry_element,
"entry for index `%s' for @printindex %s outside of any node",
- entry_index->name, index_name);
-
+ entry_index->name, index_name);
+ }
+ }
}
- }
- }
- if (!associated_command)
- {
- associated_command = html_command_root_element_command (self,
+ if (!associated_command)
+ {
+ associated_command
+ = html_command_root_element_command (self,
target_element);
- if (!associated_command)
- {
- associated_command
- = self->global_units_directions[D_Top]->unit_command;
+ if (!associated_command)
+ {
+ associated_command
+ =
self->global_units_directions[D_Top]->unit_command;
/* NOTE the warning here catches the most relevant cases of
index entry that is not associated to the right command, which
@@ -12830,58 +12829,76 @@ convert_printindex_command (CONVERTER *self, const
enum command_id cmd,
NODE_NAME_IN_INDEX may be undef even with USE_NODES set if the
converter is called as convert() as in the test suite */
- if (self->conf->NODE_NAME_IN_INDEX.integer == 0
- && *formatted_index_entry_nr == 1)
- {
- char *element_region
- = lookup_extra_string (main_entry_element,
- "element_region");
+ if (self->conf->NODE_NAME_IN_INDEX.integer == 0
+ && *formatted_index_entry_nr == 1)
+ {
+ char *element_region
+ = lookup_extra_string (main_entry_element,
+ "element_region");
/* do not warn if the entry is in a special region, like titlepage */
- if (!element_region)
- {
+ if (!element_region)
+ {
/* NOTE _noticed_line_warn is not used as printindex should not
happen in multiple tree parsing that lead to ignore_notice being set,
but the error message is printed only for the first entry formatting.
NOTE the index entry may be associated to a node in that case. */
- message_list_command_warn (&self->error_messages,
- self->conf,
- main_entry_element,
+ message_list_command_warn (&self->error_messages,
+ self->conf,
+ main_entry_element,
"entry for index `%s' for @printindex %s outside of any section",
- entry_index->name, index_name);
+ entry_index->name, index_name);
+ }
+ }
}
}
- }
- }
- add_string (cmd_index_section_class, section_classes);
- attribute_class
- = html_attribute_class (self, "td", section_classes);
- text_append (&entries_text, attribute_class);
- free (attribute_class);
- clear_strings_list (section_classes);
- text_append_n (&entries_text, ">", 1);
+ add_string (cmd_index_section_class, section_classes);
+ attribute_class
+ = html_attribute_class (self, "td", section_classes);
+ text_append (&entries_text, attribute_class);
+ free (attribute_class);
+ clear_strings_list (section_classes);
+ text_append_n (&entries_text, ">", 1);
- if (associated_command)
- {
- char *associated_command_href
- = html_command_href (self, associated_command, 0, 0, 0);
- char *associated_command_text
- = html_command_text (self, associated_command, 0);
+ if (associated_command)
+ {
+ char *associated_command_href
+ = html_command_href (self, associated_command, 0, 0, 0);
+ char *associated_command_text
+ = html_command_text (self, associated_command, 0);
- if (associated_command_href)
- {
- text_printf (&entries_text, "<a href=\"%s\">%s</a>",
- associated_command_href, associated_command_text);
+ if (associated_command_href)
+ {
+ text_printf (&entries_text, "<a href=\"%s\">%s</a>",
+ associated_command_href, associated_command_text);
+ }
+ else
+ {
+ text_append (&entries_text, associated_command_text);
+ }
+
+ free (associated_command_text);
+ free (associated_command_href);
+ }
+ text_append_n (&entries_text, "</td></tr>\n", 11);
}
- else
+ }
+ if (new_normalized_entry_levels[0] != 0)
+ {
+ for (level = 0; level < SUBENTRIES_MAX_LEVEL; level++)
{
- text_append (&entries_text, associated_command_text);
+ free (prev_normalized_entry_levels[level]);
+ prev_normalized_entry_levels[level]
+ = new_normalized_entry_levels[level];
}
-
- free (associated_command_text);
- free (associated_command_href);
}
- text_append_n (&entries_text, "</td></tr>\n", 11);
+
+ destroy_element (entry_ref_tree);
+ if (other_subentries_tree)
+ free_comma_index_subentries_tree (other_subentries_tree);
+
+ if (*formatted_index_entry_nr > 1)
+ free (multiple_pass_str);
}
clear_normalized_entry_levels (prev_normalized_entry_levels);
diff --git a/tp/t/results/indices/double_seeentry_seealso.pl
b/tp/t/results/indices/double_seeentry_seealso.pl
index 88b2daca01..746427a449 100644
--- a/tp/t/results/indices/double_seeentry_seealso.pl
+++ b/tp/t/results/indices/double_seeentry_seealso.pl
@@ -794,7 +794,8 @@ $result_converted{'html_text'}->{'double_seeentry_seealso'}
= '<div class="top-l
<tr><td></td><th class="entries-header-printindex">Index Entry</th><th
class="sections-header-printindex">Section</th></tr>
<tr><td colspan="3"><hr></td></tr>
<tr><th id="node-index_cp_symbol-1"></th></tr>
-<tr><td></td><td class="printindex-index-see-entry">, <em
class="emph">See</em> subhhh</td><td
class="printindex-index-see-entry-section"></td></tr>
+<tr><td></td><td class="printindex-index-entry"></td><td></td></tr>
+<tr><td></td><td class="printindex-index-see-entry
index-entry-level-1">subggg, <em class="emph">See</em> subhhh</td><td
class="printindex-index-see-entry-section"></td></tr>
<tr><td colspan="3"><hr></td></tr>
<tr><th id="node-index_cp_letter-A">A</th></tr>
<tr><td></td><td class="printindex-index-see-entry">aaa, <em
class="emph">See</em> ccc</td><td
class="printindex-index-see-entry-section"></td></tr>
diff --git a/tp/t/results/indices/seealso_duplicate.pl
b/tp/t/results/indices/seealso_duplicate.pl
index 93171be365..228c870938 100644
--- a/tp/t/results/indices/seealso_duplicate.pl
+++ b/tp/t/results/indices/seealso_duplicate.pl
@@ -615,8 +615,8 @@ $result_converted{'html_text'}->{'seealso_duplicate'} = '<a
class="node-id" id="
<tr><th id="chap_cp_letter-A">A</th></tr>
<tr><td></td><td class="printindex-index-entry"><code
class="command">awk</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-awk-POSIX-and">POSIX and</a></td><td
class="printindex-index-section"><a href="#chap">chap</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><code
class="command">awk</code></td><td class="printindex-index-see-also"><em
class="emph">See also</em> POSIX <code class="command">awk</code></td></tr>
-<tr><td></td><td class="printindex-index-see-entry"><code
class="command">awk</code>, <em class="emph">See</em> Another entry</td><td
class="printindex-index-see-entry-section"></td></tr>
+<tr><td></td><td class="printindex-index-entry index-entry-level-1">POSIX
and</td><td class="printindex-index-see-also"><em class="emph">See also</em>
POSIX <code class="command">awk</code></td></tr>
+<tr><td></td><td class="printindex-index-see-entry index-entry-level-1">POSIX
and, <em class="emph">See</em> Another entry</td><td
class="printindex-index-see-entry-section"></td></tr>
<tr><td colspan="3"><hr></td></tr>
</table>
</div>
diff --git a/tp/tests/coverage/res_parser/formatting_chm/chapter.html
b/tp/tests/coverage/res_parser/formatting_chm/chapter.html
index e21cb495fd..3b794ec841 100644
--- a/tp/tests/coverage/res_parser/formatting_chm/chapter.html
+++ b/tp/tests/coverage/res_parser/formatting_chm/chapter.html
@@ -4868,7 +4868,6 @@ Invalid use of @':
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git a/tp/tests/coverage/res_parser/formatting_chm/chapter2.html
b/tp/tests/coverage/res_parser/formatting_chm/chapter2.html
index 43a2d3bab1..4b26102e36 100644
--- a/tp/tests/coverage/res_parser/formatting_chm/chapter2.html
+++ b/tp/tests/coverage/res_parser/formatting_chm/chapter2.html
@@ -1307,7 +1307,6 @@ th.sections-header-printindex {text-align:left;
padding-left: 1em}
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="chapter.html#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="chapter.html">1 chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="chapter.html#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="chapter.html">1 chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git
a/tp/tests/coverage/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/chapter.xhtml
b/tp/tests/coverage/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/chapter.xhtml
index 96141c558d..cb240e693c 100644
---
a/tp/tests/coverage/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/chapter.xhtml
+++
b/tp/tests/coverage/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/chapter.xhtml
@@ -4868,7 +4868,6 @@ Invalid use of @':
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git
a/tp/tests/coverage/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/chapter2.xhtml
b/tp/tests/coverage/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/chapter2.xhtml
index 08b2e170ac..31ce6d72b5 100644
---
a/tp/tests/coverage/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/chapter2.xhtml
+++
b/tp/tests/coverage/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/chapter2.xhtml
@@ -1307,7 +1307,6 @@ th.sections-header-printindex {text-align:left;
padding-left: 1em}
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="chapter.xhtml#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="chapter.xhtml#chapter">1
chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="chapter.xhtml#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="chapter.xhtml#chapter">1
chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git a/tp/tests/coverage/res_parser/formatting_html32/formatting.html
b/tp/tests/coverage/res_parser/formatting_html32/formatting.html
index 244bf2b592..d9fd893147 100644
--- a/tp/tests/coverage/res_parser/formatting_html32/formatting.html
+++ b/tp/tests/coverage/res_parser/formatting_html32/formatting.html
@@ -6979,7 +6979,6 @@ Invalid use of @':
<tr><td></td><td><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td><a
href="#chapter">chapter</a></td></tr>
<tr><td></td><td><code>f---ddd</code></td><td><em>See also</em>
f---ccc</td></tr>
<tr><td></td><td><code>f---ddd</code></td><td><em>See also</em>
f---ccc</td></tr>
-<tr><td></td><td><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td><code>f---eee</code></td><td></td></tr>
<tr><td></td><td><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td><a
href="#chapter">chapter</a></td></tr>
<tr><td></td><td><code>f---ggg</code></td><td></td></tr>
@@ -7634,7 +7633,6 @@ Previous: <a href="#chapter" rel="prev">chapter</a>, Up:
<a href="#Top" rel="up"
<tr><td></td><td><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td><a
href="#chapter">chapter</a></td></tr>
<tr><td></td><td><code>f---ddd</code></td><td><em>See also</em>
f---ccc</td></tr>
<tr><td></td><td><code>f---ddd</code></td><td><em>See also</em>
f---ccc</td></tr>
-<tr><td></td><td><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td><code>f---eee</code></td><td></td></tr>
<tr><td></td><td><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td><a
href="#chapter">chapter</a></td></tr>
<tr><td></td><td><code>f---ggg</code></td><td></td></tr>
diff --git
a/tp/tests/coverage/res_parser/formatting_html_no_split/formatting.html
b/tp/tests/coverage/res_parser/formatting_html_no_split/formatting.html
index 5bb653c142..e2fa2a4647 100644
--- a/tp/tests/coverage/res_parser/formatting_html_no_split/formatting.html
+++ b/tp/tests/coverage/res_parser/formatting_html_no_split/formatting.html
@@ -4921,7 +4921,6 @@ Invalid use of @':
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
@@ -5553,7 +5552,6 @@ Previous: <a href="#chapter" accesskey="p"
rel="prev">chapter</a>, Up: <a href="
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git a/tp/tests/coverage/res_parser/formatting_xhtml/formatting.html
b/tp/tests/coverage/res_parser/formatting_xhtml/formatting.html
index 914c64a313..c6803e45db 100644
--- a/tp/tests/coverage/res_parser/formatting_xhtml/formatting.html
+++ b/tp/tests/coverage/res_parser/formatting_xhtml/formatting.html
@@ -7140,7 +7140,6 @@ Invalid use of @':
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
@@ -7772,7 +7771,6 @@ Previous: <a href="#chapter" accesskey="p"
rel="prev">chapter</a>, Up: <a href="
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git
a/tp/tests/layout/res_parser/formatting_enable_encoding/formatting.html
b/tp/tests/layout/res_parser/formatting_enable_encoding/formatting.html
index dca9f04954..c7d85ee511 100644
--- a/tp/tests/layout/res_parser/formatting_enable_encoding/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_enable_encoding/formatting.html
@@ -7156,7 +7156,6 @@ Invalid use of @':
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
@@ -7811,7 +7810,6 @@ Previous: <a href="#chapter" accesskey="p"
rel="prev">chapter</a>, Up: <a href="
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter.xhtml
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter.xhtml
index 44204c08be..12c757481e 100644
---
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter.xhtml
+++
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter.xhtml
@@ -4869,7 +4869,6 @@ Invalid use of @':
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter2.xhtml
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter2.xhtml
index eb7e8801ea..8eb260e084 100644
---
a/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter2.xhtml
+++
b/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter2.xhtml
@@ -1308,7 +1308,6 @@ th.sections-header-printindex {text-align:left;
padding-left: 1em}
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="chapter.xhtml#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="chapter.xhtml">1
chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="chapter.xhtml#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="chapter.xhtml">1
chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git a/tp/tests/layout/res_parser/formatting_exotic/chapter.html
b/tp/tests/layout/res_parser/formatting_exotic/chapter.html
index 2f99d95518..928c102c1a 100644
--- a/tp/tests/layout/res_parser/formatting_exotic/chapter.html
+++ b/tp/tests/layout/res_parser/formatting_exotic/chapter.html
@@ -4877,7 +4877,6 @@ Invalid use of @':
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git a/tp/tests/layout/res_parser/formatting_exotic/chapter2.html
b/tp/tests/layout/res_parser/formatting_exotic/chapter2.html
index f20621e447..ca2d8b5814 100644
--- a/tp/tests/layout/res_parser/formatting_exotic/chapter2.html
+++ b/tp/tests/layout/res_parser/formatting_exotic/chapter2.html
@@ -1319,7 +1319,6 @@ th.sections-header-printindex {text-align:left;
padding-left: 1em}
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="chapter.html#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="chapter.html">chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="chapter.html#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="chapter.html">chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git a/tp/tests/layout/res_parser/formatting_fr/formatting.html
b/tp/tests/layout/res_parser/formatting_fr/formatting.html
index 3e090a6d79..926d42340e 100644
--- a/tp/tests/layout/res_parser/formatting_fr/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_fr/formatting.html
@@ -7135,7 +7135,6 @@ Invalid use of @':
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">Voir aussi</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">Voir aussi</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
@@ -7845,7 +7844,6 @@ Menu comment
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">Voir aussi</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">Voir aussi</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git a/tp/tests/layout/res_parser/formatting_fr_icons/formatting.html
b/tp/tests/layout/res_parser/formatting_fr_icons/formatting.html
index a8e5f4560f..70dccf444d 100644
--- a/tp/tests/layout/res_parser/formatting_fr_icons/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_fr_icons/formatting.html
@@ -7135,7 +7135,6 @@ Invalid use of @':
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">Voir aussi</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">Voir aussi</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
@@ -7845,7 +7844,6 @@ Menu comment
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">Voir aussi</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">Voir aussi</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git a/tp/tests/layout/res_parser/formatting_inline_css/formatting.html
b/tp/tests/layout/res_parser/formatting_inline_css/formatting.html
index d650fff82d..0c8470c7d3 100644
--- a/tp/tests/layout/res_parser/formatting_inline_css/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_inline_css/formatting.html
@@ -7085,7 +7085,6 @@ Invalid use of @':
<tr><td></td><td class="printindex-index-entry index-entry-level-1"
style="vertical-align: top;padding-left: 1.5em"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section" style="vertical-align: top; padding-left:
1em"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry" style="vertical-align:
top"><code>f---ddd</code></td><td class="printindex-index-see-also"
style="vertical-align: top; padding-left: 1em"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry" style="vertical-align:
top"><code>f---ddd</code></td><td class="printindex-index-see-also"
style="vertical-align: top; padding-left: 1em"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td class="printindex-index-entry" style="vertical-align:
top"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-1"
style="vertical-align: top;padding-left:
1.5em"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"
style="vertical-align: top;padding-left: 3.0em"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section" style="vertical-align: top; padding-left:
1em"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry" style="vertical-align:
top"><code>f---ggg</code></td><td></td></tr>
@@ -7740,7 +7739,6 @@ Previous: <a href="#chapter" accesskey="p"
rel="prev">chapter</a>, Up: <a href="
<tr><td></td><td class="printindex-index-entry index-entry-level-1"
style="vertical-align: top;padding-left: 1.5em"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section" style="vertical-align: top; padding-left:
1em"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry" style="vertical-align:
top"><code>f---ddd</code></td><td class="printindex-index-see-also"
style="vertical-align: top; padding-left: 1em"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry" style="vertical-align:
top"><code>f---ddd</code></td><td class="printindex-index-see-also"
style="vertical-align: top; padding-left: 1em"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td class="printindex-index-entry" style="vertical-align:
top"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-1"
style="vertical-align: top;padding-left:
1.5em"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"
style="vertical-align: top;padding-left: 3.0em"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section" style="vertical-align: top; padding-left:
1em"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry" style="vertical-align:
top"><code>f---ggg</code></td><td></td></tr>
diff --git a/tp/tests/layout/res_parser/formatting_mathjax/formatting.html
b/tp/tests/layout/res_parser/formatting_mathjax/formatting.html
index 028c9c9cb9..2eba65a529 100644
--- a/tp/tests/layout/res_parser/formatting_mathjax/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_mathjax/formatting.html
@@ -7137,7 +7137,6 @@ Invalid use of @':
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
@@ -7769,7 +7768,6 @@ Previous: <a href="#chapter" accesskey="p"
rel="prev">chapter</a>, Up: <a href="
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git
a/tp/tests/layout/res_parser/formatting_numerical_entities/formatting.html
b/tp/tests/layout/res_parser/formatting_numerical_entities/formatting.html
index 633195976d..2bc7cc4c74 100644
--- a/tp/tests/layout/res_parser/formatting_numerical_entities/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_numerical_entities/formatting.html
@@ -7156,7 +7156,6 @@ Invalid use of @':
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
@@ -7811,7 +7810,6 @@ Previous: <a href="#chapter" accesskey="p"
rel="prev">chapter</a>, Up: <a href="
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git
a/tp/tests/layout/res_parser/formatting_sort_element_counts/formatting.html
b/tp/tests/layout/res_parser/formatting_sort_element_counts/formatting.html
index 206140c1b9..704b9fe5aa 100644
--- a/tp/tests/layout/res_parser/formatting_sort_element_counts/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_sort_element_counts/formatting.html
@@ -4921,7 +4921,6 @@ Invalid use of @':
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
@@ -5553,7 +5552,6 @@ Prev: <a href="#chapter" accesskey="p"
rel="prev">chapter</a>, Up : <a href="#T
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git a/tp/tests/layout/res_parser/formatting_texi2html/formatting.html
b/tp/tests/layout/res_parser/formatting_texi2html/formatting.html
index 5dd467b536..08796838a3 100644
--- a/tp/tests/layout/res_parser/formatting_texi2html/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_texi2html/formatting.html
@@ -7135,7 +7135,6 @@ Invalid use of @':
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
@@ -7845,7 +7844,6 @@ Menu comment
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git a/tp/tests/layout/res_parser/formatting_texi2html_nodes/chapter.html
b/tp/tests/layout/res_parser/formatting_texi2html_nodes/chapter.html
index 880e9e30ba..987792dff3 100644
--- a/tp/tests/layout/res_parser/formatting_texi2html_nodes/chapter.html
+++ b/tp/tests/layout/res_parser/formatting_texi2html_nodes/chapter.html
@@ -4884,7 +4884,6 @@ Invalid use of @':
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git
a/tp/tests/layout/res_parser/formatting_texi2html_nodes/chapter2.html
b/tp/tests/layout/res_parser/formatting_texi2html_nodes/chapter2.html
index a35ac9362f..d3de27a709 100644
--- a/tp/tests/layout/res_parser/formatting_texi2html_nodes/chapter2.html
+++ b/tp/tests/layout/res_parser/formatting_texi2html_nodes/chapter2.html
@@ -1319,7 +1319,6 @@ th.sections-header-printindex {text-align:left;
padding-left: 1em}
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="chapter.html#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="chapter.html">1 chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="chapter.html#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="chapter.html">1 chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git a/tp/tests/layout/res_parser/formatting_weird_quotes/formatting.html
b/tp/tests/layout/res_parser/formatting_weird_quotes/formatting.html
index 39b2ddb534..d384c3334a 100644
--- a/tp/tests/layout/res_parser/formatting_weird_quotes/formatting.html
+++ b/tp/tests/layout/res_parser/formatting_weird_quotes/formatting.html
@@ -7156,7 +7156,6 @@ Invalid use of @':
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
@@ -7811,7 +7810,6 @@ Previous: <a href="#chapter" accesskey="p"
rel="prev">chapter</a>, Up: <a href="
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git a/tp/tests/tex_html/res_parser/formatting_singular/chapter.html
b/tp/tests/tex_html/res_parser/formatting_singular/chapter.html
index aeae92b6e6..39b945e41e 100644
--- a/tp/tests/tex_html/res_parser/formatting_singular/chapter.html
+++ b/tp/tests/tex_html/res_parser/formatting_singular/chapter.html
@@ -5314,7 +5314,6 @@ $">
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="#chapter">1 chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
diff --git a/tp/tests/tex_html/res_parser/formatting_singular/chapter2.html
b/tp/tests/tex_html/res_parser/formatting_singular/chapter2.html
index ca29641ed2..4a2182721d 100644
--- a/tp/tests/tex_html/res_parser/formatting_singular/chapter2.html
+++ b/tp/tests/tex_html/res_parser/formatting_singular/chapter2.html
@@ -1344,7 +1344,6 @@ th.sections-header-printindex {text-align:left;
padding-left: 1em}
<tr><td></td><td class="printindex-index-entry index-entry-level-1"><a
href="chapter.html#index-f_002d_002d_002dbb-f_002d_002d_002dcc"><code>f---cc</code></a></td><td
class="printindex-index-section"><a href="chapter.html">1 chapter</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
<tr><td></td><td class="printindex-index-entry"><code>f---ddd</code></td><td
class="printindex-index-see-also"><em class="emph">See also</em>
f---ccc</td></tr>
-<tr><td></td><td
class="printindex-index-entry"><code>f---ddd</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry
index-entry-level-1"><code>f---eee</code></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry index-entry-level-2"><a
href="chapter.html#index-f_002d_002d_002dddd-f_002d_002d_002deee-ffff"><code>ffff</code></a></td><td
class="printindex-index-section"><a href="chapter.html">1 chapter</a></td></tr>
<tr><td></td><td
class="printindex-index-entry"><code>f---ggg</code></td><td></td></tr>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- branch master updated: * tp/Texinfo/Convert/HTML.pm (_convert_printindex_command), tp/Texinfo/XS/convert/convert_html.c (convert_printindex_command): convert subentries with seealso and seeentry too.,
Patrice Dumas <=