texinfo-commits
[Top][All Lists]
Advanced

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

texinfo/tp Texinfo/Parser.pm Texinfo/Structurin...


From: Patrice Dumas
Subject: texinfo/tp Texinfo/Parser.pm Texinfo/Structurin...
Date: Sun, 19 Dec 2010 17:25:12 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        10/12/19 17:25:10

Modified files:
        tp/Texinfo     : Parser.pm Structuring.pm 
        tp/Texinfo/Convert: Info.pm Plaintext.pm 
        tp/t           : test_utils.pl 
        tp/t/results/float: numbering_captions_listoffloats.pl 
        tp/t/results/include: macro_and_commands_in_early_commands.pl 
                              macro_in_early_commands.pl 
                              value_expansion_in_include.pl 
        tp/t/results/invalid_nestings: ignored_text.pl 
                                       node_in_copying.pl 
                                       node_in_copying_not_closed.pl 
                                       on_section_line.pl 
                                       style_not_closed_before_first_node.pl 
                                       
style_not_closed_no_newline_root_commands.pl 
                                       style_not_closed_root_commands.pl 
                                       unclosed_verb_on_section_line.pl 
        tp/t/results/macro: macro_in_misc_commands.pl 
        tp/t/results/menu: direntry_dircategory_after_first_node.pl 
                           reference_to_external_manual.pl 
        tp/t/results/misc_commands: text_before_line_command.pl 
        tp/t/results/sectioning: a_comma_after_node.pl 
                                 at_commands_in_node.pl 
                                 at_commands_in_refs.pl 
                                 character_and_spaces_in_node.pl 
                                 character_and_spaces_in_refs.pl 
                                 complex.pl contents.pl 
                                 double_node_anchor_float.pl 
                                 double_top.pl double_top_in_menu.pl 
                                 double_top_section.pl empty_node.pl 
                                 empty_nodes_with_commands.pl 
                                 loop_nodes.pl node.pl 
                                 node_empty_direction.pl 
                                 nodename_parentheses.pl novalidate.pl 
                                 raiselowersections.pl rec_nodes.pl 
                                 sections.pl semi_auto.pl 
                                 setcontentsaftertitlepage.pl 
                                 setfilename_on_top_and_after_node.pl 
                                 setshortcontentsaftertitlepage.pl 
                                 shortcontents.pl 
                                 some_at_commands_in_ref_nodes.pl 
                                 space_in_node.pl 
                                 unknown_node_in_menu.pl 
                                 unnumbered_no_argument.pl 
        tp/t/results/value: value_in_misc_commands.pl value_in_node.pl 
                            value_node_directions.pl 

Log message:
        Split by node or by section.
        Process a document node by node.
        Handle @node line in Info.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Parser.pm?cvsroot=texinfo&r1=1.168&r2=1.169
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Structuring.pm?cvsroot=texinfo&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Info.pm?cvsroot=texinfo&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Plaintext.pm?cvsroot=texinfo&r1=1.37&r2=1.38
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/test_utils.pl?cvsroot=texinfo&r1=1.61&r2=1.62
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/float/numbering_captions_listoffloats.pl?cvsroot=texinfo&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/include/macro_and_commands_in_early_commands.pl?cvsroot=texinfo&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/include/macro_in_early_commands.pl?cvsroot=texinfo&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/include/value_expansion_in_include.pl?cvsroot=texinfo&r1=1.22&r2=1.23
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/ignored_text.pl?cvsroot=texinfo&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/node_in_copying.pl?cvsroot=texinfo&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/node_in_copying_not_closed.pl?cvsroot=texinfo&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/on_section_line.pl?cvsroot=texinfo&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/style_not_closed_before_first_node.pl?cvsroot=texinfo&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/style_not_closed_no_newline_root_commands.pl?cvsroot=texinfo&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/style_not_closed_root_commands.pl?cvsroot=texinfo&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/unclosed_verb_on_section_line.pl?cvsroot=texinfo&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/macro/macro_in_misc_commands.pl?cvsroot=texinfo&r1=1.40&r2=1.41
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/menu/direntry_dircategory_after_first_node.pl?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/menu/reference_to_external_manual.pl?cvsroot=texinfo&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/misc_commands/text_before_line_command.pl?cvsroot=texinfo&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/a_comma_after_node.pl?cvsroot=texinfo&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/at_commands_in_node.pl?cvsroot=texinfo&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/at_commands_in_refs.pl?cvsroot=texinfo&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/character_and_spaces_in_node.pl?cvsroot=texinfo&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/character_and_spaces_in_refs.pl?cvsroot=texinfo&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/complex.pl?cvsroot=texinfo&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/contents.pl?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/double_node_anchor_float.pl?cvsroot=texinfo&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/double_top.pl?cvsroot=texinfo&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/double_top_in_menu.pl?cvsroot=texinfo&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/double_top_section.pl?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/empty_node.pl?cvsroot=texinfo&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/empty_nodes_with_commands.pl?cvsroot=texinfo&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/loop_nodes.pl?cvsroot=texinfo&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/node.pl?cvsroot=texinfo&r1=1.28&r2=1.29
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/node_empty_direction.pl?cvsroot=texinfo&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/nodename_parentheses.pl?cvsroot=texinfo&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/novalidate.pl?cvsroot=texinfo&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/raiselowersections.pl?cvsroot=texinfo&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/rec_nodes.pl?cvsroot=texinfo&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/sections.pl?cvsroot=texinfo&r1=1.22&r2=1.23
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/semi_auto.pl?cvsroot=texinfo&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/setcontentsaftertitlepage.pl?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/setfilename_on_top_and_after_node.pl?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/setshortcontentsaftertitlepage.pl?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/shortcontents.pl?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/some_at_commands_in_ref_nodes.pl?cvsroot=texinfo&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/space_in_node.pl?cvsroot=texinfo&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/unknown_node_in_menu.pl?cvsroot=texinfo&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/unnumbered_no_argument.pl?cvsroot=texinfo&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/value/value_in_misc_commands.pl?cvsroot=texinfo&r1=1.33&r2=1.34
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/value/value_in_node.pl?cvsroot=texinfo&r1=1.39&r2=1.40
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/value/value_node_directions.pl?cvsroot=texinfo&r1=1.31&r2=1.32

Patches:
Index: Texinfo/Parser.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Parser.pm,v
retrieving revision 1.168
retrieving revision 1.169
diff -u -b -r1.168 -r1.169
--- Texinfo/Parser.pm   11 Dec 2010 16:23:15 -0000      1.168
+++ Texinfo/Parser.pm   19 Dec 2010 17:25:05 -0000      1.169
@@ -69,6 +69,7 @@
   indices_information
   floats_information
   global_commands_information
+  global_informations
   expand_verbatiminclude
   gdt
 ) ] );
@@ -754,6 +755,7 @@
        'line_nr' => $line_nr,
        'fh' => $filehandle
         }];
+  $self->{'info'}->{'input_file_name'} = $file_name;
   return $self->_parse_texi($root);
 }
 
@@ -802,6 +804,12 @@
   return $self->{'extra'};
 }
 
+sub global_informations ($)
+{
+  my $self = shift;
+  return $self->{'info'};
+}
+
 # Following are the internal subsections.  The most important are
 # _parse_texi:  the main parser loop.
 # _end_line:    called at an end of line.  Opening if @include lines is 
@@ -2890,6 +2898,7 @@
             if ($command ne 'bye' and $current->{'type'} 
                  and $current->{'type'} eq 'text_root') {
               $root = { 'type' => 'document_root', 'contents' => [$current] };
+              $current->{'parent'} = $root;
               $current = $root;
             } else {
               $current = $current->{'parent'};

Index: Texinfo/Structuring.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Structuring.pm,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- Texinfo/Structuring.pm      13 Dec 2010 01:08:17 -0000      1.24
+++ Texinfo/Structuring.pm      19 Dec 2010 17:25:06 -0000      1.25
@@ -413,7 +413,7 @@
       shift @directions;
       foreach my $direction (@node_directions) {
         my $node_direction = shift @directions;
-        next if ($node->{'node_'.$direction} or !defined($node_direction));
+        next if (!defined($node_direction));
         # external node
         if ($node_direction->{'manual_content'}) {
           $node->{'node_'.$direction} = { 'extra' => $node_direction };
@@ -456,6 +456,82 @@
   return $top_node;
 }
 
+sub split_by_node($)
+{
+  my $root = shift;
+  if (!$root->{'type'} or $root->{'type'} ne 'document_root'
+      or !$root->{'contents'} or address@hidden>{'contents'}}) {
+    return undef;
+  }
+  my $elements;
+  my $current = { 'type' => 'element', 'extra' => {'no_node' => 1}};
+  push @$elements, $current; 
+  foreach my $content (@{$root->{'contents'}}) {
+    if ($content->{'cmdname'} and $content->{'cmdname'} eq 'node') {
+      if ($current->{'extra'}->{'no_node'}) {
+        delete $current->{'extra'}->{'no_node'};
+        $current->{'extra'}->{'node'} = $content;
+      } else {
+        $current = { 'type' => 'element', 'extra' => {'node' => $content}};
+        push @$elements, $current;
+      }
+    }
+    push @{$current->{'contents'}}, $content;
+    $content->{'parent'} = $current;
+  }
+  return $elements;
+}
+
+sub split_by_section($)
+{
+  my $root = shift;
+  if (!$root->{'type'} or $root->{'type'} ne 'document_root'
+      or !$root->{'contents'} or address@hidden>{'contents'}}) {
+    return undef;
+  }
+  my $elements;
+  my $current = { 'type' => 'element', 'extra' => {'no_section' => 1}};
+  push @$elements, $current; 
+  foreach my $content (@{$root->{'contents'}}) {
+    if ($content->{'cmdname'} and $content->{'cmdname'} eq 'node' 
+         and $content->{'extra'}->{'associated_section'}) {
+      if ($current->{'extra'}->{'no_section'}) {
+        delete $current->{'extra'}->{'no_section'};
+        $current->{'extra'}->{'section'} = 
$content->{'extra'}->{'associated_section'};
+      } else {
+        $current = { 'type' => 'element', 'extra' 
+                => {'section' => $content->{'extra'}->{'associated_section'}}};
+        push @$elements, $current;
+      }
+    } elsif ($content->{'cmdname'} and $content->{'cmdname'} ne 'node' 
+                                   and $content->{'cmdname'} ne 'bye') {
+      if ($current->{'extra'}->{'no_section'}) {
+        delete $current->{'extra'}->{'no_section'};
+        $current->{'extra'}->{'section'} = $content;
+      } elsif ($current->{'extra'}->{'section'} ne $content) {
+        $current = { 'type' => 'element', 'extra' => {'section' => $content}};
+        push @$elements, $current;
+      }
+    }
+    push @{$current->{'contents'}}, $content;
+    $content->{'parent'} = $current;
+  }
+  return $elements;
+}
+
+sub _unsplit($)
+{
+  my $root = shift;
+  if (!$root->{'type'} or $root->{'type'} ne 'document_root'
+      or !$root->{'contents'} or address@hidden>{'contents'}}) {
+    return $root;
+  }
+  foreach my $content (@{$root->{'contents'}}) {
+    $content->{'parent'} = $root;
+  }
+  return $root;
+}
+
 sub number_floats($)
 {
   my $floats = shift;

Index: Texinfo/Convert/Info.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Info.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- Texinfo/Convert/Info.pm     18 Dec 2010 17:15:57 -0000      1.1
+++ Texinfo/Convert/Info.pm     19 Dec 2010 17:25:06 -0000      1.2
@@ -46,15 +46,6 @@
 
 $VERSION = '0.01';
 
-sub convert($)
-{
-  my $self = shift;
-  my $root = shift;
-
-  my ($result) = $self->_convert($root);
-  my ($footnotes) = $self->_footnotes();
-  return $result.$footnotes;
-}
 
 sub count_bytes($$) 
 {
@@ -92,51 +83,6 @@
   }
 }
 
-my $footnote_indent = 3;
-sub _footnotes($)
-{
-  my $self = shift;
-  my $bytes_count = 0;
-  my $lines_count = 0;
-  my $locations = {};
-  my $result = '';
-  if (scalar(@{$self->{'pending_footnotes'}})) {
-    unless ($self->{'empty_lines_count'}) {
-      $result .= "\n";
-      $lines_count++;
-    }
-    $result .= "   ---------- Footnotes ----------\n\n";
-    $lines_count += 2;
-    $bytes_count = $self->count_bytes($result);
-    while (@{$self->{'pending_footnotes'}}) {
-      my $footnote = shift (@{$self->{'pending_footnotes'}});
-      # this pushes on 'context', 'format_context' and 'formatters'
-      $self->push_top_formatter('footnote');
-      my $footnote_text = ' ' x $footnote_indent 
-               . "($footnote->{'number'}) ";
-      $result .= $footnote_text;
-      $self->{'format_context'}->[-1]->{'counter'} += 
-         Texinfo::Convert::Unicode::string_width($footnote_text);
-      $bytes_count += $self->count_bytes($footnote_text);
-
-      $self->advance_count_text(\$result, \$bytes_count, \$lines_count,
-               $locations, 0, 
-               $self->_convert($footnote->{'root'}->{'args'}->[0]));      
-      unless ($self->{'empty_lines_count'}) {
-        $result .= "\n";
-        $bytes_count += $self->count_bytes("\n");
-        $lines_count++;
-      }
-      
-      pop @{$self->{'context'}};
-      pop @{$self->{'format_context'}};
-      pop @{$self->{'formatters'}};
-    }
-  }
-  return ($result, {'lines' => $lines_count, 'bytes' => $bytes_count}, 
-          $locations);
-}
-
 sub _align_lines($$$)
 {
   my $text = shift;
@@ -194,14 +140,50 @@
 {
   my $self = shift;
   my $printindex = shift;
+
+  
+
   return '';
 }
 
+my @directions = ('Next', 'Prev', 'Up');
 sub _node($$)
 {
   my $self = shift;
   my $node = shift;
-  return '';
+
+  my $bytes_count = 0;
+
+  # FIXME $outfile
+  my $result = "\x{1F}\nFile: outfile,  Node:  ";
+  $bytes_count += $self->count_bytes($result);
+  $self->advance_count_text(\$result, \$bytes_count, undef,
+               undef, 0, $self->convert_line({'type' => 'code', 
+                           'contents' => $node->{'extra'}->{'node_content'}}));
+  foreach my $direction(@directions) {
+    if ($node->{'node_'.lc($direction)}) {
+      my $node_direction = $node->{'node_'.lc($direction)};
+      my $text = ",  $direction: ";
+      $bytes_count += $self->count_bytes($text);
+      $result .= $text;
+      if ($node_direction->{'extra'}->{'manual_content'}) {
+        $self->advance_count_text(\$result, \$bytes_count, undef,
+                undef, 0, $self->convert_line({'type' => 'code',
+                          'contents' => ['text' => '(',
+                             @{$node_direction->{'extra'}->{'manual_content'}},
+                                          'text' => ')']}));
+      }
+      if ($node_direction->{'extra'}->{'node_content'}) {
+        $self->advance_count_text(\$result, \$bytes_count, undef,
+               undef, 0, $self->convert_line({'type' => 'code', 
+                 'contents' => $node_direction->{'extra'}->{'node_content'}}));
+      }
+    }
+  }
+  $result .="\n\n";
+  $bytes_count += $self->count_bytes("\n\n");
+
+  return ($result, {'bytes' => $bytes_count, 'lines' => 3});
 }
 
 sub _anchor($$)

Index: Texinfo/Convert/Plaintext.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Plaintext.pm,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -b -r1.37 -r1.38
--- Texinfo/Convert/Plaintext.pm        16 Dec 2010 01:13:40 -0000      1.37
+++ Texinfo/Convert/Plaintext.pm        19 Dec 2010 17:25:06 -0000      1.38
@@ -237,6 +237,7 @@
   'output_encoding'      => 'us-ascii',
   'documentlanguage'     => 'en',
   'number_footnotes'     => 1,
+  'split_size'           => 300000,
   'expanded_formats'     => undef,
   'include_directories'  => undef,
 
@@ -352,14 +353,55 @@
   return $converter;
 }
 
+sub _convert_node($$)
+{
+  my $self = shift;
+  my $node = shift;
+
+  my $result = '';
+  my $bytes_count = 0;
+  my $lines_count = 0;
+  my $locations = {};
+
+  $self->advance_count_text(\$result, \$bytes_count, \$lines_count,
+         $locations, 0, $self->_convert($node));
+
+  $self->advance_count_text(\$result, \$bytes_count, \$lines_count,
+         $locations, 0, $self->_footnotes($node));
+
+  foreach my $location (@{$locations->{'bytes'}}) {
+    $location->{'bytes_count'} += $self->{'file_bytes_count'};
+    $self->{'label_locations'}->{$location->{'anchor'}} = 
$location->{'anchor'};
+  }
+  foreach my $location (@{$locations->{'lines'}}) {
+    if ($location->{'index_entry'}) {
+      $self->{'index_entries'}->{$location->{'index_entry'}} = $location;
+    }
+  }
+  $self->{'file_bytes_count'} += $bytes_count;
+  return ($result, {'lines' => $lines_count, 'bytes' => $bytes_count}, 
+          $locations);
+}
+
 sub convert($)
 {
   my $self = shift;
   my $root = shift;
 
-  my ($result) = $self->_convert($root);
+  my $result = '';
+
+  my $elements = Texinfo::Structuring::split_by_node($root);
+  if (!defined($elements)) {
+    ($result) = $self->_convert($root);
   my ($footnotes) = $self->_footnotes();
-  return $result.$footnotes;
+    $result .= $footnotes;
+  } else {
+    foreach my $node (@$elements) {
+      my ($node_text) = $self->_convert_node($node);
+      $result .= $node_text;
+    }
+  }
+  return $result;
 }
 
 sub _normalise_space($)
@@ -538,9 +580,11 @@
 }
 
 my $footnote_indent = 3;
-sub _footnotes($)
+sub _footnotes($$)
 {
   my $self = shift;
+  my $node = shift;
+
   my $bytes_count = 0;
   my $lines_count = 0;
   my $locations = {};
@@ -550,8 +594,18 @@
       $result .= "\n";
       $lines_count++;
     }
+    if ($self->{'footnotestyle'} eq 'end' or !defined($node)) {
     $result .= "   ---------- Footnotes ----------\n\n";
     $lines_count += 2;
+    } else {
+      my $footnotes_node = {
+        'node_up' => $node->{'node'},
+        'extra' => {'node_content' => 
address@hidden>{'node'}->{'extra'}->{'node_content'}},
+                                     'text' => '-Footnotes']}
+      };
+      $self->advance_count_text(\$result, \$bytes_count, \$lines_count,
+               $locations, 0, $self->_node($footnotes_node));
+    }
     $bytes_count = $self->count_bytes($result);
     while (@{$self->{'pending_footnotes'}}) {
       my $footnote = shift (@{$self->{'pending_footnotes'}});
@@ -578,6 +632,8 @@
       pop @{$self->{'formatters'}};
     }
   }
+  $self->{'footnote_index'} = 0;
+
   return ($result, {'lines' => $lines_count, 'bytes' => $bytes_count}, 
           $locations);
 }
@@ -1137,10 +1193,6 @@
       }
 
     } elsif ($root->{'cmdname'} eq 'node') {
-      $self->{'footnote_index'} = 0;
-      $self->advance_count_text(\$result, \$bytes_count, \$lines_count,
-               $locations, 0, $self->_footnotes());
-
       $self->advance_count_text(\$result, \$bytes_count, \$lines_count,
                $locations, 0, $self->_node($root));
       $self->{'format_context'}->[-1]->{'paragraph_count'} = 0;
@@ -1326,7 +1378,7 @@
           }
           if ($caption) {
             # FIXME should there be some indentation?
-            my $caption_text = $self->convert({'contents' => 
$caption->{'args'}->[0]->{'contents'},
+            my ($caption_text) = $self->_convert({'contents' => 
$caption->{'args'}->[0]->{'contents'},
                         'type' => $caption->{'cmdname'}.'_listoffloats'});
             while ($caption_text =~ 
s/^\s*(\p{Unicode::EastAsianWidth::InFullwidth}\s*|\S+\s*)//) {
               my $new_word = $1;
@@ -1428,6 +1480,8 @@
       if ($root->{'cmdname'} eq 'item' or $root->{'cmdname'} eq 'itemx') {
         $index_entry = 0;
       }
+      push @{$locations->{'lines'}}, {'lines_count' => $lines_count, 
+                                      'index_entry' => $root};
     } elsif ($unknown_command) {
       die "Unhandled $root->{'cmdname'}\n";
     }
@@ -1484,7 +1538,8 @@
         push @{$self->{'formatters'}}, $def_paragraph;
 
         $result .= $def_paragraph->{'container'}->add_next(" -- ");
-        $result .= $self->convert({'type' => 'code', 'contents' => 
address@hidden);
+        my ($def_body) = $self->_convert({'type' => 'code', 'contents' => 
address@hidden);
+        $result .= $def_body;
         $result .= $def_paragraph->{'container'}->end();
 
         pop @{$self->{'formatters'}};

Index: t/test_utils.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/test_utils.pl,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -b -r1.61 -r1.62
--- t/test_utils.pl     8 Dec 2010 22:47:33 -0000       1.61
+++ t/test_utils.pl     19 Dec 2010 17:25:07 -0000      1.62
@@ -252,6 +252,8 @@
       #print STDERR "$format: \n$converted{$format}";
     }
   }
+  # associate elements with the document_root.
+  Texinfo::Structuring::_unsplit($result);
 
   my $file = "t/results/$self->{'name'}/$test_name.pl";
   my $new_file = $file.'.new';

Index: t/results/float/numbering_captions_listoffloats.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/float/numbering_captions_listoffloats.pl,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- t/results/float/numbering_captions_listoffloats.pl  11 Dec 2010 16:23:16 
-0000      1.6
+++ t/results/float/numbering_captions_listoffloats.pl  19 Dec 2010 17:25:07 
-0000      1.7
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -4818,6 +4819,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'numbering_captions_listoffloats'}{'contents'}[0]{'parent'} = 
$result_trees{'numbering_captions_listoffloats'};
 
$result_trees{'numbering_captions_listoffloats'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'numbering_captions_listoffloats'}{'contents'}[1]{'args'}[0];
 
$result_trees{'numbering_captions_listoffloats'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'numbering_captions_listoffloats'}{'contents'}[1]{'args'}[0];
 
$result_trees{'numbering_captions_listoffloats'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'numbering_captions_listoffloats'}{'contents'}[1]{'args'}[0];

Index: t/results/include/macro_and_commands_in_early_commands.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/include/macro_and_commands_in_early_commands.pl,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- t/results/include/macro_and_commands_in_early_commands.pl   7 Dec 2010 
20:34:28 -0000       1.26
+++ t/results/include/macro_and_commands_in_early_commands.pl   19 Dec 2010 
17:25:07 -0000      1.27
@@ -234,6 +234,7 @@
           'type' => 'empty_line'
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -474,6 +475,7 @@
 
$result_trees{'macro_and_commands_in_early_commands'}{'contents'}[0]{'contents'}[10]{'parent'}
 = $result_trees{'macro_and_commands_in_early_commands'}{'contents'}[0];
 
$result_trees{'macro_and_commands_in_early_commands'}{'contents'}[0]{'contents'}[11]{'parent'}
 = $result_trees{'macro_and_commands_in_early_commands'}{'contents'}[0];
 
$result_trees{'macro_and_commands_in_early_commands'}{'contents'}[0]{'contents'}[12]{'parent'}
 = $result_trees{'macro_and_commands_in_early_commands'}{'contents'}[0];
+$result_trees{'macro_and_commands_in_early_commands'}{'contents'}[0]{'parent'} 
= $result_trees{'macro_and_commands_in_early_commands'};
 
$result_trees{'macro_and_commands_in_early_commands'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'macro_and_commands_in_early_commands'}{'contents'}[1]{'args'}[0];
 
$result_trees{'macro_and_commands_in_early_commands'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'macro_and_commands_in_early_commands'}{'contents'}[1]{'args'}[0];
 
$result_trees{'macro_and_commands_in_early_commands'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'macro_and_commands_in_early_commands'}{'contents'}[1]{'args'}[0];

Index: t/results/include/macro_in_early_commands.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/include/macro_in_early_commands.pl,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- t/results/include/macro_in_early_commands.pl        7 Dec 2010 20:34:28 
-0000       1.25
+++ t/results/include/macro_in_early_commands.pl        19 Dec 2010 17:25:07 
-0000      1.26
@@ -309,6 +309,7 @@
           'type' => 'empty_line'
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -545,6 +546,7 @@
 
$result_trees{'macro_in_early_commands'}{'contents'}[0]{'contents'}[15]{'parent'}
 = $result_trees{'macro_in_early_commands'}{'contents'}[0];
 
$result_trees{'macro_in_early_commands'}{'contents'}[0]{'contents'}[16]{'parent'}
 = $result_trees{'macro_in_early_commands'}{'contents'}[0];
 
$result_trees{'macro_in_early_commands'}{'contents'}[0]{'contents'}[17]{'parent'}
 = $result_trees{'macro_in_early_commands'}{'contents'}[0];
+$result_trees{'macro_in_early_commands'}{'contents'}[0]{'parent'} = 
$result_trees{'macro_in_early_commands'};
 
$result_trees{'macro_in_early_commands'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'macro_in_early_commands'}{'contents'}[1]{'args'}[0];
 
$result_trees{'macro_in_early_commands'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'macro_in_early_commands'}{'contents'}[1]{'args'}[0];
 
$result_trees{'macro_in_early_commands'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'macro_in_early_commands'}{'contents'}[1]{'args'}[0];

Index: t/results/include/value_expansion_in_include.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/include/value_expansion_in_include.pl,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- t/results/include/value_expansion_in_include.pl     7 Dec 2010 20:34:28 
-0000       1.22
+++ t/results/include/value_expansion_in_include.pl     19 Dec 2010 17:25:07 
-0000      1.23
@@ -115,6 +115,7 @@
           'type' => 'empty_line'
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -462,6 +463,7 @@
 
$result_trees{'value_expansion_in_include'}{'contents'}[0]{'contents'}[6]{'parent'}
 = $result_trees{'value_expansion_in_include'}{'contents'}[0];
 
$result_trees{'value_expansion_in_include'}{'contents'}[0]{'contents'}[7]{'parent'}
 = $result_trees{'value_expansion_in_include'}{'contents'}[0];
 
$result_trees{'value_expansion_in_include'}{'contents'}[0]{'contents'}[8]{'parent'}
 = $result_trees{'value_expansion_in_include'}{'contents'}[0];
+$result_trees{'value_expansion_in_include'}{'contents'}[0]{'parent'} = 
$result_trees{'value_expansion_in_include'};
 
$result_trees{'value_expansion_in_include'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'value_expansion_in_include'}{'contents'}[1]{'args'}[0];
 
$result_trees{'value_expansion_in_include'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'value_expansion_in_include'}{'contents'}[1]{'args'}[0];
 
$result_trees{'value_expansion_in_include'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'value_expansion_in_include'}{'contents'}[1]{'args'}[0];

Index: t/results/invalid_nestings/ignored_text.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/invalid_nestings/ignored_text.pl,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- t/results/invalid_nestings/ignored_text.pl  7 Dec 2010 20:34:29 -0000       
1.11
+++ t/results/invalid_nestings/ignored_text.pl  19 Dec 2010 17:25:07 -0000      
1.12
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -38,6 +39,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'ignored_text'}{'contents'}[0]{'parent'} = 
$result_trees{'ignored_text'};
 
$result_trees{'ignored_text'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'ignored_text'}{'contents'}[1]{'args'}[0];
 
$result_trees{'ignored_text'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'ignored_text'}{'contents'}[1]{'args'}[0];
 $result_trees{'ignored_text'}{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'ignored_text'}{'contents'}[1];

Index: t/results/invalid_nestings/node_in_copying.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/invalid_nestings/node_in_copying.pl,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- t/results/invalid_nestings/node_in_copying.pl       7 Dec 2010 20:34:29 
-0000       1.16
+++ t/results/invalid_nestings/node_in_copying.pl       19 Dec 2010 17:25:08 
-0000      1.17
@@ -19,6 +19,7 @@
           'parent' => {}
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -84,6 +85,7 @@
 };
 
$result_trees{'node_in_copying'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'node_in_copying'}{'contents'}[0]{'contents'}[0];
 $result_trees{'node_in_copying'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'node_in_copying'}{'contents'}[0];
+$result_trees{'node_in_copying'}{'contents'}[0]{'parent'} = 
$result_trees{'node_in_copying'};
 
$result_trees{'node_in_copying'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'node_in_copying'}{'contents'}[1]{'args'}[0];
 
$result_trees{'node_in_copying'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'node_in_copying'}{'contents'}[1]{'args'}[0];
 
$result_trees{'node_in_copying'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'node_in_copying'}{'contents'}[1]{'args'}[0];

Index: t/results/invalid_nestings/node_in_copying_not_closed.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/invalid_nestings/node_in_copying_not_closed.pl,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- t/results/invalid_nestings/node_in_copying_not_closed.pl    7 Dec 2010 
20:34:29 -0000       1.20
+++ t/results/invalid_nestings/node_in_copying_not_closed.pl    19 Dec 2010 
17:25:08 -0000      1.21
@@ -48,6 +48,7 @@
           'parent' => {}
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -160,6 +161,7 @@
 
$result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'contents'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'contents'}[0];
 
$result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'contents'}[0]{'contents'}[4]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'contents'}[0];
 
$result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[0];
+$result_trees{'node_in_copying_not_closed'}{'contents'}[0]{'parent'} = 
$result_trees{'node_in_copying_not_closed'};
 
$result_trees{'node_in_copying_not_closed'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[1]{'args'}[0];
 
$result_trees{'node_in_copying_not_closed'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[1]{'args'}[0];
 
$result_trees{'node_in_copying_not_closed'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'node_in_copying_not_closed'}{'contents'}[1]{'args'}[0];

Index: t/results/invalid_nestings/on_section_line.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/invalid_nestings/on_section_line.pl,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- t/results/invalid_nestings/on_section_line.pl       7 Dec 2010 20:34:29 
-0000       1.24
+++ t/results/invalid_nestings/on_section_line.pl       19 Dec 2010 17:25:08 
-0000      1.25
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -192,6 +193,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'on_section_line'}{'contents'}[0]{'parent'} = 
$result_trees{'on_section_line'};
 
$result_trees{'on_section_line'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'on_section_line'}{'contents'}[1]{'args'}[0];
 
$result_trees{'on_section_line'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'on_section_line'}{'contents'}[1]{'args'}[0];
 
$result_trees{'on_section_line'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'on_section_line'}{'contents'}[1]{'args'}[0];

Index: t/results/invalid_nestings/style_not_closed_before_first_node.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/invalid_nestings/style_not_closed_before_first_node.pl,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- t/results/invalid_nestings/style_not_closed_before_first_node.pl    7 Dec 
2010 20:34:29 -0000       1.17
+++ t/results/invalid_nestings/style_not_closed_before_first_node.pl    19 Dec 
2010 17:25:08 -0000      1.18
@@ -37,6 +37,7 @@
           'type' => 'paragraph'
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -104,6 +105,7 @@
 
$result_trees{'style_not_closed_before_first_node'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'style_not_closed_before_first_node'}{'contents'}[0]{'contents'}[0]{'contents'}[0];
 
$result_trees{'style_not_closed_before_first_node'}{'contents'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'style_not_closed_before_first_node'}{'contents'}[0]{'contents'}[0];
 
$result_trees{'style_not_closed_before_first_node'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'style_not_closed_before_first_node'}{'contents'}[0];
+$result_trees{'style_not_closed_before_first_node'}{'contents'}[0]{'parent'} = 
$result_trees{'style_not_closed_before_first_node'};
 
$result_trees{'style_not_closed_before_first_node'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'style_not_closed_before_first_node'}{'contents'}[1]{'args'}[0];
 
$result_trees{'style_not_closed_before_first_node'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'style_not_closed_before_first_node'}{'contents'}[1]{'args'}[0];
 
$result_trees{'style_not_closed_before_first_node'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'style_not_closed_before_first_node'}{'contents'}[1]{'args'}[0];

Index: t/results/invalid_nestings/style_not_closed_no_newline_root_commands.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/invalid_nestings/style_not_closed_no_newline_root_commands.pl,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- t/results/invalid_nestings/style_not_closed_no_newline_root_commands.pl     
7 Dec 2010 20:34:29 -0000       1.27
+++ t/results/invalid_nestings/style_not_closed_no_newline_root_commands.pl     
19 Dec 2010 17:25:08 -0000      1.28
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -285,6 +286,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'style_not_closed_no_newline_root_commands'}{'contents'}[0]{'parent'}
 = $result_trees{'style_not_closed_no_newline_root_commands'};
 
$result_trees{'style_not_closed_no_newline_root_commands'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'style_not_closed_no_newline_root_commands'}{'contents'}[1]{'args'}[0];
 
$result_trees{'style_not_closed_no_newline_root_commands'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'style_not_closed_no_newline_root_commands'}{'contents'}[1]{'args'}[0];
 
$result_trees{'style_not_closed_no_newline_root_commands'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'style_not_closed_no_newline_root_commands'}{'contents'}[1]{'args'}[0];

Index: t/results/invalid_nestings/style_not_closed_root_commands.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/invalid_nestings/style_not_closed_root_commands.pl,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- t/results/invalid_nestings/style_not_closed_root_commands.pl        7 Dec 
2010 20:34:29 -0000       1.25
+++ t/results/invalid_nestings/style_not_closed_root_commands.pl        19 Dec 
2010 17:25:08 -0000      1.26
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -293,6 +294,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'style_not_closed_root_commands'}{'contents'}[0]{'parent'} = 
$result_trees{'style_not_closed_root_commands'};
 
$result_trees{'style_not_closed_root_commands'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'style_not_closed_root_commands'}{'contents'}[1]{'args'}[0];
 
$result_trees{'style_not_closed_root_commands'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'style_not_closed_root_commands'}{'contents'}[1]{'args'}[0];
 
$result_trees{'style_not_closed_root_commands'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'style_not_closed_root_commands'}{'contents'}[1]{'args'}[0];

Index: t/results/invalid_nestings/unclosed_verb_on_section_line.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/invalid_nestings/unclosed_verb_on_section_line.pl,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- t/results/invalid_nestings/unclosed_verb_on_section_line.pl 7 Dec 2010 
20:34:29 -0000       1.14
+++ t/results/invalid_nestings/unclosed_verb_on_section_line.pl 19 Dec 2010 
17:25:08 -0000      1.15
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -71,6 +72,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'unclosed_verb_on_section_line'}{'contents'}[0]{'parent'} = 
$result_trees{'unclosed_verb_on_section_line'};
 
$result_trees{'unclosed_verb_on_section_line'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'unclosed_verb_on_section_line'}{'contents'}[1]{'args'}[0];
 
$result_trees{'unclosed_verb_on_section_line'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'unclosed_verb_on_section_line'}{'contents'}[1]{'args'}[0];
 
$result_trees{'unclosed_verb_on_section_line'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'unclosed_verb_on_section_line'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'args'}[0];

Index: t/results/macro/macro_in_misc_commands.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/macro/macro_in_misc_commands.pl,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -b -r1.40 -r1.41
--- t/results/macro/macro_in_misc_commands.pl   7 Dec 2010 20:34:30 -0000       
1.40
+++ t/results/macro/macro_in_misc_commands.pl   19 Dec 2010 17:25:08 -0000      
1.41
@@ -91,6 +91,7 @@
           'type' => 'empty_line'
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -3164,6 +3165,7 @@
 
$result_trees{'macro_in_misc_commands'}{'contents'}[0]{'contents'}[3]{'parent'} 
= $result_trees{'macro_in_misc_commands'}{'contents'}[0];
 
$result_trees{'macro_in_misc_commands'}{'contents'}[0]{'contents'}[4]{'parent'} 
= $result_trees{'macro_in_misc_commands'}{'contents'}[0];
 
$result_trees{'macro_in_misc_commands'}{'contents'}[0]{'contents'}[5]{'parent'} 
= $result_trees{'macro_in_misc_commands'}{'contents'}[0];
+$result_trees{'macro_in_misc_commands'}{'contents'}[0]{'parent'} = 
$result_trees{'macro_in_misc_commands'};
 
$result_trees{'macro_in_misc_commands'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'macro_in_misc_commands'}{'contents'}[1]{'args'}[0];
 
$result_trees{'macro_in_misc_commands'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'macro_in_misc_commands'}{'contents'}[1]{'args'}[0];
 
$result_trees{'macro_in_misc_commands'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'macro_in_misc_commands'}{'contents'}[1]{'args'}[0];

Index: t/results/menu/direntry_dircategory_after_first_node.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/menu/direntry_dircategory_after_first_node.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- t/results/menu/direntry_dircategory_after_first_node.pl     7 Dec 2010 
20:34:30 -0000       1.2
+++ t/results/menu/direntry_dircategory_after_first_node.pl     19 Dec 2010 
17:25:09 -0000      1.3
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -222,6 +223,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'direntry_dircategory_after_first_node'}{'contents'}[0]{'parent'}
 = $result_trees{'direntry_dircategory_after_first_node'};
 
$result_trees{'direntry_dircategory_after_first_node'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'direntry_dircategory_after_first_node'}{'contents'}[1]{'args'}[0];
 
$result_trees{'direntry_dircategory_after_first_node'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'direntry_dircategory_after_first_node'}{'contents'}[1]{'args'}[0];
 
$result_trees{'direntry_dircategory_after_first_node'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'direntry_dircategory_after_first_node'}{'contents'}[1]{'args'}[0];

Index: t/results/menu/reference_to_external_manual.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/menu/reference_to_external_manual.pl,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- t/results/menu/reference_to_external_manual.pl      7 Dec 2010 20:34:30 
-0000       1.5
+++ t/results/menu/reference_to_external_manual.pl      19 Dec 2010 17:25:09 
-0000      1.6
@@ -13,6 +13,7 @@
           'type' => 'empty_line'
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -141,6 +142,7 @@
   'type' => 'document_root'
 };
 
$result_trees{'reference_to_external_manual'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'reference_to_external_manual'}{'contents'}[0];
+$result_trees{'reference_to_external_manual'}{'contents'}[0]{'parent'} = 
$result_trees{'reference_to_external_manual'};
 
$result_trees{'reference_to_external_manual'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'reference_to_external_manual'}{'contents'}[1]{'args'}[0];
 
$result_trees{'reference_to_external_manual'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'reference_to_external_manual'}{'contents'}[1]{'args'}[0];
 
$result_trees{'reference_to_external_manual'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'reference_to_external_manual'}{'contents'}[1]{'args'}[0];

Index: t/results/misc_commands/text_before_line_command.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/misc_commands/text_before_line_command.pl,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- t/results/misc_commands/text_before_line_command.pl 7 Dec 2010 20:34:30 
-0000       1.8
+++ t/results/misc_commands/text_before_line_command.pl 19 Dec 2010 17:25:09 
-0000      1.9
@@ -70,6 +70,7 @@
           'type' => 'paragraph'
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -285,6 +286,7 @@
 
$result_trees{'text_before_line_command'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'text_before_line_command'}{'contents'}[0];
 
$result_trees{'text_before_line_command'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'text_before_line_command'}{'contents'}[0]{'contents'}[2];
 
$result_trees{'text_before_line_command'}{'contents'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'text_before_line_command'}{'contents'}[0];
+$result_trees{'text_before_line_command'}{'contents'}[0]{'parent'} = 
$result_trees{'text_before_line_command'};
 
$result_trees{'text_before_line_command'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'text_before_line_command'}{'contents'}[1]{'args'}[0];
 
$result_trees{'text_before_line_command'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'text_before_line_command'}{'contents'}[1]{'args'}[0];
 
$result_trees{'text_before_line_command'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'text_before_line_command'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/a_comma_after_node.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/a_comma_after_node.pl,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- t/results/sectioning/a_comma_after_node.pl  7 Dec 2010 20:34:31 -0000       
1.16
+++ t/results/sectioning/a_comma_after_node.pl  19 Dec 2010 17:25:09 -0000      
1.17
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -114,6 +115,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'a_comma_after_node'}{'contents'}[0]{'parent'} = 
$result_trees{'a_comma_after_node'};
 
$result_trees{'a_comma_after_node'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'a_comma_after_node'}{'contents'}[1]{'args'}[0];
 
$result_trees{'a_comma_after_node'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'a_comma_after_node'}{'contents'}[1]{'args'}[0];
 $result_trees{'a_comma_after_node'}{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'a_comma_after_node'}{'contents'}[1];

Index: t/results/sectioning/at_commands_in_node.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/at_commands_in_node.pl,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- t/results/sectioning/at_commands_in_node.pl 7 Dec 2010 20:34:31 -0000       
1.13
+++ t/results/sectioning/at_commands_in_node.pl 19 Dec 2010 17:25:09 -0000      
1.14
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -214,6 +215,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'at_commands_in_node'}{'contents'}[0]{'parent'} = 
$result_trees{'at_commands_in_node'};
 
$result_trees{'at_commands_in_node'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'at_commands_in_node'}{'contents'}[1]{'args'}[0];
 
$result_trees{'at_commands_in_node'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'at_commands_in_node'}{'contents'}[1]{'args'}[0];
 
$result_trees{'at_commands_in_node'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'at_commands_in_node'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'args'}[0];

Index: t/results/sectioning/at_commands_in_refs.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/at_commands_in_refs.pl,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- t/results/sectioning/at_commands_in_refs.pl 7 Dec 2010 20:34:31 -0000       
1.24
+++ t/results/sectioning/at_commands_in_refs.pl 19 Dec 2010 17:25:09 -0000      
1.25
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -14030,6 +14031,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'at_commands_in_refs'}{'contents'}[0]{'parent'} = 
$result_trees{'at_commands_in_refs'};
 
$result_trees{'at_commands_in_refs'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'at_commands_in_refs'}{'contents'}[1]{'args'}[0];
 
$result_trees{'at_commands_in_refs'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'at_commands_in_refs'}{'contents'}[1]{'args'}[0];
 
$result_trees{'at_commands_in_refs'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'at_commands_in_refs'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/character_and_spaces_in_node.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/character_and_spaces_in_node.pl,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- t/results/sectioning/character_and_spaces_in_node.pl        7 Dec 2010 
20:34:32 -0000       1.15
+++ t/results/sectioning/character_and_spaces_in_node.pl        19 Dec 2010 
17:25:10 -0000      1.16
@@ -13,6 +13,7 @@
           'type' => 'empty_line'
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -454,6 +455,7 @@
   'type' => 'document_root'
 };
 
$result_trees{'character_and_spaces_in_node'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'character_and_spaces_in_node'}{'contents'}[0];
+$result_trees{'character_and_spaces_in_node'}{'contents'}[0]{'parent'} = 
$result_trees{'character_and_spaces_in_node'};
 
$result_trees{'character_and_spaces_in_node'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'character_and_spaces_in_node'}{'contents'}[1]{'args'}[0];
 
$result_trees{'character_and_spaces_in_node'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'character_and_spaces_in_node'}{'contents'}[1]{'args'}[0];
 
$result_trees{'character_and_spaces_in_node'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'character_and_spaces_in_node'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/character_and_spaces_in_refs.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/character_and_spaces_in_refs.pl,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- t/results/sectioning/character_and_spaces_in_refs.pl        7 Dec 2010 
20:34:32 -0000       1.24
+++ t/results/sectioning/character_and_spaces_in_refs.pl        19 Dec 2010 
17:25:10 -0000      1.25
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -1312,6 +1313,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'character_and_spaces_in_refs'}{'contents'}[0]{'parent'} = 
$result_trees{'character_and_spaces_in_refs'};
 
$result_trees{'character_and_spaces_in_refs'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'character_and_spaces_in_refs'}{'contents'}[1]{'args'}[0];
 
$result_trees{'character_and_spaces_in_refs'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'character_and_spaces_in_refs'}{'contents'}[1]{'args'}[0];
 
$result_trees{'character_and_spaces_in_refs'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'character_and_spaces_in_refs'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/complex.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/sectioning/complex.pl,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- t/results/sectioning/complex.pl     7 Dec 2010 20:34:32 -0000       1.6
+++ t/results/sectioning/complex.pl     19 Dec 2010 17:25:10 -0000      1.7
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -2233,6 +2234,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'complex'}{'contents'}[0]{'parent'} = $result_trees{'complex'};
 $result_trees{'complex'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'complex'}{'contents'}[1]{'args'}[0];
 $result_trees{'complex'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'complex'}{'contents'}[1]{'args'}[0];
 $result_trees{'complex'}{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'complex'}{'contents'}[1];

Index: t/results/sectioning/contents.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/sectioning/contents.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- t/results/sectioning/contents.pl    7 Dec 2010 20:34:32 -0000       1.2
+++ t/results/sectioning/contents.pl    19 Dec 2010 17:25:10 -0000      1.3
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -529,6 +530,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'contents'}{'contents'}[0]{'parent'} = $result_trees{'contents'};
 $result_trees{'contents'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'contents'}{'contents'}[1]{'args'}[0];
 $result_trees{'contents'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'contents'}{'contents'}[1]{'args'}[0];
 $result_trees{'contents'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'} = 
$result_trees{'contents'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/double_node_anchor_float.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/double_node_anchor_float.pl,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- t/results/sectioning/double_node_anchor_float.pl    7 Dec 2010 20:34:32 
-0000       1.13
+++ t/results/sectioning/double_node_anchor_float.pl    19 Dec 2010 17:25:10 
-0000      1.14
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -532,6 +533,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'double_node_anchor_float'}{'contents'}[0]{'parent'} = 
$result_trees{'double_node_anchor_float'};
 
$result_trees{'double_node_anchor_float'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'double_node_anchor_float'}{'contents'}[1]{'args'}[0];
 
$result_trees{'double_node_anchor_float'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'double_node_anchor_float'}{'contents'}[1]{'args'}[0];
 
$result_trees{'double_node_anchor_float'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'double_node_anchor_float'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/double_top.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/sectioning/double_top.pl,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- t/results/sectioning/double_top.pl  7 Dec 2010 20:34:32 -0000       1.10
+++ t/results/sectioning/double_top.pl  19 Dec 2010 17:25:10 -0000      1.11
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -211,6 +212,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'double_top'}{'contents'}[0]{'parent'} = 
$result_trees{'double_top'};
 $result_trees{'double_top'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'} 
= $result_trees{'double_top'}{'contents'}[1]{'args'}[0];
 $result_trees{'double_top'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'} 
= $result_trees{'double_top'}{'contents'}[1]{'args'}[0];
 $result_trees{'double_top'}{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'double_top'}{'contents'}[1];

Index: t/results/sectioning/double_top_in_menu.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/double_top_in_menu.pl,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- t/results/sectioning/double_top_in_menu.pl  7 Dec 2010 20:34:32 -0000       
1.4
+++ t/results/sectioning/double_top_in_menu.pl  19 Dec 2010 17:25:10 -0000      
1.5
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -311,6 +312,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'double_top_in_menu'}{'contents'}[0]{'parent'} = 
$result_trees{'double_top_in_menu'};
 
$result_trees{'double_top_in_menu'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'double_top_in_menu'}{'contents'}[1]{'args'}[0];
 
$result_trees{'double_top_in_menu'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'double_top_in_menu'}{'contents'}[1]{'args'}[0];
 $result_trees{'double_top_in_menu'}{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'double_top_in_menu'}{'contents'}[1];

Index: t/results/sectioning/double_top_section.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/double_top_section.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- t/results/sectioning/double_top_section.pl  7 Dec 2010 20:34:32 -0000       
1.2
+++ t/results/sectioning/double_top_section.pl  19 Dec 2010 17:25:10 -0000      
1.3
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -131,6 +132,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'double_top_section'}{'contents'}[0]{'parent'} = 
$result_trees{'double_top_section'};
 
$result_trees{'double_top_section'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'double_top_section'}{'contents'}[1]{'args'}[0];
 
$result_trees{'double_top_section'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'double_top_section'}{'contents'}[1]{'args'}[0];
 
$result_trees{'double_top_section'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'double_top_section'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/empty_node.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/sectioning/empty_node.pl,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- t/results/sectioning/empty_node.pl  7 Dec 2010 20:34:32 -0000       1.7
+++ t/results/sectioning/empty_node.pl  19 Dec 2010 17:25:10 -0000      1.8
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -141,6 +142,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'empty_node'}{'contents'}[0]{'parent'} = 
$result_trees{'empty_node'};
 $result_trees{'empty_node'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'} 
= $result_trees{'empty_node'}{'contents'}[1]{'args'}[0];
 $result_trees{'empty_node'}{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'empty_node'}{'contents'}[1];
 $result_trees{'empty_node'}{'contents'}[1]{'contents'}[0]{'parent'} = 
$result_trees{'empty_node'}{'contents'}[1];

Index: t/results/sectioning/empty_nodes_with_commands.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/empty_nodes_with_commands.pl,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- t/results/sectioning/empty_nodes_with_commands.pl   7 Dec 2010 20:34:32 
-0000       1.4
+++ t/results/sectioning/empty_nodes_with_commands.pl   19 Dec 2010 17:25:10 
-0000      1.5
@@ -13,6 +13,7 @@
           'type' => 'empty_line'
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -203,6 +204,7 @@
   'type' => 'document_root'
 };
 
$result_trees{'empty_nodes_with_commands'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'empty_nodes_with_commands'}{'contents'}[0];
+$result_trees{'empty_nodes_with_commands'}{'contents'}[0]{'parent'} = 
$result_trees{'empty_nodes_with_commands'};
 
$result_trees{'empty_nodes_with_commands'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'empty_nodes_with_commands'}{'contents'}[1]{'args'}[0];
 
$result_trees{'empty_nodes_with_commands'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'empty_nodes_with_commands'}{'contents'}[1]{'args'}[0]{'contents'}[1];
 
$result_trees{'empty_nodes_with_commands'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'empty_nodes_with_commands'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/loop_nodes.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/sectioning/loop_nodes.pl,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- t/results/sectioning/loop_nodes.pl  7 Dec 2010 20:34:32 -0000       1.5
+++ t/results/sectioning/loop_nodes.pl  19 Dec 2010 17:25:10 -0000      1.6
@@ -13,6 +13,7 @@
           'type' => 'empty_line'
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -537,6 +538,7 @@
   'type' => 'document_root'
 };
 $result_trees{'loop_nodes'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'loop_nodes'}{'contents'}[0];
+$result_trees{'loop_nodes'}{'contents'}[0]{'parent'} = 
$result_trees{'loop_nodes'};
 $result_trees{'loop_nodes'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'} 
= $result_trees{'loop_nodes'}{'contents'}[1]{'args'}[0];
 $result_trees{'loop_nodes'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'} 
= $result_trees{'loop_nodes'}{'contents'}[1]{'args'}[0];
 $result_trees{'loop_nodes'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'} 
= $result_trees{'loop_nodes'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/node.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/sectioning/node.pl,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- t/results/sectioning/node.pl        7 Dec 2010 20:34:32 -0000       1.28
+++ t/results/sectioning/node.pl        19 Dec 2010 17:25:10 -0000      1.29
@@ -13,6 +13,7 @@
           'type' => 'empty_line'
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -632,6 +633,7 @@
   'type' => 'document_root'
 };
 $result_trees{'node'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'node'}{'contents'}[0];
+$result_trees{'node'}{'contents'}[0]{'parent'} = $result_trees{'node'};
 $result_trees{'node'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'node'}{'contents'}[1]{'args'}[0];
 $result_trees{'node'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'node'}{'contents'}[1]{'args'}[0];
 $result_trees{'node'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'} = 
$result_trees{'node'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/node_empty_direction.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/node_empty_direction.pl,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- t/results/sectioning/node_empty_direction.pl        7 Dec 2010 20:34:32 
-0000       1.9
+++ t/results/sectioning/node_empty_direction.pl        19 Dec 2010 17:25:10 
-0000      1.10
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -61,6 +62,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'node_empty_direction'}{'contents'}[0]{'parent'} = 
$result_trees{'node_empty_direction'};
 
$result_trees{'node_empty_direction'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'node_empty_direction'}{'contents'}[1]{'args'}[0];
 
$result_trees{'node_empty_direction'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'node_empty_direction'}{'contents'}[1]{'args'}[0];
 $result_trees{'node_empty_direction'}{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'node_empty_direction'}{'contents'}[1];

Index: t/results/sectioning/nodename_parentheses.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/nodename_parentheses.pl,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- t/results/sectioning/nodename_parentheses.pl        7 Dec 2010 20:34:32 
-0000       1.26
+++ t/results/sectioning/nodename_parentheses.pl        19 Dec 2010 17:25:10 
-0000      1.27
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -757,6 +758,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'nodename_parentheses'}{'contents'}[0]{'parent'} = 
$result_trees{'nodename_parentheses'};
 
$result_trees{'nodename_parentheses'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'nodename_parentheses'}{'contents'}[1]{'args'}[0];
 
$result_trees{'nodename_parentheses'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'nodename_parentheses'}{'contents'}[1]{'args'}[0];
 
$result_trees{'nodename_parentheses'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'nodename_parentheses'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/novalidate.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/sectioning/novalidate.pl,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- t/results/sectioning/novalidate.pl  7 Dec 2010 20:34:32 -0000       1.4
+++ t/results/sectioning/novalidate.pl  19 Dec 2010 17:25:10 -0000      1.5
@@ -23,6 +23,7 @@
           'type' => 'empty_line'
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -171,6 +172,7 @@
 $result_trees{'novalidate'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'novalidate'}{'contents'}[0];
 $result_trees{'novalidate'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'novalidate'}{'contents'}[0];
 $result_trees{'novalidate'}{'contents'}[0]{'contents'}[2]{'parent'} = 
$result_trees{'novalidate'}{'contents'}[0];
+$result_trees{'novalidate'}{'contents'}[0]{'parent'} = 
$result_trees{'novalidate'};
 $result_trees{'novalidate'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'} 
= $result_trees{'novalidate'}{'contents'}[1]{'args'}[0];
 $result_trees{'novalidate'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'} 
= $result_trees{'novalidate'}{'contents'}[1]{'args'}[0];
 $result_trees{'novalidate'}{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'novalidate'}{'contents'}[1];

Index: t/results/sectioning/raiselowersections.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/raiselowersections.pl,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- t/results/sectioning/raiselowersections.pl  7 Dec 2010 20:34:32 -0000       
1.26
+++ t/results/sectioning/raiselowersections.pl  19 Dec 2010 17:25:10 -0000      
1.27
@@ -35,6 +35,7 @@
           'type' => 'empty_line'
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -1058,6 +1059,7 @@
 
$result_trees{'raiselowersections'}{'contents'}[0]{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'raiselowersections'}{'contents'}[0]{'contents'}[0];
 $result_trees{'raiselowersections'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'raiselowersections'}{'contents'}[0];
 $result_trees{'raiselowersections'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'raiselowersections'}{'contents'}[0];
+$result_trees{'raiselowersections'}{'contents'}[0]{'parent'} = 
$result_trees{'raiselowersections'};
 
$result_trees{'raiselowersections'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'raiselowersections'}{'contents'}[1]{'args'}[0];
 
$result_trees{'raiselowersections'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'raiselowersections'}{'contents'}[1]{'args'}[0];
 
$result_trees{'raiselowersections'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'raiselowersections'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/rec_nodes.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/sectioning/rec_nodes.pl,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- t/results/sectioning/rec_nodes.pl   7 Dec 2010 20:34:32 -0000       1.4
+++ t/results/sectioning/rec_nodes.pl   19 Dec 2010 17:25:10 -0000      1.5
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -890,6 +891,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'rec_nodes'}{'contents'}[0]{'parent'} = 
$result_trees{'rec_nodes'};
 $result_trees{'rec_nodes'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'} 
= $result_trees{'rec_nodes'}{'contents'}[1]{'args'}[0];
 $result_trees{'rec_nodes'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'} 
= $result_trees{'rec_nodes'}{'contents'}[1]{'args'}[0];
 $result_trees{'rec_nodes'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'} 
= $result_trees{'rec_nodes'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/sections.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/sectioning/sections.pl,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- t/results/sectioning/sections.pl    7 Dec 2010 20:34:32 -0000       1.22
+++ t/results/sectioning/sections.pl    19 Dec 2010 17:25:10 -0000      1.23
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -51,6 +52,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'sections'}{'contents'}[0]{'parent'} = $result_trees{'sections'};
 $result_trees{'sections'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'sections'}{'contents'}[1]{'args'}[0];
 $result_trees{'sections'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'sections'}{'contents'}[1]{'args'}[0];
 $result_trees{'sections'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'} = 
$result_trees{'sections'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/semi_auto.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/sectioning/semi_auto.pl,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- t/results/sectioning/semi_auto.pl   7 Dec 2010 20:34:32 -0000       1.6
+++ t/results/sectioning/semi_auto.pl   19 Dec 2010 17:25:10 -0000      1.7
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -615,6 +616,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'semi_auto'}{'contents'}[0]{'parent'} = 
$result_trees{'semi_auto'};
 $result_trees{'semi_auto'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'} 
= $result_trees{'semi_auto'}{'contents'}[1]{'args'}[0];
 $result_trees{'semi_auto'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'} 
= $result_trees{'semi_auto'}{'contents'}[1]{'args'}[0];
 $result_trees{'semi_auto'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'} 
= $result_trees{'semi_auto'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/setcontentsaftertitlepage.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/setcontentsaftertitlepage.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- t/results/sectioning/setcontentsaftertitlepage.pl   7 Dec 2010 20:34:32 
-0000       1.2
+++ t/results/sectioning/setcontentsaftertitlepage.pl   19 Dec 2010 17:25:10 
-0000      1.3
@@ -11,6 +11,7 @@
           'parent' => {}
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -535,6 +536,7 @@
   'type' => 'document_root'
 };
 
$result_trees{'setcontentsaftertitlepage'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'setcontentsaftertitlepage'}{'contents'}[0];
+$result_trees{'setcontentsaftertitlepage'}{'contents'}[0]{'parent'} = 
$result_trees{'setcontentsaftertitlepage'};
 
$result_trees{'setcontentsaftertitlepage'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'setcontentsaftertitlepage'}{'contents'}[1]{'args'}[0];
 
$result_trees{'setcontentsaftertitlepage'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'setcontentsaftertitlepage'}{'contents'}[1]{'args'}[0];
 
$result_trees{'setcontentsaftertitlepage'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'setcontentsaftertitlepage'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/setfilename_on_top_and_after_node.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/setfilename_on_top_and_after_node.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- t/results/sectioning/setfilename_on_top_and_after_node.pl   7 Dec 2010 
20:34:32 -0000       1.2
+++ t/results/sectioning/setfilename_on_top_and_after_node.pl   19 Dec 2010 
17:25:10 -0000      1.3
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -170,6 +171,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'setfilename_on_top_and_after_node'}{'contents'}[0]{'parent'} = 
$result_trees{'setfilename_on_top_and_after_node'};
 
$result_trees{'setfilename_on_top_and_after_node'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'setfilename_on_top_and_after_node'}{'contents'}[1]{'args'}[0];
 
$result_trees{'setfilename_on_top_and_after_node'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'setfilename_on_top_and_after_node'}{'contents'}[1]{'args'}[0];
 
$result_trees{'setfilename_on_top_and_after_node'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'setfilename_on_top_and_after_node'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/setshortcontentsaftertitlepage.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/setshortcontentsaftertitlepage.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- t/results/sectioning/setshortcontentsaftertitlepage.pl      7 Dec 2010 
20:34:32 -0000       1.2
+++ t/results/sectioning/setshortcontentsaftertitlepage.pl      19 Dec 2010 
17:25:10 -0000      1.3
@@ -11,6 +11,7 @@
           'parent' => {}
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -535,6 +536,7 @@
   'type' => 'document_root'
 };
 
$result_trees{'setshortcontentsaftertitlepage'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'setshortcontentsaftertitlepage'}{'contents'}[0];
+$result_trees{'setshortcontentsaftertitlepage'}{'contents'}[0]{'parent'} = 
$result_trees{'setshortcontentsaftertitlepage'};
 
$result_trees{'setshortcontentsaftertitlepage'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'setshortcontentsaftertitlepage'}{'contents'}[1]{'args'}[0];
 
$result_trees{'setshortcontentsaftertitlepage'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'setshortcontentsaftertitlepage'}{'contents'}[1]{'args'}[0];
 
$result_trees{'setshortcontentsaftertitlepage'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'setshortcontentsaftertitlepage'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/shortcontents.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/sectioning/shortcontents.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- t/results/sectioning/shortcontents.pl       7 Dec 2010 20:34:32 -0000       
1.2
+++ t/results/sectioning/shortcontents.pl       19 Dec 2010 17:25:10 -0000      
1.3
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -529,6 +530,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'shortcontents'}{'contents'}[0]{'parent'} = 
$result_trees{'shortcontents'};
 
$result_trees{'shortcontents'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'shortcontents'}{'contents'}[1]{'args'}[0];
 
$result_trees{'shortcontents'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'shortcontents'}{'contents'}[1]{'args'}[0];
 
$result_trees{'shortcontents'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'shortcontents'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/some_at_commands_in_ref_nodes.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/some_at_commands_in_ref_nodes.pl,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- t/results/sectioning/some_at_commands_in_ref_nodes.pl       7 Dec 2010 
20:34:32 -0000       1.24
+++ t/results/sectioning/some_at_commands_in_ref_nodes.pl       19 Dec 2010 
17:25:10 -0000      1.25
@@ -13,6 +13,7 @@
           'type' => 'empty_line'
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -1003,6 +1004,7 @@
   'type' => 'document_root'
 };
 
$result_trees{'some_at_commands_in_ref_nodes'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'some_at_commands_in_ref_nodes'}{'contents'}[0];
+$result_trees{'some_at_commands_in_ref_nodes'}{'contents'}[0]{'parent'} = 
$result_trees{'some_at_commands_in_ref_nodes'};
 
$result_trees{'some_at_commands_in_ref_nodes'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'some_at_commands_in_ref_nodes'}{'contents'}[1]{'args'}[0];
 
$result_trees{'some_at_commands_in_ref_nodes'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'some_at_commands_in_ref_nodes'}{'contents'}[1]{'args'}[0];
 
$result_trees{'some_at_commands_in_ref_nodes'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'some_at_commands_in_ref_nodes'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/space_in_node.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/sectioning/space_in_node.pl,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- t/results/sectioning/space_in_node.pl       7 Dec 2010 20:34:32 -0000       
1.4
+++ t/results/sectioning/space_in_node.pl       19 Dec 2010 17:25:10 -0000      
1.5
@@ -13,6 +13,7 @@
           'type' => 'empty_line'
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -307,6 +308,7 @@
   'type' => 'document_root'
 };
 $result_trees{'space_in_node'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'space_in_node'}{'contents'}[0];
+$result_trees{'space_in_node'}{'contents'}[0]{'parent'} = 
$result_trees{'space_in_node'};
 
$result_trees{'space_in_node'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'space_in_node'}{'contents'}[1]{'args'}[0];
 
$result_trees{'space_in_node'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'space_in_node'}{'contents'}[1]{'args'}[0];
 
$result_trees{'space_in_node'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'space_in_node'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/unknown_node_in_menu.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/unknown_node_in_menu.pl,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- t/results/sectioning/unknown_node_in_menu.pl        7 Dec 2010 20:34:32 
-0000       1.8
+++ t/results/sectioning/unknown_node_in_menu.pl        19 Dec 2010 17:25:10 
-0000      1.9
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -131,6 +132,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'unknown_node_in_menu'}{'contents'}[0]{'parent'} = 
$result_trees{'unknown_node_in_menu'};
 
$result_trees{'unknown_node_in_menu'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'unknown_node_in_menu'}{'contents'}[1]{'args'}[0];
 
$result_trees{'unknown_node_in_menu'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'unknown_node_in_menu'}{'contents'}[1]{'args'}[0];
 
$result_trees{'unknown_node_in_menu'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'unknown_node_in_menu'}{'contents'}[1]{'args'}[0];

Index: t/results/sectioning/unnumbered_no_argument.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/unnumbered_no_argument.pl,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- t/results/sectioning/unnumbered_no_argument.pl      7 Dec 2010 20:34:32 
-0000       1.5
+++ t/results/sectioning/unnumbered_no_argument.pl      19 Dec 2010 17:25:10 
-0000      1.6
@@ -6,6 +6,7 @@
   'contents' => [
     {
       'contents' => [],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -36,6 +37,7 @@
   ],
   'type' => 'document_root'
 };
+$result_trees{'unnumbered_no_argument'}{'contents'}[0]{'parent'} = 
$result_trees{'unnumbered_no_argument'};
 
$result_trees{'unnumbered_no_argument'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'unnumbered_no_argument'}{'contents'}[1]{'args'}[0];
 $result_trees{'unnumbered_no_argument'}{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'unnumbered_no_argument'}{'contents'}[1];
 $result_trees{'unnumbered_no_argument'}{'contents'}[1]{'parent'} = 
$result_trees{'unnumbered_no_argument'};

Index: t/results/value/value_in_misc_commands.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/value/value_in_misc_commands.pl,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -b -r1.33 -r1.34
--- t/results/value/value_in_misc_commands.pl   7 Dec 2010 20:34:32 -0000       
1.33
+++ t/results/value/value_in_misc_commands.pl   19 Dec 2010 17:25:10 -0000      
1.34
@@ -33,6 +33,7 @@
           'type' => 'empty_line'
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -2584,6 +2585,7 @@
 
$result_trees{'value_in_misc_commands'}{'contents'}[0]{'contents'}[0]{'args'}[1]{'parent'}
 = $result_trees{'value_in_misc_commands'}{'contents'}[0]{'contents'}[0];
 
$result_trees{'value_in_misc_commands'}{'contents'}[0]{'contents'}[0]{'parent'} 
= $result_trees{'value_in_misc_commands'}{'contents'}[0];
 
$result_trees{'value_in_misc_commands'}{'contents'}[0]{'contents'}[1]{'parent'} 
= $result_trees{'value_in_misc_commands'}{'contents'}[0];
+$result_trees{'value_in_misc_commands'}{'contents'}[0]{'parent'} = 
$result_trees{'value_in_misc_commands'};
 
$result_trees{'value_in_misc_commands'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'value_in_misc_commands'}{'contents'}[1]{'args'}[0];
 
$result_trees{'value_in_misc_commands'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'value_in_misc_commands'}{'contents'}[1]{'args'}[0];
 
$result_trees{'value_in_misc_commands'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'value_in_misc_commands'}{'contents'}[1]{'args'}[0];

Index: t/results/value/value_in_node.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/value/value_in_node.pl,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -b -r1.39 -r1.40
--- t/results/value/value_in_node.pl    7 Dec 2010 20:34:32 -0000       1.39
+++ t/results/value/value_in_node.pl    19 Dec 2010 17:25:10 -0000      1.40
@@ -33,6 +33,7 @@
           'type' => 'empty_line'
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -660,6 +661,7 @@
 
$result_trees{'value_in_node'}{'contents'}[0]{'contents'}[0]{'args'}[1]{'parent'}
 = $result_trees{'value_in_node'}{'contents'}[0]{'contents'}[0];
 $result_trees{'value_in_node'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'value_in_node'}{'contents'}[0];
 $result_trees{'value_in_node'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'value_in_node'}{'contents'}[0];
+$result_trees{'value_in_node'}{'contents'}[0]{'parent'} = 
$result_trees{'value_in_node'};
 
$result_trees{'value_in_node'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'value_in_node'}{'contents'}[1]{'args'}[0];
 
$result_trees{'value_in_node'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'value_in_node'}{'contents'}[1]{'args'}[0];
 $result_trees{'value_in_node'}{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'value_in_node'}{'contents'}[1];

Index: t/results/value/value_node_directions.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/value/value_node_directions.pl,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- t/results/value/value_node_directions.pl    7 Dec 2010 20:34:32 -0000       
1.31
+++ t/results/value/value_node_directions.pl    19 Dec 2010 17:25:10 -0000      
1.32
@@ -33,6 +33,7 @@
           'type' => 'empty_line'
         }
       ],
+      'parent' => {},
       'type' => 'text_root'
     },
     {
@@ -500,6 +501,7 @@
 
$result_trees{'value_node_directions'}{'contents'}[0]{'contents'}[0]{'args'}[1]{'parent'}
 = $result_trees{'value_node_directions'}{'contents'}[0]{'contents'}[0];
 $result_trees{'value_node_directions'}{'contents'}[0]{'contents'}[0]{'parent'} 
= $result_trees{'value_node_directions'}{'contents'}[0];
 $result_trees{'value_node_directions'}{'contents'}[0]{'contents'}[1]{'parent'} 
= $result_trees{'value_node_directions'}{'contents'}[0];
+$result_trees{'value_node_directions'}{'contents'}[0]{'parent'} = 
$result_trees{'value_node_directions'};
 
$result_trees{'value_node_directions'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'value_node_directions'}{'contents'}[1]{'args'}[0];
 
$result_trees{'value_node_directions'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'value_node_directions'}{'contents'}[1]{'args'}[0];
 $result_trees{'value_node_directions'}{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'value_node_directions'}{'contents'}[1];



reply via email to

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