[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:
</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> </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> </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> </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> </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> </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> </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> </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}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- branch master updated: Space before brace special index command is a regular space if followed by text,
Patrice Dumas <=