texinfo-commits
[Top][All Lists]
Advanced

[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>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]