texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch master updated: Space before brace special index command is a reg


From: Patrice Dumas
Subject: branch master updated: Space before brace special index command is a regular space if followed by text
Date: Sun, 04 Sep 2022 05:46:18 -0400

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 022e2d689b Space before brace special index command is a regular space 
if followed by text
022e2d689b is described below

commit 022e2d689b89ec94b1d8bc104bba048cf3eb026a
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Sun Sep 4 11:38:00 2022 +0200

    Space before brace special index command is a regular space if
    followed by text
    
    * tp/Texinfo/ParserNonXS.pm
    (_set_non_ignored_space_in_index_before_command, _end_line)
    (_parse_texi), tp/Texinfo/XS/parsetexi/element_types.txt,
    tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line),
    tp/Texinfo/XS/parsetexi/indices.c
    (set_non_ignored_space_in_index_before_command),
    tp/Texinfo/XS/parsetexi/parser.c (check_space_element)
    (process_remaining_on_line), tp/Texinfo/XS/parsetexi/separator.c
    (check_empty_expansion): use an internal temporary space
    type "spaces_before_brace_in_index" before index brace @-commands.
    After index command or subentry is done, call
    set_non_ignored_space_in_index_before_command to go through the
    index command or subentry contents and turn internal spaces
    before index brace @-commands (@sortas...) to
    regular text if followed by text after the brace command in
    set_non_ignored_space_in_index_before_command, or to
    "spaces_at_end" otherwise.
    Split check_space_element() out of check_empty_expansion().
    Do not process spaces before index brace @-commands is they are
    not in an index command nor in a @subentry.
---
 ChangeLog                                          | 26 +++++++
 tp/Texinfo/ParserNonXS.pm                          | 55 +++++++++++++-
 tp/Texinfo/XS/parsetexi/element_types.c            |  1 +
 tp/Texinfo/XS/parsetexi/element_types.h            |  1 +
 tp/Texinfo/XS/parsetexi/element_types.txt          |  1 +
 tp/Texinfo/XS/parsetexi/end_line.c                 | 12 +++
 tp/Texinfo/XS/parsetexi/indices.c                  | 34 +++++++++
 tp/Texinfo/XS/parsetexi/indices.h                  |  1 +
 tp/Texinfo/XS/parsetexi/parser.c                   | 43 ++++++++++-
 tp/Texinfo/XS/parsetexi/parser.h                   |  1 +
 tp/Texinfo/XS/parsetexi/separator.c                | 14 +---
 tp/t/results/indices/explicit_sort_key.pl          | 86 ++++++++--------------
 .../multiple_index_text_sortas_seeentry_seealso.pl | 25 +++----
 13 files changed, 213 insertions(+), 87 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index c975c99ce2..aacd91cf7f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,29 @@
+2022-09-04  Patrice Dumas  <pertusus@free.fr>
+
+       Space before brace special index command is a regular space if
+       followed by text
+
+       * tp/Texinfo/ParserNonXS.pm
+       (_set_non_ignored_space_in_index_before_command, _end_line)
+       (_parse_texi), tp/Texinfo/XS/parsetexi/element_types.txt,
+       tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line),
+       tp/Texinfo/XS/parsetexi/indices.c
+       (set_non_ignored_space_in_index_before_command),
+       tp/Texinfo/XS/parsetexi/parser.c (check_space_element)
+       (process_remaining_on_line), tp/Texinfo/XS/parsetexi/separator.c
+       (check_empty_expansion): use an internal temporary space
+       type "spaces_before_brace_in_index" before index brace @-commands.
+       After index command or subentry is done, call
+       set_non_ignored_space_in_index_before_command to go through the
+       index command or subentry contents and turn internal spaces
+       before index brace @-commands (@sortas...) to
+       regular text if followed by text after the brace command in
+       set_non_ignored_space_in_index_before_command, or to
+       "spaces_at_end" otherwise.
+       Split check_space_element() out of check_empty_expansion().
+       Do not process spaces before index brace @-commands is they are
+       not in an index command nor in a @subentry.
+
 2022-09-04  Gavin Smith  <gavinsmith0123@gmail.com>
 
        ttsl @var on def line for @set txicodevaristt
diff --git a/tp/Texinfo/ParserNonXS.pm b/tp/Texinfo/ParserNonXS.pm
index 682f7dc6aa..eab9b4b66e 100644
--- a/tp/Texinfo/ParserNonXS.pm
+++ b/tp/Texinfo/ParserNonXS.pm
@@ -2282,6 +2282,31 @@ sub _expand_macro_body($$$$) {
   return $result;
 }
 
+# turn spaces that are ignored before @-commands like @sortas{} and
+# @seeentry{} back to regular spaces if there is content after the @-command
+sub _set_non_ignored_space_in_index_before_command($)
+{
+  my $contents = shift;
+  my $pending_spaces_element = 0;
+  foreach my $content (@$contents) {
+    if ($content->{'type'}
+        and $content->{'type'} eq 'spaces_before_brace_in_index') {
+      # set to "spaces_at_end" in case there are only spaces after
+      $content->{'type'} = 'spaces_at_end';
+      $pending_spaces_element = $content;
+    } elsif ($pending_spaces_element
+             and not (($content->{'cmdname'}
+                       and $in_index_commands{$content->{'cmdname'}}
+                       and defined($brace_commands{$content->{'cmdname'}}))
+                      or ($content->{'type'}
+              and $content->{'type'} eq 'empty_spaces_after_close_brace'))
+             and (! _check_empty_expansion([$content]))) {
+      delete $pending_spaces_element->{'type'};
+      $pending_spaces_element = 0;
+    }
+  }
+}
+
 # each time a new line appeared, a container is opened to hold the text
 # consisting only of spaces.  This container is removed here, typically
 # this is called when non-space happens on a line.
@@ -3439,6 +3464,18 @@ sub _end_line($$$)
                              undef, $source_info);
           $current->{'type'} = 'index_entry_command';
         }
+        # if there is a brace command interrupting an index or subentry
+        # command, replace the internal spaces_before_brace_in_index
+        # text type with its final type depending on whether there is
+        # text after the brace command.
+        if (_is_index_element($self, $current)) {
+          if (defined($current->{'extra'}->{'sortas'})
+              or defined($current->{'extra'}->{'seealso'})
+              or defined($current->{'extra'}->{'seeentry'})) {
+            _set_non_ignored_space_in_index_before_command(
+                           $current->{'args'}->[0]->{'contents'});
+          }
+        }
       }
     }
     $current = $current->{'parent'};
@@ -4554,15 +4591,27 @@ sub _parse_texi($$$)
         if ($in_index_commands{$command}
             and $current->{'contents'}
             and $current->{'contents'}->[-1]
-            and $current->{'contents'}->[-1]->{'text'}) {
+            and $current->{'contents'}->[-1]->{'text'}
+            # it is important to check if in an index command, as otherwise
+            # the internal space type is not processed and remains as is in
+            # the final tree.
+            and _is_index_element($self, $current->{'parent'})) {
           $current->{'contents'}->[-1]->{'text'} =~ s/(\s+)$//;
+          # an internal and temporary space type that is converted to
+          # a normal space without type if followed by text or a
+          # "spaces_at_end" if followed by spaces only when the
+          # index or subentry command is done.
+          my $space_type = 'spaces_before_brace_in_index';
+          if ($command eq 'subentry') {
+            $space_type = 'spaces_at_end';
+          }
           if ($1 ne '') {
             if ($current->{'contents'}->[-1]->{'text'} eq '') {
               $current->{'contents'}->[-1]->{'text'} = $1;
-              $current->{'contents'}->[-1]->{'type'} = 'spaces_at_end';
+              $current->{'contents'}->[-1]->{'type'} = $space_type;
             } else {
               my $new_spaces = { 'text' => $1, 'parent' => $current,
-                'type' => 'spaces_at_end' };
+                'type' => $space_type };
               push @{$current->{'contents'}}, $new_spaces;
             }
           }
diff --git a/tp/Texinfo/XS/parsetexi/element_types.c 
b/tp/Texinfo/XS/parsetexi/element_types.c
index 4f8e815844..e521bcce42 100644
--- a/tp/Texinfo/XS/parsetexi/element_types.c
+++ b/tp/Texinfo/XS/parsetexi/element_types.c
@@ -12,6 +12,7 @@ char *element_type_names[] = {
 "empty_line_after_command",
 "empty_spaces_after_command",
 "spaces_at_end",
+"spaces_before_brace_in_index",
 "empty_space_at_end_def_bracketed",
 "space_at_end_block_command",
 "empty_spaces_before_argument",
diff --git a/tp/Texinfo/XS/parsetexi/element_types.h 
b/tp/Texinfo/XS/parsetexi/element_types.h
index 161ec821c2..85209970a2 100644
--- a/tp/Texinfo/XS/parsetexi/element_types.h
+++ b/tp/Texinfo/XS/parsetexi/element_types.h
@@ -15,6 +15,7 @@ ET_last_raw_newline,
 ET_empty_line_after_command,
 ET_empty_spaces_after_command,
 ET_spaces_at_end,
+ET_spaces_before_brace_in_index,
 ET_empty_space_at_end_def_bracketed,
 ET_space_at_end_block_command,
 ET_empty_spaces_before_argument,
diff --git a/tp/Texinfo/XS/parsetexi/element_types.txt 
b/tp/Texinfo/XS/parsetexi/element_types.txt
index 45c465b74a..b33e8359ce 100644
--- a/tp/Texinfo/XS/parsetexi/element_types.txt
+++ b/tp/Texinfo/XS/parsetexi/element_types.txt
@@ -30,6 +30,7 @@ last_raw_newline
 empty_line_after_command
 empty_spaces_after_command
 spaces_at_end
+spaces_before_brace_in_index
 empty_space_at_end_def_bracketed
 space_at_end_block_command
 empty_spaces_before_argument
diff --git a/tp/Texinfo/XS/parsetexi/end_line.c 
b/tp/Texinfo/XS/parsetexi/end_line.c
index c6c09bbdc5..1b4578482b 100644
--- a/tp/Texinfo/XS/parsetexi/end_line.c
+++ b/tp/Texinfo/XS/parsetexi/end_line.c
@@ -1780,6 +1780,18 @@ end_line_misc_line (ELEMENT *current)
                                  current->args.list[0]);
               current->type = ET_index_entry_command;
             }
+          /* if there is a brace command interrupting an index or subentry
+             command, replace the internal spaces_before_brace_in_index
+             text type with its final type depending on whether there is
+             text after the brace command. */
+          if ((command_flags(current) & CF_index_entry_command
+                || current->cmd == CM_subentry))
+            {
+              if (lookup_extra (current, "sortas")
+                   || lookup_extra (current, "seealso")
+                   || lookup_extra (current, "seeentry"))
+                
set_non_ignored_space_in_index_before_command(current->args.list[0]);
+            }
         }
     }
 
diff --git a/tp/Texinfo/XS/parsetexi/indices.c 
b/tp/Texinfo/XS/parsetexi/indices.c
index 6e86a164f3..df43803ddf 100644
--- a/tp/Texinfo/XS/parsetexi/indices.c
+++ b/tp/Texinfo/XS/parsetexi/indices.c
@@ -325,6 +325,40 @@ enter_index_entry (enum command_id index_type_command,
     line_warn ("entry for index `%s' outside of any node", idx->name);
 }
 
+/* turn spaces that are ignored before @-commands like @sortas{} and
+   @seeentry{} back to regular spaces if there is content after the @-command
+ */
+void
+set_non_ignored_space_in_index_before_command (ELEMENT *content)
+{
+  ELEMENT *e;
+  ELEMENT *pending_spaces_element = 0;
+  int i;
+  for (i = 0; i < content->contents.number; i++)
+    {
+      /* could also be, but it does not seems to be needed here:
+         e = contents_child_by_index (content, i); */
+      e = content->contents.list[i];
+      if (e->type == ET_spaces_before_brace_in_index)
+        {
+          pending_spaces_element = e;
+          /* set to "spaces_at_end" in case there are only spaces after */
+          e->type = ET_spaces_at_end;
+        }
+      else if (pending_spaces_element
+                && ! (e->cmd == CM_sortas
+                       || e->cmd == CM_seeentry
+                       || e->cmd == CM_seealso
+                       || e->type == ET_empty_spaces_after_close_brace)
+                && (! check_space_element(e)))
+        {
+          pending_spaces_element->type = ET_NONE;
+          pending_spaces_element = 0;
+        }
+    }
+}
+
+
 
 INDEX *
 ultimate_index (INDEX *index)
diff --git a/tp/Texinfo/XS/parsetexi/indices.h 
b/tp/Texinfo/XS/parsetexi/indices.h
index 043042d3e2..dc17890f39 100644
--- a/tp/Texinfo/XS/parsetexi/indices.h
+++ b/tp/Texinfo/XS/parsetexi/indices.h
@@ -16,4 +16,5 @@ void enter_index_entry (enum command_id index_type_command,
                    ELEMENT *content);
 INDEX *ultimate_index (INDEX *index);
 void wipe_indices (void);
+void set_non_ignored_space_in_index_before_command (ELEMENT *content);
 #endif
diff --git a/tp/Texinfo/XS/parsetexi/parser.c b/tp/Texinfo/XS/parsetexi/parser.c
index 8c79b7a09d..236d3a5d79 100644
--- a/tp/Texinfo/XS/parsetexi/parser.c
+++ b/tp/Texinfo/XS/parsetexi/parser.c
@@ -87,6 +87,29 @@ element_type_name (ELEMENT *e)
   return element_type_names[(e)->type];
 }
 
+/* Return 1 if the element expansion is all whitespace */
+int
+check_space_element (ELEMENT *e)
+{
+  if (!(
+          e->cmd == CM_SPACE
+        || e->cmd == CM_TAB
+        || e->cmd == CM_NEWLINE
+        || e->cmd == CM_c
+        || e->cmd == CM_comment
+        || e->cmd == CM_COLON
+        || e->type == ET_empty_spaces_before_argument
+        || e->type == ET_spaces_at_end
+        || (!e->cmd && !e->type && e->text.end == 0)
+        || (e->text.end > 0
+            && !*(e->text.text + strspn (e->text.text, whitespace_chars)))
+     ))
+    {
+      return 0;
+    }
+  return 1;
+}
+
 
 
 /* Current node, section and part. */
@@ -1785,9 +1808,25 @@ value_invalid:
            || cmd == CM_seealso
            || cmd == CM_subentry)
           && current->contents.number > 0
-          && last_contents_child(current)->text.end > 0)
+          && last_contents_child(current)->text.end > 0
+       /* it is important to check if in an index command, as otherwise
+          the internal space type is not processed and remains as is in
+          the final tree. */
+          && (command_flags(current->parent) & CF_index_entry_command
+               || current->parent->cmd == CM_subentry))
         {
-          isolate_trailing_space (current, ET_spaces_at_end);
+          if (cmd == CM_subentry)
+            {
+              isolate_trailing_space (current, ET_spaces_at_end);
+            }
+          else
+           /* an internal and temporary space type that is converted to
+              a normal space without type if followed by text or a
+              "spaces_at_end" if followed by spaces only when the
+              index or subentry command is done. */
+            {
+              isolate_trailing_space (current, 
ET_spaces_before_brace_in_index);
+            }
         }
 
       if (cmd == CM_item && item_line_parent (current))
diff --git a/tp/Texinfo/XS/parsetexi/parser.h b/tp/Texinfo/XS/parsetexi/parser.h
index 186e31f7fa..be6b05506e 100644
--- a/tp/Texinfo/XS/parsetexi/parser.h
+++ b/tp/Texinfo/XS/parsetexi/parser.h
@@ -169,6 +169,7 @@ int is_end_current_command (ELEMENT *current, char **line,
 void set_documentlanguage (char *);
 void set_accept_internalvalue (void);
 char *element_type_name (ELEMENT *e);
+int check_space_element (ELEMENT *e);
 
 /* Return values */
 #define GET_A_NEW_LINE 0
diff --git a/tp/Texinfo/XS/parsetexi/separator.c 
b/tp/Texinfo/XS/parsetexi/separator.c
index e47866ce20..35a4e5f3cd 100644
--- a/tp/Texinfo/XS/parsetexi/separator.c
+++ b/tp/Texinfo/XS/parsetexi/separator.c
@@ -215,19 +215,7 @@ check_empty_expansion (ELEMENT *e)
   for (i = 0; i < e->contents.number; i++)
     {
       ELEMENT *f = e->contents.list[i];
-      if (!(
-               f->cmd == CM_SPACE
-            || f->cmd == CM_TAB
-            || f->cmd == CM_NEWLINE
-            || f->cmd == CM_c
-            || f->cmd == CM_comment
-            || f->cmd == CM_COLON
-            || f->type == ET_empty_spaces_before_argument
-            || f->type == ET_spaces_at_end
-            || (!f->cmd && !f->type && f->text.end == 0)
-            || (f->text.end > 0
-                && !*(f->text.text + strspn (f->text.text, whitespace_chars)))
-         ))
+      if (!check_space_element(f))
         {
           return 0;
         }
diff --git a/tp/t/results/indices/explicit_sort_key.pl 
b/tp/t/results/indices/explicit_sort_key.pl
index e6d1a128d2..4da7390b5a 100644
--- a/tp/t/results/indices/explicit_sort_key.pl
+++ b/tp/t/results/indices/explicit_sort_key.pl
@@ -370,12 +370,7 @@ $result_trees{'explicit_sort_key'} = {
                       'contents' => [
                         {
                           'parent' => {},
-                          'text' => 'aaa'
-                        },
-                        {
-                          'parent' => {},
-                          'text' => ' ',
-                          'type' => 'spaces_at_end'
+                          'text' => 'aaa '
                         },
                         {
                           'args' => [
@@ -456,12 +451,7 @@ $result_trees{'explicit_sort_key'} = {
           'contents' => [
             {
               'parent' => {},
-              'text' => 'in a reuglar para'
-            },
-            {
-              'parent' => {},
-              'text' => ' ',
-              'type' => 'spaces_at_end'
+              'text' => 'in a reuglar para '
             },
             {
               'args' => [
@@ -495,12 +485,7 @@ $result_trees{'explicit_sort_key'} = {
                   'contents' => [
                     {
                       'parent' => {},
-                      'text' => 'inside another'
-                    },
-                    {
-                      'parent' => {},
-                      'text' => ' ',
-                      'type' => 'spaces_at_end'
+                      'text' => 'inside another '
                     },
                     {
                       'args' => [
@@ -610,12 +595,7 @@ $result_trees{'explicit_sort_key'} = {
                   'contents' => [
                     {
                       'parent' => {},
-                      'text' => 'and cmd'
-                    },
-                    {
-                      'parent' => {},
-                      'text' => ' ',
-                      'type' => 'spaces_at_end'
+                      'text' => 'and cmd '
                     },
                     {
                       'args' => [
@@ -777,10 +757,9 @@ 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[5]{'extra'}{'index
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[5]{'extra'}{'index_entry'}{'node'}
 = $result_trees{'explicit_sort_key'}{'contents'}[3];
 $result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[5]{'parent'} = 
$result_trees{'explicit_sort_key'}{'contents'}[3];
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1];
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0]{'contents'}[0]{'args'}[0];
-$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[2]{'args'}[0];
-$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[2]{'args'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[2];
-$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0]{'contents'}[0]{'args'}[0];
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0]{'contents'}[0];
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0];
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'args'}[0]{'parent'}
 = $result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6];
@@ -791,19 +770,17 @@ 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'extra'}{'index
 $result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[6]{'parent'} = 
$result_trees{'explicit_sort_key'}{'contents'}[3];
 $result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[7]{'parent'} = 
$result_trees{'explicit_sort_key'}{'contents'}[3];
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[0]{'parent'}
 = $result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8];
+$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[1]{'args'}[0];
+$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[1];
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[1]{'parent'}
 = $result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8];
-$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[2]{'args'}[0];
-$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[2]{'args'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[2];
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[2]{'parent'}
 = $result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8];
+$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[3]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[3]{'args'}[0];
+$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[3]{'args'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[3]{'args'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[3]{'args'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[3]{'args'}[0]{'contents'}[1];
+$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[3]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[3]{'args'}[0];
+$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[3]{'args'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[3];
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[3]{'parent'}
 = $result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8];
-$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[4]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[4]{'args'}[0];
-$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[4]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[4]{'args'}[0];
-$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[4]{'args'}[0]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[4]{'args'}[0]{'contents'}[2]{'args'}[0];
-$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[4]{'args'}[0]{'contents'}[2]{'args'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[4]{'args'}[0]{'contents'}[2];
-$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[4]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[4]{'args'}[0];
-$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[4]{'args'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[4];
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[4]{'parent'}
 = $result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8];
-$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'contents'}[5]{'parent'}
 = $result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8];
 $result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[8]{'parent'} = 
$result_trees{'explicit_sort_key'}{'contents'}[3];
 $result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[9]{'parent'} = 
$result_trees{'explicit_sort_key'}{'contents'}[3];
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[0]{'args'}[0];
@@ -814,10 +791,9 @@ 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[0]
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[0]{'parent'}
 = $result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10];
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[1]{'parent'}
 = $result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10];
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[2]{'args'}[0];
+$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[2]{'args'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[2]{'args'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[2]{'args'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[2]{'args'}[0]{'contents'}[1];
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[2]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[2]{'args'}[0];
-$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[2]{'args'}[0]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[2]{'args'}[0]{'contents'}[2]{'args'}[0];
-$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[2]{'args'}[0]{'contents'}[2]{'args'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[2]{'args'}[0]{'contents'}[2];
-$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[2]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[2]{'args'}[0];
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[2]{'args'}[0]{'parent'}
 = 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[2];
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[2]{'parent'}
 = $result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10];
 
$result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10]{'contents'}[3]{'parent'}
 = $result_trees{'explicit_sort_key'}{'contents'}[3]{'contents'}[10];
@@ -855,10 +831,10 @@ $result_texts{'explicit_sort_key'} = '
 
 
 
-in a reuglar para. inside another.
+in a reuglar para . inside another .
 
 .
-and cmd.
+and cmd .
 
 ';
 
@@ -1031,7 +1007,7 @@ $result_indices_sort_strings{'explicit_sort_key'} = {
   'SK' => [
     '0',
     'A',
-    'aaa',
+    'aaa ',
     'B'
   ]
 };
@@ -1046,16 +1022,16 @@ File: ,  Node: Top,  Next: node,  Up: (dir)
 
 File: ,  Node: node,  Prev: Top
 
-in a reuglar para.  ‘inside another’.
+in a reuglar para .  ‘inside another ’.
 
-   .  <and cmd>.
+   .  <and cmd >.
 
 [index]
 * Menu:
 
 * zero sort key:                         node.                  (line 3)
 * bbbbbbb (first):                       node.                  (line 3)
-* aaa:                                   node.                  (line 3)
+* aaa :                                  node.                  (line 3)
 * aaaaaaa (second):                      node.                  (line 3)
 
 
@@ -1073,15 +1049,15 @@ End:
 ';
 
 
-$result_converted{'plaintext'}->{'explicit_sort_key'} = 'in a reuglar para.  
‘inside another’.
+$result_converted{'plaintext'}->{'explicit_sort_key'} = 'in a reuglar para .  
‘inside another ’.
 
-   .  <and cmd>.
+   .  <and cmd >.
 
 * Menu:
 
 * zero sort key:                         node.                  (line 0)
 * bbbbbbb (first):                       node.                  (line 0)
-* aaa:                                   node.                  (line 0)
+* aaa :                                  node.                  (line 0)
 * aaaaaaa (second):                      node.                  (line 0)
 
 ';
@@ -1104,12 +1080,12 @@ $result_converted{'html_text'}->{'explicit_sort_key'} = 
'<div class="top-level-e
 <a class="index-entry-id" id="index-bbbbbbb-_0028first_0029"></a>
 <a class="index-entry-id" id="index-aaaaaaa-_0028second_0029"></a>
 <a class="index-entry-id" id="index-zero-sort-key"></a>
-<a class="index-entry-id" id="index-aaa"></a>
+<a class="index-entry-id" id="index-aaa-"></a>
 
-<p>in a reuglar para. <code class="code">inside another</code>.
+<p>in a reuglar para . <code class="code">inside another </code>.
 </p>
 <p>.
-<a class="url" href="and%20cmd">and cmd</a>.
+<a class="url" href="and%20cmd%20">and cmd </a>.
 </p>
 <div class="printindex SK-printindex">
 <table class="SK-letters-header-printindex"><tr><th>Jump to: &nbsp; 
</th><td><a class="summary-letter-printindex" 
href="#t_i_SK_symbol-1"><b>0</b></a>
@@ -1128,7 +1104,7 @@ $result_converted{'html_text'}->{'explicit_sort_key'} = 
'<div class="top-level-e
 <tr><td colspan="4"> <hr></td></tr>
 <tr><th id="t_i_SK_letter-A">A</th><td></td><td></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-bbbbbbb-_0028first_0029">bbbbbbb 
(first)</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#node">node</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a href="#index-aaa"><b 
class="b">aaa</b></a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#node">node</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a href="#index-aaa-"><b 
class="b">aaa </b></a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#node">node</a></td></tr>
 <tr><td colspan="4"> <hr></td></tr>
 <tr><th id="t_i_SK_letter-B">B</th><td></td><td></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-aaaaaaa-_0028second_0029">aaaaaaa 
(second)</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#node">node</a></td></tr>
@@ -1197,12 +1173,12 @@ $result_converted{'latex'}->{'explicit_sort_key'} = 
'\\documentclass{book}
 \\index[SK]{A@bbbbbbb (first)}%
 \\index[SK]{B@aaaaaaa (second)}%
 \\index[SK]{0@zero sort key}%
-\\index[SK]{\\textbf{aaa}}%
+\\index[SK]{\\textbf{aaa }}%
 
-in a reuglar para. \\texttt{inside another}.
+in a reuglar para . \\texttt{inside another }.
 
 .
-\\url{and cmd}.
+\\url{and cmd }.
 
 \\printindex[SK]
 \\end{document}
diff --git 
a/tp/t/results/indices/multiple_index_text_sortas_seeentry_seealso.pl 
b/tp/t/results/indices/multiple_index_text_sortas_seeentry_seealso.pl
index a4af3c0bb0..c609a7f77d 100644
--- a/tp/t/results/indices/multiple_index_text_sortas_seeentry_seealso.pl
+++ b/tp/t/results/indices/multiple_index_text_sortas_seeentry_seealso.pl
@@ -165,8 +165,7 @@ 
$result_trees{'multiple_index_text_sortas_seeentry_seealso'} = {
                 },
                 {
                   'parent' => {},
-                  'text' => ' ',
-                  'type' => 'spaces_at_end'
+                  'text' => ' '
                 },
                 {
                   'args' => [
@@ -201,8 +200,7 @@ 
$result_trees{'multiple_index_text_sortas_seeentry_seealso'} = {
                 },
                 {
                   'parent' => {},
-                  'text' => ' ',
-                  'type' => 'spaces_at_end'
+                  'text' => ' '
                 },
                 {
                   'args' => [
@@ -308,8 +306,7 @@ 
$result_trees{'multiple_index_text_sortas_seeentry_seealso'} = {
                 },
                 {
                   'parent' => {},
-                  'text' => ' ',
-                  'type' => 'spaces_at_end'
+                  'text' => ' '
                 },
                 {
                   'args' => [
@@ -619,8 +616,8 @@ 
$result_indices_sort_strings{'multiple_index_text_sortas_seeentry_seealso'} = {
 $result_converted{'docbook'}->{'multiple_index_text_sortas_seeentry_seealso'} 
= '<chapter label="1" id="chapter-index">
 <title>Index</title>
 
-<indexterm role="cp"><primary>aaacontinueaagain</primary><see>other 
second</see><seealso>toto</seealso></indexterm>
-<indexterm role="cp"><primary>othersecond</primary></indexterm>
+<indexterm role="cp"><primary>aaa continue aagain</primary><see>other 
second</see><seealso>toto</seealso></indexterm>
+<indexterm role="cp"><primary>other second</primary></indexterm>
 
 <index role="cp"></index>
 </chapter>
@@ -645,7 +642,7 @@ File: ,  Node: chapter index,  Prev: Top,  Up: Top
 [index]
 * Menu:
 
-* othersecond:                           chapter index.         (line 6)
+* other second:                          chapter index.         (line 6)
 
 
 
@@ -667,7 +664,7 @@ 
$result_converted{'plaintext'}->{'multiple_index_text_sortas_seeentry_seealso'}
 
 * Menu:
 
-* othersecond:                           chapter index.         (line 3)
+* other second:                          chapter index.         (line 3)
 
 ';
 
@@ -689,14 +686,14 @@ 
$result_converted{'html_text'}->{'multiple_index_text_sortas_seeentry_seealso'}
 </div>
 <h2 class="chapter" id="Index">1 Index</h2>
 
-<a class="index-entry-id" id="index-othersecond"></a>
+<a class="index-entry-id" id="index-other-second"></a>
 
 <div class="printindex cp-printindex">
 <table class="cp-entries-printindex" border="0">
 <tr><td></td><th class="entries-header-printindex">Index 
Entry</th><td>&nbsp;</td><th class="sections-header-printindex"> 
Section</th></tr>
 <tr><td colspan="4"> <hr></td></tr>
 <tr><th id="t_i_cp_letter-O">O</th><td></td><td></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-othersecond">othersecond</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#chapter-index">chapter 
index</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-other-second">other second</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#chapter-index">chapter 
index</a></td></tr>
 <tr><td colspan="4"> <hr></td></tr>
 </table>
 </div>
@@ -752,8 +749,8 @@ 
$result_converted{'latex'}->{'multiple_index_text_sortas_seeentry_seealso'} = '\
 \\chapter{{Index}}
 \\label{anchor:chapter-index}%
 
-\\index[cp]{A---S@aaacontinueaagain|see{other second}}%
-\\index[cp]{OO@othersecond}%
+\\index[cp]{A---S@aaa continue aagain|see{other second}}%
+\\index[cp]{OO@other second}%
 
 \\printindex[cp]
 \\end{document}



reply via email to

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