texinfo-commits
[Top][All Lists]
Advanced

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

branch master updated: Protect node names with comma in node pointers


From: Patrice Dumas
Subject: branch master updated: Protect node names with comma in node pointers
Date: Tue, 16 Aug 2022 07:02:48 -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 bb47bd3481 Protect node names with comma in node pointers
bb47bd3481 is described below

commit bb47bd348168bf09fa9b35aa6da914abd88e34c8
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Tue Aug 16 13:02:37 2022 +0200

    Protect node names with comma in node pointers
    
    * tp/Texinfo/Convert/Info.pm (format_node): protect node names
    with comma in node pointers, and warn about node name containing
    a comma only for external nodes, internal nodes should have been
    warned when defined with @node.
---
 ChangeLog                                          |   9 +
 tp/Texinfo/Convert/Info.pm                         |  22 +-
 tp/t/input_files/nodequote.texi                    |   4 +-
 .../formats_encodings/at_commands_in_refs.pl       |  52 +--
 .../res_info/at_commands_in_refs_latin1.info       | Bin 7992 -> 8004 bytes
 .../res_info/at_commands_in_refs_utf8.info         | Bin 8400 -> 8404 bytes
 .../res_info/colons_in_index_entries_and_node.info | Bin 1568 -> 1572 bytes
 .../info_tests/invalid_node_name_no_warning.pl     |   8 +-
 .../info_tests/invalid_node_name_warning.pl        |   8 +-
 tp/t/results/info_tests/quote_node_names_info.pl   | 411 +++++++++++----------
 .../quote_node_names_info/res_info/nodequote.info  |   8 +-
 tp/t/results/morecoverage/formatting_fr.pl         |  10 +-
 tp/t/results/morecoverage/texi_formatting.pl       |  10 +-
 tp/t/results/plaintext_tests/quote_node_names.pl   | 411 +++++++++++----------
 .../sectioning/character_and_spaces_in_refs.pl     |   2 +-
 15 files changed, 505 insertions(+), 450 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 842797cf31..0440ff5caa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2022-08-15  Patrice Dumas  <pertusus@free.fr>
+
+       Protect node names with comma in node pointers
+
+       * tp/Texinfo/Convert/Info.pm (format_node): protect node names
+       with comma in node pointers, and warn about node name containing
+       a comma only for external nodes, internal nodes should have been
+       warned when defined with @node.
+
 2022-08-16  Gavin Smith  <gavinsmith0123@gmail.com>
 
        * doc/texinfo.texi (@xref): Raise level of subsections and
diff --git a/tp/Texinfo/Convert/Info.pm b/tp/Texinfo/Convert/Info.pm
index f143f4b4e5..8a45ba26c2 100644
--- a/tp/Texinfo/Convert/Info.pm
+++ b/tp/Texinfo/Convert/Info.pm
@@ -485,9 +485,29 @@ sub format_node($$)
                                           {'text' => ')'}]});
       }
       if ($node_direction->{'extra'}->{'node_content'}) {
+        my $pre_quote = '';
+        my $post_quote = '';
         my ($node_text, $byte_count) = $self->node_line($node_direction);
         $self->{'count_context'}->[-1]->{'bytes'} += $byte_count;
-        $result .= $node_text;
+        # Up may not strictly need protection, as it is the last direction,
+        # but we protect consistently
+        if ($node_text =~ /,/) {
+          if ($self->{'info_special_chars_warning'}
+              # warn only for external nodes, internal nodes should already
+              # trigger a warning when defined
+              and $node_direction->{'extra'}->{'manual_content'}) {
+            $self->line_warn($self, sprintf(__(
+                 "\@node %s name should not contain `,': %s"),
+                                           $direction, $node_text),
+                             $node->{'source_info'});
+          }
+          if ($self->{'info_special_chars_quote'}) {
+            $pre_quote = "\x{7f}";
+            $post_quote = $pre_quote;
+            $self->{'count_context'}->[-1]->{'bytes'} += 2;
+          }
+        }
+        $result .= $pre_quote . $node_text . $post_quote;
       }
     } elsif ($direction eq 'Up' and $node->{'extra'}->{'normalized'} eq 'Top') 
{
       # add an up direction for Top node
diff --git a/tp/t/input_files/nodequote.texi b/tp/t/input_files/nodequote.texi
index 624c1dfe3e..06967d8854 100644
--- a/tp/t/input_files/nodequote.texi
+++ b/tp/t/input_files/nodequote.texi
@@ -47,12 +47,12 @@ stuff here.
 @node blumpty.fump
 @chapter blumpty.fump
 
-@node normal node
+@node normal node, (man@comma{}u:a.l)direction, (man_ual)direct@comma{}ion, 
(man_ual)direct::i.on
 @chapter normal node
 
 @node @asis{secret,node}
 @chapter @asis{secret,node}
 
-@node top secret node, (man@comma{}u:a.l)direction, 
(man_ual)direct@comma{}ion, (man_ual)direct::i.on
+@node top secret node
 
 stuff here.
diff --git a/tp/t/results/formats_encodings/at_commands_in_refs.pl 
b/tp/t/results/formats_encodings/at_commands_in_refs.pl
index fd537c2e21..f800326073 100644
--- a/tp/t/results/formats_encodings/at_commands_in_refs.pl
+++ b/tp/t/results/formats_encodings/at_commands_in_refs.pl
@@ -23669,7 +23669,7 @@ File: ,  Node:     !
 ***************
 
 
-File: ,  Node: @ { } \\ #,  Next: LaTeX TeX • , © ... ...,  Prev:     !
+File: ,  Node: @ { } \\ #,  Next: LaTeX TeX • , © ... ...,  Prev:     !
 . . ? @,  Up: Top
 
 3 @ { } \\ #
@@ -23682,7 +23682,7 @@ File: ,  Node: LaTeX TeX • , © ... ...,  Next: ≡ 
error→ € ¡ ↦ −,
 *************************
 
 
-File: ,  Node: ≡ error→ € ¡ ↦ −,  Next: ≥ ≤ →,  Prev: LaTeX TeX • , © ... ..., 
 Up: Top
+File: ,  Node: ≡ error→ € ¡ ↦ −,  Next: ≥ ≤ →,  Prev: LaTeX TeX • , © ... 
...,  Up: Top
 
 5 ≡ error→ € ¡ ↦ −
 ******************
@@ -23883,30 +23883,30 @@ Node: { }873
 Node:     !
 . . ? @952
 Node: @ { } \\ #1057
-Node: LaTeX TeX • , © ... ...1177
-Node: ≡ error→ € ¡ ↦ −1344
-Node: ≥ ≤ →1505
-Node: ª º ★ £ ⊣ ¿ ®1635
-Node: ⇒ ° a b a sunny day å1782
-Node: Å æ œ Æ Œ ø Ø ß ł Ł Ð ð Þ þ1970
-Node: ä ẽ î â à é ç ē e̊ e̋ ę2193
-Node: ė ĕ e̲ ẹ ě j e͡e2404
-Node: ı Ḕ Ḉ2565
-Node: “ ” ‘ ’ „ ‚2692
-Node: « » « » ‹ ›2834
-Node: `` \'\' --- -- ` \'2978
-Node: AAA (fff) AAA BBB3120
-Node: CCC (rrr) CCC DDD3260
-Node: the someone <someone@somewher> <no_explain@there>3433
-Node: [f--ile1] [image src="f--ile.png" alt="alt" text="Image 
description\\"\\"\\\\."]3733
-Node:  @ {} . 4083
-Node: cite asis in @w b in r SC *str* t VAR dfn i4286
-Node: env code option samp command file C-x <ESC>4538
-Node: 8.27in4828
-Node: sansserif slanted4962
-Node: indicateurl5086
-Node: _{g}H 3^{rd}5212
-Node: <http://somewhere_aaa> text (url) ls5351
+Node: LaTeX TeX • , © ... ...1179
+Node: ≡ error→ € ¡ ↦ −1346
+Node: ≥ ≤ →1509
+Node: ª º ★ £ ⊣ ¿ ®1639
+Node: ⇒ ° a b a sunny day å1786
+Node: Å æ œ Æ Œ ø Ø ß ł Ł Ð ð Þ þ1974
+Node: ä ẽ î â à é ç ē e̊ e̋ ę2197
+Node: ė ĕ e̲ ẹ ě j e͡e2408
+Node: ı Ḕ Ḉ2569
+Node: “ ” ‘ ’ „ ‚2696
+Node: « » « » ‹ ›2838
+Node: `` \'\' --- -- ` \'2982
+Node: AAA (fff) AAA BBB3124
+Node: CCC (rrr) CCC DDD3264
+Node: the someone <someone@somewher> <no_explain@there>3437
+Node: [f--ile1] [image src="f--ile.png" alt="alt" text="Image 
description\\"\\"\\\\."]3737
+Node:  @ {} . 4087
+Node: cite asis in @w b in r SC *str* t VAR dfn i4290
+Node: env code option samp command file C-x <ESC>4542
+Node: 8.27in4832
+Node: sansserif slanted4966
+Node: indicateurl5090
+Node: _{g}H 3^{rd}5216
+Node: <http://somewhere_aaa> text (url) ls5355
 
 End Tag Table
 
diff --git 
a/tp/t/results/formats_encodings/at_commands_in_refs_latin1/res_info/at_commands_in_refs_latin1.info
 
b/tp/t/results/formats_encodings/at_commands_in_refs_latin1/res_info/at_commands_in_refs_latin1.info
index 969c80ee4a..005812a450 100644
Binary files 
a/tp/t/results/formats_encodings/at_commands_in_refs_latin1/res_info/at_commands_in_refs_latin1.info
 and 
b/tp/t/results/formats_encodings/at_commands_in_refs_latin1/res_info/at_commands_in_refs_latin1.info
 differ
diff --git 
a/tp/t/results/formats_encodings/at_commands_in_refs_utf8/res_info/at_commands_in_refs_utf8.info
 
b/tp/t/results/formats_encodings/at_commands_in_refs_utf8/res_info/at_commands_in_refs_utf8.info
index 174cd97862..c4ca3a91bc 100644
Binary files 
a/tp/t/results/formats_encodings/at_commands_in_refs_utf8/res_info/at_commands_in_refs_utf8.info
 and 
b/tp/t/results/formats_encodings/at_commands_in_refs_utf8/res_info/at_commands_in_refs_utf8.info
 differ
diff --git 
a/tp/t/results/info_tests/colons_in_index_entries_and_node/res_info/colons_in_index_entries_and_node.info
 
b/tp/t/results/info_tests/colons_in_index_entries_and_node/res_info/colons_in_index_entries_and_node.info
index 61f8200b29..63059f67ed 100644
Binary files 
a/tp/t/results/info_tests/colons_in_index_entries_and_node/res_info/colons_in_index_entries_and_node.info
 and 
b/tp/t/results/info_tests/colons_in_index_entries_and_node/res_info/colons_in_index_entries_and_node.info
 differ
diff --git a/tp/t/results/info_tests/invalid_node_name_no_warning.pl 
b/tp/t/results/info_tests/invalid_node_name_no_warning.pl
index a5295240b4..a72f0972bb 100644
--- a/tp/t/results/info_tests/invalid_node_name_no_warning.pl
+++ b/tp/t/results/info_tests/invalid_node_name_no_warning.pl
@@ -1113,13 +1113,13 @@ File: ,  Node: Top,  Next: nodename. a,  Up: (dir)
 * bidule:::
 
 
-File: ,  Node: nodename. a,  Next: node,comma,  Prev: Top,  Up: Top
+File: ,  Node: nodename. a,  Next: node,comma,  Prev: Top,  Up: Top
 
 
 File: ,  Node: node,comma,  Next: bidule:,  Prev: nodename. a,  Up: Top
 
 
-File: ,  Node: bidule:,  Prev: node,comma,  Up: Top
+File: ,  Node: bidule:,  Prev: node,comma,  Up: Top
 
 *note truc:: nodename. a.  *note machin: node,comma.  *note
 bidule:::.
@@ -1128,8 +1128,8 @@ File: ,  Node: bidule:,  Prev: node,comma,  Up: Top
 Tag Table:
 Node: Top27
 Node: nodename. a151
-Node: node,comma222
-Node: bidule:299
+Node: node,comma224
+Node: bidule:301
 
 End Tag Table
 
diff --git a/tp/t/results/info_tests/invalid_node_name_warning.pl 
b/tp/t/results/info_tests/invalid_node_name_warning.pl
index 811947ce51..2c9ad1fea0 100644
--- a/tp/t/results/info_tests/invalid_node_name_warning.pl
+++ b/tp/t/results/info_tests/invalid_node_name_warning.pl
@@ -1113,13 +1113,13 @@ File: ,  Node: Top,  Next: nodename. a,  Up: (dir)
 * bidule:::
 
 
-File: ,  Node: nodename. a,  Next: node,comma,  Prev: Top,  Up: Top
+File: ,  Node: nodename. a,  Next: node,comma,  Prev: Top,  Up: Top
 
 
 File: ,  Node: node,comma,  Next: bidule:,  Prev: nodename. a,  Up: Top
 
 
-File: ,  Node: bidule:,  Prev: node,comma,  Up: Top
+File: ,  Node: bidule:,  Prev: node,comma,  Up: Top
 
 *note truc:: nodename. a.  *note machin: node,comma.  *note
 bidule:::.
@@ -1128,8 +1128,8 @@ File: ,  Node: bidule:,  Prev: node,comma,  Up: Top
 Tag Table:
 Node: Top27
 Node: nodename. a151
-Node: node,comma222
-Node: bidule:299
+Node: node,comma224
+Node: bidule:301
 
 End Tag Table
 
diff --git a/tp/t/results/info_tests/quote_node_names_info.pl 
b/tp/t/results/info_tests/quote_node_names_info.pl
index 2279d6a1d1..50dfb62e27 100644
--- a/tp/t/results/info_tests/quote_node_names_info.pl
+++ b/tp/t/results/info_tests/quote_node_names_info.pl
@@ -119,9 +119,124 @@ $result_trees{'quote_node_names_info'} = {
                           'text' => 'normal node'
                         }
                       ],
+                      'parent' => {},
+                      'type' => 'line_arg'
+                    },
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => '('
+                        },
+                        {
+                          'parent' => {},
+                          'text' => 'man'
+                        },
+                        {
+                          'args' => [
+                            {
+                              'contents' => [],
+                              'parent' => {},
+                              'type' => 'brace_command_arg'
+                            }
+                          ],
+                          'cmdname' => 'comma',
+                          'contents' => [],
+                          'parent' => {},
+                          'source_info' => {
+                            'file_name' => 'nodequote.texi',
+                            'line_nr' => 50,
+                            'macro' => ''
+                          }
+                        },
+                        {
+                          'parent' => {},
+                          'text' => 'u:a.l'
+                        },
+                        {
+                          'parent' => {},
+                          'text' => ')'
+                        },
+                        {
+                          'parent' => {},
+                          'text' => 'direction'
+                        }
+                      ],
+                      'extra' => {
+                        'spaces_before_argument' => ' '
+                      },
+                      'parent' => {},
+                      'type' => 'line_arg'
+                    },
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => '('
+                        },
+                        {
+                          'parent' => {},
+                          'text' => 'man_ual'
+                        },
+                        {
+                          'parent' => {},
+                          'text' => ')'
+                        },
+                        {
+                          'parent' => {},
+                          'text' => 'direct'
+                        },
+                        {
+                          'args' => [
+                            {
+                              'contents' => [],
+                              'parent' => {},
+                              'type' => 'brace_command_arg'
+                            }
+                          ],
+                          'cmdname' => 'comma',
+                          'contents' => [],
+                          'parent' => {},
+                          'source_info' => {
+                            'file_name' => 'nodequote.texi',
+                            'line_nr' => 50,
+                            'macro' => ''
+                          }
+                        },
+                        {
+                          'parent' => {},
+                          'text' => 'ion'
+                        }
+                      ],
+                      'extra' => {
+                        'spaces_before_argument' => ' '
+                      },
+                      'parent' => {},
+                      'type' => 'line_arg'
+                    },
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => '('
+                        },
+                        {
+                          'parent' => {},
+                          'text' => 'man_ual'
+                        },
+                        {
+                          'parent' => {},
+                          'text' => ')'
+                        },
+                        {
+                          'parent' => {},
+                          'text' => 'direct::i.on'
+                        }
+                      ],
                       'extra' => {
                         'spaces_after_argument' => '
-'
+',
+                        'spaces_before_argument' => ' '
                       },
                       'parent' => {},
                       'type' => 'line_arg'
@@ -139,6 +254,37 @@ $result_trees{'quote_node_names_info'} = {
                           {}
                         ],
                         'normalized' => 'normal-node'
+                      },
+                      {
+                        'manual_content' => [
+                          {},
+                          {},
+                          {}
+                        ],
+                        'node_content' => [
+                          {}
+                        ],
+                        'normalized' => 'direction'
+                      },
+                      {
+                        'manual_content' => [
+                          {}
+                        ],
+                        'node_content' => [
+                          {},
+                          {},
+                          {}
+                        ],
+                        'normalized' => 'direct_002cion'
+                      },
+                      {
+                        'manual_content' => [
+                          {}
+                        ],
+                        'node_content' => [
+                          {}
+                        ],
+                        'normalized' => 'direct_003a_003ai_002eon'
                       }
                     ],
                     'normalized' => 'normal-node',
@@ -2050,124 +2196,9 @@ $result_trees{'quote_node_names_info'} = {
               'text' => 'top secret node'
             }
           ],
-          'parent' => {},
-          'type' => 'line_arg'
-        },
-        {
-          'contents' => [
-            {
-              'parent' => {},
-              'text' => '('
-            },
-            {
-              'parent' => {},
-              'text' => 'man'
-            },
-            {
-              'args' => [
-                {
-                  'contents' => [],
-                  'parent' => {},
-                  'type' => 'brace_command_arg'
-                }
-              ],
-              'cmdname' => 'comma',
-              'contents' => [],
-              'parent' => {},
-              'source_info' => {
-                'file_name' => 'nodequote.texi',
-                'line_nr' => 56,
-                'macro' => ''
-              }
-            },
-            {
-              'parent' => {},
-              'text' => 'u:a.l'
-            },
-            {
-              'parent' => {},
-              'text' => ')'
-            },
-            {
-              'parent' => {},
-              'text' => 'direction'
-            }
-          ],
-          'extra' => {
-            'spaces_before_argument' => ' '
-          },
-          'parent' => {},
-          'type' => 'line_arg'
-        },
-        {
-          'contents' => [
-            {
-              'parent' => {},
-              'text' => '('
-            },
-            {
-              'parent' => {},
-              'text' => 'man_ual'
-            },
-            {
-              'parent' => {},
-              'text' => ')'
-            },
-            {
-              'parent' => {},
-              'text' => 'direct'
-            },
-            {
-              'args' => [
-                {
-                  'contents' => [],
-                  'parent' => {},
-                  'type' => 'brace_command_arg'
-                }
-              ],
-              'cmdname' => 'comma',
-              'contents' => [],
-              'parent' => {},
-              'source_info' => {
-                'file_name' => 'nodequote.texi',
-                'line_nr' => 56,
-                'macro' => ''
-              }
-            },
-            {
-              'parent' => {},
-              'text' => 'ion'
-            }
-          ],
-          'extra' => {
-            'spaces_before_argument' => ' '
-          },
-          'parent' => {},
-          'type' => 'line_arg'
-        },
-        {
-          'contents' => [
-            {
-              'parent' => {},
-              'text' => '('
-            },
-            {
-              'parent' => {},
-              'text' => 'man_ual'
-            },
-            {
-              'parent' => {},
-              'text' => ')'
-            },
-            {
-              'parent' => {},
-              'text' => 'direct::i.on'
-            }
-          ],
           'extra' => {
             'spaces_after_argument' => '
-',
-            'spaces_before_argument' => ' '
+'
           },
           'parent' => {},
           'type' => 'line_arg'
@@ -2203,37 +2234,6 @@ $result_trees{'quote_node_names_info'} = {
               {}
             ],
             'normalized' => 'top-secret-node'
-          },
-          {
-            'manual_content' => [
-              {},
-              {},
-              {}
-            ],
-            'node_content' => [
-              {}
-            ],
-            'normalized' => 'direction'
-          },
-          {
-            'manual_content' => [
-              {}
-            ],
-            'node_content' => [
-              {},
-              {},
-              {}
-            ],
-            'normalized' => 'direct_002cion'
-          },
-          {
-            'manual_content' => [
-              {}
-            ],
-            'node_content' => [
-              {}
-            ],
-            'normalized' => 'direct_003a_003ai_002eon'
           }
         ],
         'normalized' => 'top-secret-node',
@@ -2264,8 +2264,39 @@ 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}
 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'args'}[1]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0];
 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[0];
 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[0]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'};
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[1]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[2]{'args'}[0]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[2];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[2]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[3]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[4]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[5]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'};
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[0]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[1]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[2]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[3]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[4]{'args'}[0]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[4];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[4]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[5]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'};
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3]{'contents'}[0]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3]{'contents'}[1]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3]{'contents'}[2]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3]{'contents'}[3]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'};
 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'node_content'}[0]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[0]{'contents'}[0];
 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[0]{'node_content'}[0]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[0]{'contents'}[0];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[1]{'manual_content'}[0]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[1];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[1]{'manual_content'}[1]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[2];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[1]{'manual_content'}[2]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[3];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[1]{'node_content'}[0]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[5];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[2]{'manual_content'}[0]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[1];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[2]{'node_content'}[0]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[3];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[2]{'node_content'}[1]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[4];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[2]{'node_content'}[2]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[5];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[3]{'manual_content'}[0]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3]{'contents'}[1];
+$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[3]{'node_content'}[0]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3]{'contents'}[3];
 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'parent'}
 = $result_trees{'quote_node_names_info'};
 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'node_argument'}{'node_content'}[0]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0];
 
$result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[2]{'contents'}[1];
@@ -2571,42 +2602,11 @@ 
$result_trees{'quote_node_names_info'}{'contents'}[10]{'contents'}[0]{'parent'}
 $result_trees{'quote_node_names_info'}{'contents'}[10]{'parent'} = 
$result_trees{'quote_node_names_info'};
 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[0];
 $result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[0]{'parent'} = 
$result_trees{'quote_node_names_info'}{'contents'}[11];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1]{'contents'}[1]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1]{'contents'}[2]{'args'}[0]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1]{'contents'}[2];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1]{'contents'}[2]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1]{'contents'}[3]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1]{'contents'}[4]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1]{'contents'}[5]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1]{'parent'} = 
$result_trees{'quote_node_names_info'}{'contents'}[11];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2]{'contents'}[1]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2]{'contents'}[2]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2]{'contents'}[3]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2]{'contents'}[4]{'args'}[0]{'parent'}
 = 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2]{'contents'}[4];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2]{'contents'}[4]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2]{'contents'}[5]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2]{'parent'} = 
$result_trees{'quote_node_names_info'}{'contents'}[11];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[3]{'contents'}[0]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[3];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[3]{'contents'}[1]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[3];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[3]{'contents'}[2]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[3];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[3]{'contents'}[3]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[3];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[3]{'parent'} = 
$result_trees{'quote_node_names_info'}{'contents'}[11];
 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'contents'}[0]{'parent'} 
= $result_trees{'quote_node_names_info'}{'contents'}[11];
 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'quote_node_names_info'}{'contents'}[11]{'contents'}[1];
 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'contents'}[1]{'parent'} 
= $result_trees{'quote_node_names_info'}{'contents'}[11];
 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'extra'}{'node_content'}[0]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[0]{'contents'}[0];
 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'extra'}{'nodes_manuals'}[0]{'node_content'}[0]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[0]{'contents'}[0];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'extra'}{'nodes_manuals'}[1]{'manual_content'}[0]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1]{'contents'}[1];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'extra'}{'nodes_manuals'}[1]{'manual_content'}[1]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1]{'contents'}[2];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'extra'}{'nodes_manuals'}[1]{'manual_content'}[2]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1]{'contents'}[3];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'extra'}{'nodes_manuals'}[1]{'node_content'}[0]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[1]{'contents'}[5];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'extra'}{'nodes_manuals'}[2]{'manual_content'}[0]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2]{'contents'}[1];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'extra'}{'nodes_manuals'}[2]{'node_content'}[0]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2]{'contents'}[3];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'extra'}{'nodes_manuals'}[2]{'node_content'}[1]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2]{'contents'}[4];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'extra'}{'nodes_manuals'}[2]{'node_content'}[2]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[2]{'contents'}[5];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'extra'}{'nodes_manuals'}[3]{'manual_content'}[0]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[3]{'contents'}[1];
-$result_trees{'quote_node_names_info'}{'contents'}[11]{'extra'}{'nodes_manuals'}[3]{'node_content'}[0]
 = 
$result_trees{'quote_node_names_info'}{'contents'}[11]{'args'}[3]{'contents'}[3];
 $result_trees{'quote_node_names_info'}{'contents'}[11]{'parent'} = 
$result_trees{'quote_node_names_info'};
 
 $result_texis{'quote_node_names_info'} = '@node Top
@@ -2658,13 +2658,13 @@ stuff here.
 @node blumpty.fump
 @chapter blumpty.fump
 
-@node normal node
+@node normal node, (man@comma{}u:a.l)direction, (man_ual)direct@comma{}ion, 
(man_ual)direct::i.on
 @chapter normal node
 
 @node @asis{secret,node}
 @chapter @asis{secret,node}
 
-@node top secret node, (man@comma{}u:a.l)direction, 
(man_ual)direct@comma{}ion, (man_ual)direct::i.on
+@node top secret node
 
 stuff here.
 ';
@@ -2903,24 +2903,41 @@ $result_nodes{'quote_node_names_info'} = {
               },
               'structure' => {
                 'node_next' => {
-                  'cmdname' => 'node',
                   'extra' => {
-                    'associated_section' => {
-                      'cmdname' => 'chapter',
-                      'extra' => {},
-                      'structure' => {
-                        'section_number' => 4
+                    'manual_content' => [
+                      {
+                        'text' => 'man'
+                      },
+                      {
+                        'cmdname' => 'comma'
+                      },
+                      {
+                        'text' => 'u:a.l'
                       }
-                    },
-                    'normalized' => 'secret_002cnode'
-                  },
-                  'structure' => {
-                    'node_prev' => {},
-                    'node_up' => {}
+                    ],
+                    'normalized' => 'direction'
                   }
                 },
-                'node_prev' => {},
-                'node_up' => {}
+                'node_prev' => {
+                  'extra' => {
+                    'manual_content' => [
+                      {
+                        'text' => 'man_ual'
+                      }
+                    ],
+                    'normalized' => 'direct_002cion'
+                  }
+                },
+                'node_up' => {
+                  'extra' => {
+                    'manual_content' => [
+                      {
+                        'text' => 'man_ual'
+                      }
+                    ],
+                    'normalized' => 'direct_003a_003ai_002eon'
+                  }
+                }
               }
             },
             'node_prev' => {},
@@ -2934,10 +2951,6 @@ $result_nodes{'quote_node_names_info'} = {
     'node_next' => {}
   }
 };
-$result_nodes{'quote_node_names_info'}{'structure'}{'menu_child'}{'structure'}{'node_next'}{'structure'}{'node_next'}{'structure'}{'node_next'}{'structure'}{'node_prev'}
 = 
$result_nodes{'quote_node_names_info'}{'structure'}{'menu_child'}{'structure'}{'node_next'}{'structure'}{'node_next'};
-$result_nodes{'quote_node_names_info'}{'structure'}{'menu_child'}{'structure'}{'node_next'}{'structure'}{'node_next'}{'structure'}{'node_next'}{'structure'}{'node_up'}
 = $result_nodes{'quote_node_names_info'};
-$result_nodes{'quote_node_names_info'}{'structure'}{'menu_child'}{'structure'}{'node_next'}{'structure'}{'node_next'}{'structure'}{'node_prev'}
 = 
$result_nodes{'quote_node_names_info'}{'structure'}{'menu_child'}{'structure'}{'node_next'};
-$result_nodes{'quote_node_names_info'}{'structure'}{'menu_child'}{'structure'}{'node_next'}{'structure'}{'node_next'}{'structure'}{'node_up'}
 = $result_nodes{'quote_node_names_info'};
 
$result_nodes{'quote_node_names_info'}{'structure'}{'menu_child'}{'structure'}{'node_next'}{'structure'}{'node_prev'}
 = $result_nodes{'quote_node_names_info'}{'structure'}{'menu_child'};
 
$result_nodes{'quote_node_names_info'}{'structure'}{'menu_child'}{'structure'}{'node_next'}{'structure'}{'node_up'}
 = $result_nodes{'quote_node_names_info'};
 
$result_nodes{'quote_node_names_info'}{'structure'}{'menu_child'}{'structure'}{'node_prev'}
 = $result_nodes{'quote_node_names_info'};
diff --git 
a/tp/t/results/info_tests/quote_node_names_info/res_info/nodequote.info 
b/tp/t/results/info_tests/quote_node_names_info/res_info/nodequote.info
index 752ce2b467..69d4608336 100644
--- a/tp/t/results/info_tests/quote_node_names_info/res_info/nodequote.info
+++ b/tp/t/results/info_tests/quote_node_names_info/res_info/nodequote.info
@@ -56,7 +56,7 @@ File: nodequote.info,  Node: blumpty.fump,  Next: normal 
node,  Prev: blah:blah,
 **************
 
 
-File: nodequote.info,  Node: normal node,  Next: secret,node,  Prev: 
blumpty.fump,  Up: Top
+File: nodequote.info,  Node: normal node,  Next: (man,u:a.l)direction,  Prev: 
(man_ual)direct,ion,  Up: (man_ual)direct::i.on
 
 3 normal node
 *************
@@ -68,7 +68,7 @@ File: nodequote.info,  Node: secret,node,  Prev: normal 
node,  Up: Top
 *************
 
 
-File: nodequote.info,  Node: top secret node,  Next: (man,u:a.l)direction,  
Prev: (man_ual)direct,ion,  Up: (man_ual)direct::i.on
+File: nodequote.info,  Node: top secret node
 
 stuff here.
 
@@ -78,8 +78,8 @@ Node: Top55
 Node: blah:blah863
 Node: blumpty.fump986
 Node: normal node1110
-Node: secret,node1234
-Node: top secret node1339
+Node: secret,node1270
+Node: top secret node1375
 
 End Tag Table
 
diff --git a/tp/t/results/morecoverage/formatting_fr.pl 
b/tp/t/results/morecoverage/formatting_fr.pl
index 41a87c623a..9066e069d3 100644
--- a/tp/t/results/morecoverage/formatting_fr.pl
+++ b/tp/t/results/morecoverage/formatting_fr.pl
@@ -4799,7 +4799,7 @@ In detailmenu
 * subsubsection three---four----\'\'::
 
 
-File: formatting.info,  Node: subsection,  Up: s--ect,ion
+File: formatting.info,  Node: subsection,  Up: s--ect,ion
 
 1.1.1 subsection
 ----------------
@@ -4853,10 +4853,10 @@ Node: chapter1392
 Ref: chapter-Footnote-11626
 Node: s--ect,ion1646
 Node: subsection1849
-Ref: anchor2028
-Node: subsubsection ``simple-double--2028
-Node: subsubsection three---four----\'\'2232
-Node: chapter22406
+Ref: anchor2030
+Node: subsubsection ``simple-double--2030
+Node: subsubsection three---four----\'\'2234
+Node: chapter22408
 
 End Tag Table
 
diff --git a/tp/t/results/morecoverage/texi_formatting.pl 
b/tp/t/results/morecoverage/texi_formatting.pl
index d972cf6ddb..ae45932dbe 100644
--- a/tp/t/results/morecoverage/texi_formatting.pl
+++ b/tp/t/results/morecoverage/texi_formatting.pl
@@ -4799,7 +4799,7 @@ In detailmenu
 * subsubsection three---four----\'\'::
 
 
-File: formatting.info,  Node: subsection,  Up: s--ect,ion
+File: formatting.info,  Node: subsection,  Up: s--ect,ion
 
 1.1.1 subsection
 ----------------
@@ -4853,10 +4853,10 @@ Node: chapter1392
 Ref: chapter-Footnote-11626
 Node: s--ect,ion1646
 Node: subsection1849
-Ref: anchor2028
-Node: subsubsection ``simple-double--2028
-Node: subsubsection three---four----\'\'2232
-Node: chapter22406
+Ref: anchor2030
+Node: subsubsection ``simple-double--2030
+Node: subsubsection three---four----\'\'2234
+Node: chapter22408
 
 End Tag Table
 
diff --git a/tp/t/results/plaintext_tests/quote_node_names.pl 
b/tp/t/results/plaintext_tests/quote_node_names.pl
index 8009b4b1d6..9c1cf2f5e6 100644
--- a/tp/t/results/plaintext_tests/quote_node_names.pl
+++ b/tp/t/results/plaintext_tests/quote_node_names.pl
@@ -119,9 +119,124 @@ $result_trees{'quote_node_names'} = {
                           'text' => 'normal node'
                         }
                       ],
+                      'parent' => {},
+                      'type' => 'line_arg'
+                    },
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => '('
+                        },
+                        {
+                          'parent' => {},
+                          'text' => 'man'
+                        },
+                        {
+                          'args' => [
+                            {
+                              'contents' => [],
+                              'parent' => {},
+                              'type' => 'brace_command_arg'
+                            }
+                          ],
+                          'cmdname' => 'comma',
+                          'contents' => [],
+                          'parent' => {},
+                          'source_info' => {
+                            'file_name' => 'nodequote.texi',
+                            'line_nr' => 50,
+                            'macro' => ''
+                          }
+                        },
+                        {
+                          'parent' => {},
+                          'text' => 'u:a.l'
+                        },
+                        {
+                          'parent' => {},
+                          'text' => ')'
+                        },
+                        {
+                          'parent' => {},
+                          'text' => 'direction'
+                        }
+                      ],
+                      'extra' => {
+                        'spaces_before_argument' => ' '
+                      },
+                      'parent' => {},
+                      'type' => 'line_arg'
+                    },
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => '('
+                        },
+                        {
+                          'parent' => {},
+                          'text' => 'man_ual'
+                        },
+                        {
+                          'parent' => {},
+                          'text' => ')'
+                        },
+                        {
+                          'parent' => {},
+                          'text' => 'direct'
+                        },
+                        {
+                          'args' => [
+                            {
+                              'contents' => [],
+                              'parent' => {},
+                              'type' => 'brace_command_arg'
+                            }
+                          ],
+                          'cmdname' => 'comma',
+                          'contents' => [],
+                          'parent' => {},
+                          'source_info' => {
+                            'file_name' => 'nodequote.texi',
+                            'line_nr' => 50,
+                            'macro' => ''
+                          }
+                        },
+                        {
+                          'parent' => {},
+                          'text' => 'ion'
+                        }
+                      ],
+                      'extra' => {
+                        'spaces_before_argument' => ' '
+                      },
+                      'parent' => {},
+                      'type' => 'line_arg'
+                    },
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => '('
+                        },
+                        {
+                          'parent' => {},
+                          'text' => 'man_ual'
+                        },
+                        {
+                          'parent' => {},
+                          'text' => ')'
+                        },
+                        {
+                          'parent' => {},
+                          'text' => 'direct::i.on'
+                        }
+                      ],
                       'extra' => {
                         'spaces_after_argument' => '
-'
+',
+                        'spaces_before_argument' => ' '
                       },
                       'parent' => {},
                       'type' => 'line_arg'
@@ -139,6 +254,37 @@ $result_trees{'quote_node_names'} = {
                           {}
                         ],
                         'normalized' => 'normal-node'
+                      },
+                      {
+                        'manual_content' => [
+                          {},
+                          {},
+                          {}
+                        ],
+                        'node_content' => [
+                          {}
+                        ],
+                        'normalized' => 'direction'
+                      },
+                      {
+                        'manual_content' => [
+                          {}
+                        ],
+                        'node_content' => [
+                          {},
+                          {},
+                          {}
+                        ],
+                        'normalized' => 'direct_002cion'
+                      },
+                      {
+                        'manual_content' => [
+                          {}
+                        ],
+                        'node_content' => [
+                          {}
+                        ],
+                        'normalized' => 'direct_003a_003ai_002eon'
                       }
                     ],
                     'normalized' => 'normal-node',
@@ -2050,124 +2196,9 @@ $result_trees{'quote_node_names'} = {
               'text' => 'top secret node'
             }
           ],
-          'parent' => {},
-          'type' => 'line_arg'
-        },
-        {
-          'contents' => [
-            {
-              'parent' => {},
-              'text' => '('
-            },
-            {
-              'parent' => {},
-              'text' => 'man'
-            },
-            {
-              'args' => [
-                {
-                  'contents' => [],
-                  'parent' => {},
-                  'type' => 'brace_command_arg'
-                }
-              ],
-              'cmdname' => 'comma',
-              'contents' => [],
-              'parent' => {},
-              'source_info' => {
-                'file_name' => 'nodequote.texi',
-                'line_nr' => 56,
-                'macro' => ''
-              }
-            },
-            {
-              'parent' => {},
-              'text' => 'u:a.l'
-            },
-            {
-              'parent' => {},
-              'text' => ')'
-            },
-            {
-              'parent' => {},
-              'text' => 'direction'
-            }
-          ],
-          'extra' => {
-            'spaces_before_argument' => ' '
-          },
-          'parent' => {},
-          'type' => 'line_arg'
-        },
-        {
-          'contents' => [
-            {
-              'parent' => {},
-              'text' => '('
-            },
-            {
-              'parent' => {},
-              'text' => 'man_ual'
-            },
-            {
-              'parent' => {},
-              'text' => ')'
-            },
-            {
-              'parent' => {},
-              'text' => 'direct'
-            },
-            {
-              'args' => [
-                {
-                  'contents' => [],
-                  'parent' => {},
-                  'type' => 'brace_command_arg'
-                }
-              ],
-              'cmdname' => 'comma',
-              'contents' => [],
-              'parent' => {},
-              'source_info' => {
-                'file_name' => 'nodequote.texi',
-                'line_nr' => 56,
-                'macro' => ''
-              }
-            },
-            {
-              'parent' => {},
-              'text' => 'ion'
-            }
-          ],
-          'extra' => {
-            'spaces_before_argument' => ' '
-          },
-          'parent' => {},
-          'type' => 'line_arg'
-        },
-        {
-          'contents' => [
-            {
-              'parent' => {},
-              'text' => '('
-            },
-            {
-              'parent' => {},
-              'text' => 'man_ual'
-            },
-            {
-              'parent' => {},
-              'text' => ')'
-            },
-            {
-              'parent' => {},
-              'text' => 'direct::i.on'
-            }
-          ],
           'extra' => {
             'spaces_after_argument' => '
-',
-            'spaces_before_argument' => ' '
+'
           },
           'parent' => {},
           'type' => 'line_arg'
@@ -2203,37 +2234,6 @@ $result_trees{'quote_node_names'} = {
               {}
             ],
             'normalized' => 'top-secret-node'
-          },
-          {
-            'manual_content' => [
-              {},
-              {},
-              {}
-            ],
-            'node_content' => [
-              {}
-            ],
-            'normalized' => 'direction'
-          },
-          {
-            'manual_content' => [
-              {}
-            ],
-            'node_content' => [
-              {},
-              {},
-              {}
-            ],
-            'normalized' => 'direct_002cion'
-          },
-          {
-            'manual_content' => [
-              {}
-            ],
-            'node_content' => [
-              {}
-            ],
-            'normalized' => 'direct_003a_003ai_002eon'
           }
         ],
         'normalized' => 'top-secret-node',
@@ -2264,8 +2264,39 @@ 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'
 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'args'}[1]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0];
 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[0];
 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[0]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'};
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[1]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[2]{'args'}[0]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[2];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[2]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[3]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[4]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[5]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'};
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[0]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[1]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[2]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[3]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[4]{'args'}[0]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[4];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[4]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[5]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'};
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3]{'contents'}[0]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3]{'contents'}[1]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3]{'contents'}[2]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3]{'contents'}[3]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3]{'parent'}
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'};
 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'node_content'}[0]
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[0]{'contents'}[0];
 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[0]{'node_content'}[0]
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[0]{'contents'}[0];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[1]{'manual_content'}[0]
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[1];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[1]{'manual_content'}[1]
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[2];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[1]{'manual_content'}[2]
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[3];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[1]{'node_content'}[0]
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[1]{'contents'}[5];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[2]{'manual_content'}[0]
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[1];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[2]{'node_content'}[0]
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[3];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[2]{'node_content'}[1]
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[4];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[2]{'node_content'}[2]
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[2]{'contents'}[5];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[3]{'manual_content'}[0]
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3]{'contents'}[1];
+$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[3]{'node_content'}[0]
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'args'}[3]{'contents'}[3];
 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'label'}{'parent'}
 = $result_trees{'quote_node_names'};
 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'node_argument'}{'node_content'}[0]
 = 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0];
 
$result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[2]{'contents'}[1];
@@ -2571,42 +2602,11 @@ 
$result_trees{'quote_node_names'}{'contents'}[10]{'contents'}[0]{'parent'} = $re
 $result_trees{'quote_node_names'}{'contents'}[10]{'parent'} = 
$result_trees{'quote_node_names'};
 
$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[0];
 $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[0]{'parent'} = 
$result_trees{'quote_node_names'}{'contents'}[11];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1]{'contents'}[1]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1]{'contents'}[2]{'args'}[0]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1]{'contents'}[2];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1]{'contents'}[2]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1]{'contents'}[3]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1]{'contents'}[4]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1]{'contents'}[5]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1]{'parent'} = 
$result_trees{'quote_node_names'}{'contents'}[11];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2]{'contents'}[1]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2]{'contents'}[2]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2]{'contents'}[3]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2]{'contents'}[4]{'args'}[0]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2]{'contents'}[4];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2]{'contents'}[4]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2]{'contents'}[5]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2]{'parent'} = 
$result_trees{'quote_node_names'}{'contents'}[11];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[3]{'contents'}[0]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[3];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[3]{'contents'}[1]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[3];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[3]{'contents'}[2]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[3];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[3]{'contents'}[3]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[3];
-$result_trees{'quote_node_names'}{'contents'}[11]{'args'}[3]{'parent'} = 
$result_trees{'quote_node_names'}{'contents'}[11];
 $result_trees{'quote_node_names'}{'contents'}[11]{'contents'}[0]{'parent'} = 
$result_trees{'quote_node_names'}{'contents'}[11];
 
$result_trees{'quote_node_names'}{'contents'}[11]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'quote_node_names'}{'contents'}[11]{'contents'}[1];
 $result_trees{'quote_node_names'}{'contents'}[11]{'contents'}[1]{'parent'} = 
$result_trees{'quote_node_names'}{'contents'}[11];
 $result_trees{'quote_node_names'}{'contents'}[11]{'extra'}{'node_content'}[0] 
= $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[0]{'contents'}[0];
 
$result_trees{'quote_node_names'}{'contents'}[11]{'extra'}{'nodes_manuals'}[0]{'node_content'}[0]
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[0]{'contents'}[0];
-$result_trees{'quote_node_names'}{'contents'}[11]{'extra'}{'nodes_manuals'}[1]{'manual_content'}[0]
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1]{'contents'}[1];
-$result_trees{'quote_node_names'}{'contents'}[11]{'extra'}{'nodes_manuals'}[1]{'manual_content'}[1]
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1]{'contents'}[2];
-$result_trees{'quote_node_names'}{'contents'}[11]{'extra'}{'nodes_manuals'}[1]{'manual_content'}[2]
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1]{'contents'}[3];
-$result_trees{'quote_node_names'}{'contents'}[11]{'extra'}{'nodes_manuals'}[1]{'node_content'}[0]
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[1]{'contents'}[5];
-$result_trees{'quote_node_names'}{'contents'}[11]{'extra'}{'nodes_manuals'}[2]{'manual_content'}[0]
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2]{'contents'}[1];
-$result_trees{'quote_node_names'}{'contents'}[11]{'extra'}{'nodes_manuals'}[2]{'node_content'}[0]
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2]{'contents'}[3];
-$result_trees{'quote_node_names'}{'contents'}[11]{'extra'}{'nodes_manuals'}[2]{'node_content'}[1]
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2]{'contents'}[4];
-$result_trees{'quote_node_names'}{'contents'}[11]{'extra'}{'nodes_manuals'}[2]{'node_content'}[2]
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[2]{'contents'}[5];
-$result_trees{'quote_node_names'}{'contents'}[11]{'extra'}{'nodes_manuals'}[3]{'manual_content'}[0]
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[3]{'contents'}[1];
-$result_trees{'quote_node_names'}{'contents'}[11]{'extra'}{'nodes_manuals'}[3]{'node_content'}[0]
 = $result_trees{'quote_node_names'}{'contents'}[11]{'args'}[3]{'contents'}[3];
 $result_trees{'quote_node_names'}{'contents'}[11]{'parent'} = 
$result_trees{'quote_node_names'};
 
 $result_texis{'quote_node_names'} = '@node Top
@@ -2658,13 +2658,13 @@ stuff here.
 @node blumpty.fump
 @chapter blumpty.fump
 
-@node normal node
+@node normal node, (man@comma{}u:a.l)direction, (man_ual)direct@comma{}ion, 
(man_ual)direct::i.on
 @chapter normal node
 
 @node @asis{secret,node}
 @chapter @asis{secret,node}
 
-@node top secret node, (man@comma{}u:a.l)direction, 
(man_ual)direct@comma{}ion, (man_ual)direct::i.on
+@node top secret node
 
 stuff here.
 ';
@@ -2903,24 +2903,41 @@ $result_nodes{'quote_node_names'} = {
               },
               'structure' => {
                 'node_next' => {
-                  'cmdname' => 'node',
                   'extra' => {
-                    'associated_section' => {
-                      'cmdname' => 'chapter',
-                      'extra' => {},
-                      'structure' => {
-                        'section_number' => 4
+                    'manual_content' => [
+                      {
+                        'text' => 'man'
+                      },
+                      {
+                        'cmdname' => 'comma'
+                      },
+                      {
+                        'text' => 'u:a.l'
                       }
-                    },
-                    'normalized' => 'secret_002cnode'
-                  },
-                  'structure' => {
-                    'node_prev' => {},
-                    'node_up' => {}
+                    ],
+                    'normalized' => 'direction'
                   }
                 },
-                'node_prev' => {},
-                'node_up' => {}
+                'node_prev' => {
+                  'extra' => {
+                    'manual_content' => [
+                      {
+                        'text' => 'man_ual'
+                      }
+                    ],
+                    'normalized' => 'direct_002cion'
+                  }
+                },
+                'node_up' => {
+                  'extra' => {
+                    'manual_content' => [
+                      {
+                        'text' => 'man_ual'
+                      }
+                    ],
+                    'normalized' => 'direct_003a_003ai_002eon'
+                  }
+                }
               }
             },
             'node_prev' => {},
@@ -2934,10 +2951,6 @@ $result_nodes{'quote_node_names'} = {
     'node_next' => {}
   }
 };
-$result_nodes{'quote_node_names'}{'structure'}{'menu_child'}{'structure'}{'node_next'}{'structure'}{'node_next'}{'structure'}{'node_next'}{'structure'}{'node_prev'}
 = 
$result_nodes{'quote_node_names'}{'structure'}{'menu_child'}{'structure'}{'node_next'}{'structure'}{'node_next'};
-$result_nodes{'quote_node_names'}{'structure'}{'menu_child'}{'structure'}{'node_next'}{'structure'}{'node_next'}{'structure'}{'node_next'}{'structure'}{'node_up'}
 = $result_nodes{'quote_node_names'};
-$result_nodes{'quote_node_names'}{'structure'}{'menu_child'}{'structure'}{'node_next'}{'structure'}{'node_next'}{'structure'}{'node_prev'}
 = 
$result_nodes{'quote_node_names'}{'structure'}{'menu_child'}{'structure'}{'node_next'};
-$result_nodes{'quote_node_names'}{'structure'}{'menu_child'}{'structure'}{'node_next'}{'structure'}{'node_next'}{'structure'}{'node_up'}
 = $result_nodes{'quote_node_names'};
 
$result_nodes{'quote_node_names'}{'structure'}{'menu_child'}{'structure'}{'node_next'}{'structure'}{'node_prev'}
 = $result_nodes{'quote_node_names'}{'structure'}{'menu_child'};
 
$result_nodes{'quote_node_names'}{'structure'}{'menu_child'}{'structure'}{'node_next'}{'structure'}{'node_up'}
 = $result_nodes{'quote_node_names'};
 
$result_nodes{'quote_node_names'}{'structure'}{'menu_child'}{'structure'}{'node_prev'}
 = $result_nodes{'quote_node_names'};
diff --git a/tp/t/results/sectioning/character_and_spaces_in_refs.pl 
b/tp/t/results/sectioning/character_and_spaces_in_refs.pl
index 02be052ad7..221d8670bf 100644
--- a/tp/t/results/sectioning/character_and_spaces_in_refs.pl
+++ b/tp/t/results/sectioning/character_and_spaces_in_refs.pl
@@ -1899,7 +1899,7 @@ Test refs
 Testing distant nodes
 ---------------------
 
-*note (manual)a node:: *note (manual)::: *note (manual)top:: *note
+*note (manual)a node:: *note (manual)::: *note (manual)top:: *note
 (texinfo)Cross References:: *note (../manual/doc)node::
 
 Testing local nodes



reply via email to

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