texinfo-commits
[Top][All Lists]
Advanced

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

texinfo/tp texi2any.pl Texinfo/Parser.pm Texinf...


From: Patrice Dumas
Subject: texinfo/tp texi2any.pl Texinfo/Parser.pm Texinf...
Date: Thu, 14 Feb 2013 18:59:26 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        13/02/14 18:59:25

Modified files:
        tp             : texi2any.pl 
        tp/Texinfo     : Parser.pm Structuring.pm 
        tp/t           : 10menu.t 
        tp/t/results/converters_tests: spaces_in_empty_node_names.pl 
                                       spaces_in_node_names.pl 
        tp/t/results/info_tests: top_node_normalization.pl 
        tp/t/results/sectioning: double_top_in_menu.pl 
                                 equivalent_labels.pl 
                                 equivalent_nodes.pl 
                                 top_node_no_menu_direction.pl 
                                 unknown_node_in_menu.pl 
        tp/tests/sectioning/res_parser/equivalent_nodes: 
                                                         equivalent_nodes.2 
        tp/tests/sectioning/res_parser/equivalent_nodes_no_node: 
                                                                 
equivalent_nodes.2 
        tp/tests/sectioning/res_parser/equivalent_nodes_test_renamed_nodes: 
                                                                            
equivalent_nodes.2 
        tp/tests/sectioning/res_parser_html/equivalent_nodes: 
                                                              
equivalent_nodes.2 
        tp/tests/sectioning/res_parser_html/equivalent_nodes_no_node: 
                                                                      
equivalent_nodes.2 
        
tp/tests/sectioning/res_parser_html/equivalent_nodes_test_renamed_nodes: 
                                                                                
 equivalent_nodes.2 
Added files:
        tp/t/results/menu: detailmenu_unknown_node.pl 

Log message:
        Warn for unknown nodes also in @detailmenu.  Report from Jose E. 
Marchesi
        and John Darrington.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/texi2any.pl?cvsroot=texinfo&r1=1.173&r2=1.174
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Parser.pm?cvsroot=texinfo&r1=1.423&r2=1.424
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Structuring.pm?cvsroot=texinfo&r1=1.148&r2=1.149
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/10menu.t?cvsroot=texinfo&r1=1.32&r2=1.33
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/converters_tests/spaces_in_empty_node_names.pl?cvsroot=texinfo&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/converters_tests/spaces_in_node_names.pl?cvsroot=texinfo&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/info_tests/top_node_normalization.pl?cvsroot=texinfo&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/menu/detailmenu_unknown_node.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/double_top_in_menu.pl?cvsroot=texinfo&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/equivalent_labels.pl?cvsroot=texinfo&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/equivalent_nodes.pl?cvsroot=texinfo&r1=1.32&r2=1.33
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/top_node_no_menu_direction.pl?cvsroot=texinfo&r1=1.30&r2=1.31
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/unknown_node_in_menu.pl?cvsroot=texinfo&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/tests/sectioning/res_parser/equivalent_nodes/equivalent_nodes.2?cvsroot=texinfo&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/tests/sectioning/res_parser/equivalent_nodes_no_node/equivalent_nodes.2?cvsroot=texinfo&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/tests/sectioning/res_parser/equivalent_nodes_test_renamed_nodes/equivalent_nodes.2?cvsroot=texinfo&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/tests/sectioning/res_parser_html/equivalent_nodes/equivalent_nodes.2?cvsroot=texinfo&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/tests/sectioning/res_parser_html/equivalent_nodes_no_node/equivalent_nodes.2?cvsroot=texinfo&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/tests/sectioning/res_parser_html/equivalent_nodes_test_renamed_nodes/equivalent_nodes.2?cvsroot=texinfo&r1=1.8&r2=1.9

Patches:
Index: texi2any.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/texi2any.pl,v
retrieving revision 1.173
retrieving revision 1.174
diff -u -b -r1.173 -r1.174
--- texi2any.pl 2 Feb 2013 13:57:40 -0000       1.173
+++ texi2any.pl 14 Feb 2013 18:59:23 -0000      1.174
@@ -203,7 +203,7 @@
 
 # we want a reliable way to switch locale, so we don't use the system
 # gettext.
-Locale::Messages->select_package ('gettext_pp');
+Locale::Messages->select_package('gettext_pp');
 
 #my @search_locale_dirs = ("$datadir/locale", (map $_ . '/LocaleData', @INC),
 #  qw (/usr/share/locale /usr/local/share/locale));

Index: Texinfo/Parser.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Parser.pm,v
retrieving revision 1.423
retrieving revision 1.424
diff -u -b -r1.423 -r1.424
--- Texinfo/Parser.pm   2 Feb 2013 23:18:24 -0000       1.423
+++ Texinfo/Parser.pm   14 Feb 2013 18:59:23 -0000      1.424
@@ -276,7 +276,7 @@
 my %global_multiple_commands;
 foreach my $global_multiple_command (
   'author', 'footnote', 'hyphenation', 'insertcopying', 'printindex',
-  'subtitle','titlefont', 'listoffloats',
+  'subtitle','titlefont', 'listoffloats', 'detailmenu',
   keys(%Texinfo::Common::document_settable_at_commands), ) {
   $global_multiple_commands{$global_multiple_command} = 1;
 }

Index: Texinfo/Structuring.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Structuring.pm,v
retrieving revision 1.148
retrieving revision 1.149
diff -u -b -r1.148 -r1.149
--- Texinfo/Structuring.pm      4 Feb 2013 13:03:10 -0000       1.148
+++ Texinfo/Structuring.pm      14 Feb 2013 18:59:23 -0000      1.149
@@ -523,6 +523,43 @@
  'up' => 'Up'
 );
 
+sub _check_menu_entry($$$$)
+{
+  my $self = shift;
+  my $command = shift;
+  my $menu_content = shift;
+  my $check_menu_entries = shift;
+
+  my $menu_node;
+
+  if 
(!$self->{'labels'}->{$menu_content->{'extra'}->{'menu_entry_node'}->{'normalized'}})
 {
+    if ($check_menu_entries) {
+      $self->line_error(sprintf($self->
+       __("address@hidden reference to nonexistent node `%s'"), 
+         $command,
+         Texinfo::Parser::_node_extra_to_texi(
+                 $menu_content->{'extra'}->{'menu_entry_node'})), 
+        $menu_content->{'line_nr'});
+    }
+  } else {
+    my $normalized_menu_node
+      = $menu_content->{'extra'}->{'menu_entry_node'}->{'normalized'};
+    $menu_node = $self->{'labels'}->{$normalized_menu_node};
+    if ($check_menu_entries and ! _check_node_same_texinfo_code($menu_node, 
+        $menu_content->{'extra'}->{'menu_entry_node'})) {
+      $self->line_warn(sprintf($self->
+       __("address@hidden entry node name `%s' different from %s name `%s'"), 
+         $command,
+         Texinfo::Parser::_node_extra_to_texi(
+                 $menu_content->{'extra'}->{'menu_entry_node'}),
+         $menu_node->{'cmdname'},
+         Texinfo::Parser::_node_extra_to_texi($menu_node->{'extra'})),
+        $menu_content->{'line_nr'});
+    }
+  }
+  return $menu_node;
+}
+
 # first go through all the menu and set menu_up, menu_next, menu_prev
 # and warn for unknown nodes.
 # then go through all the nodes and set directions
@@ -532,6 +569,9 @@
   return undef unless ($self->{'nodes'} and @{$self->{'nodes'}});
   my $top_node;
   my $top_node_up;
+
+  my $check_menu_entries = (!$self->{'novalidate'} and $self->{'SHOW_MENU'});
+
   foreach my $node (@{$self->{'nodes'}}) {
     if ($node->{'extra'}->{'normalized'} eq 'Top') {
       $top_node = $node;
@@ -553,7 +593,6 @@
       # menu entry before the first node may be treated slightly differently.
       # at least, there are no error messages for them
 
-      my $check_menu_entries = (!$self->{'novalidate'} and 
$self->{'SHOW_MENU'});
       foreach my $menu (@{$node->{'menus'}}) {
         my $previous_node;
         foreach my $menu_content (@{$menu->{'contents'}}) {
@@ -562,31 +601,12 @@
             my $menu_node;
             my $external_node;
             if 
(!$menu_content->{'extra'}->{'menu_entry_node'}->{'manual_content'}) {
-              if 
(!$self->{'labels'}->{$menu_content->{'extra'}->{'menu_entry_node'}->{'normalized'}})
 {
-                if ($check_menu_entries) {
-                  $self->line_error(sprintf($self->
-                   __("menu reference to nonexistent node `%s'"), 
-                     Texinfo::Parser::_node_extra_to_texi(
-                             $menu_content->{'extra'}->{'menu_entry_node'})), 
-                    $menu_content->{'line_nr'});
-                }
-              } else {
+              $menu_node = _check_menu_entry($self, 'menu', $menu_content, 
+                                                    $check_menu_entries);
                 # this may happen more than once for a given node if the node 
                 # is in more than one menu.  Therefore all the menu up node 
                 # are kept in $menu_node->{'menu_up_hash'}
-                my $normalized_menu_node
-                  = 
$menu_content->{'extra'}->{'menu_entry_node'}->{'normalized'};
-                $menu_node = $self->{'labels'}->{$normalized_menu_node};
-                if ($check_menu_entries and ! 
_check_node_same_texinfo_code($menu_node, 
-                    $menu_content->{'extra'}->{'menu_entry_node'})) {
-                  $self->line_warn(sprintf($self->
-                   __("menu entry node name `%s' different from %s name 
`%s'"), 
-                     Texinfo::Parser::_node_extra_to_texi(
-                             $menu_content->{'extra'}->{'menu_entry_node'}),
-                     $menu_node->{'cmdname'},
-                     
Texinfo::Parser::_node_extra_to_texi($menu_node->{'extra'})),
-                    $menu_content->{'line_nr'});
-                }
+              if ($menu_node) {
                 $menu_node->{'menu_up'} = $node;
                 
$menu_node->{'menu_up_hash'}->{$node->{'extra'}->{'normalized'}} = 1;
               }
@@ -612,6 +632,23 @@
       }
     }
   }
+  if ($check_menu_entries) {
+    my $global_commands = $self->global_commands_information();
+    if ($global_commands->{'detailmenu'}) {
+      foreach my $detailmenu (@{$global_commands->{'detailmenu'}}) {
+        foreach my $menu_content (@{$detailmenu->{'contents'}}) {
+          if ($menu_content->{'extra'}
+             and $menu_content->{'extra'}->{'menu_entry_node'}) {
+            if 
(!$menu_content->{'extra'}->{'menu_entry_node'}->{'manual_content'}) {
+              _check_menu_entry($self, 'detailmenu', $menu_content, 
+                                $check_menu_entries);
+            }
+          }
+        }
+      }
+    }
+  }
+
   $top_node = $self->{'nodes'}->[0] if (!$top_node);
   foreach my $node (@{$self->{'nodes'}}) {
     # warn if node is not top node and doesn't appear in menu
@@ -1755,7 +1792,7 @@
       foreach my $entry (@{$menu->{'contents'}}) {
         if ($entry->{'type'} and $entry->{'type'} eq 'menu_entry') {
           push @master_menu_contents, Texinfo::Common::copy_tree($entry);
-          # gather node cheldren to recusrsively print their menus
+          # gather node children to recusrsively print their menus
           my $entry_node = $entry->{'extra'}->{'menu_entry_node'};
           if (! $entry_node->{'manual_content'}
               and defined($entry_node->{'normalized'})) {

Index: t/10menu.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/10menu.t,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -b -r1.32 -r1.33
--- t/10menu.t  10 Feb 2013 16:45:06 -0000      1.32
+++ t/10menu.t  14 Feb 2013 18:59:23 -0000      1.33
@@ -177,6 +177,15 @@
 @node unnumberedsec
 @unnumberedsec unnumberedsec
 '],
+['detailmenu_unknown_node',
+'@node Top
+
address@hidden
address@hidden
+* unknown::
address@hidden detailmenu
address@hidden menu
+'],
 ['reference_to_external_manual',
 '
 @node Top

Index: t/results/converters_tests/spaces_in_empty_node_names.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/converters_tests/spaces_in_empty_node_names.pl,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- t/results/converters_tests/spaces_in_empty_node_names.pl    2 Feb 2013 
23:18:26 -0000       1.10
+++ t/results/converters_tests/spaces_in_empty_node_names.pl    14 Feb 2013 
18:59:24 -0000      1.11
@@ -1018,30 +1018,30 @@
     'type' => 'error'
   },
   {
-    'error_line' => ':4: menu reference to nonexistent node `@ @ \'
+    'error_line' => ':4: @menu reference to nonexistent node `@ @ \'
 ',
     'file_name' => '',
     'line_nr' => 4,
     'macro' => '',
-    'text' => 'menu reference to nonexistent node `@ @ \'',
+    'text' => '@menu reference to nonexistent node `@ @ \'',
     'type' => 'error'
   },
   {
-    'error_line' => ':5: menu reference to nonexistent node address@hidden:  
:}\'
+    'error_line' => ':5: @menu reference to nonexistent node address@hidden:  
:}\'
 ',
     'file_name' => '',
     'line_nr' => 5,
     'macro' => '',
-    'text' => 'menu reference to nonexistent node address@hidden:  :}\'',
+    'text' => '@menu reference to nonexistent node address@hidden:  :}\'',
     'type' => 'error'
   },
   {
-    'error_line' => ':6: menu reference to nonexistent node `@ \'
+    'error_line' => ':6: @menu reference to nonexistent node `@ \'
 ',
     'file_name' => '',
     'line_nr' => 6,
     'macro' => '',
-    'text' => 'menu reference to nonexistent node `@ \'',
+    'text' => '@menu reference to nonexistent node `@ \'',
     'type' => 'error'
   }
 ];

Index: t/results/converters_tests/spaces_in_node_names.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/converters_tests/spaces_in_node_names.pl,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- t/results/converters_tests/spaces_in_node_names.pl  2 Feb 2013 23:18:26 
-0000       1.10
+++ t/results/converters_tests/spaces_in_node_names.pl  14 Feb 2013 18:59:24 
-0000      1.11
@@ -1117,12 +1117,12 @@
     'type' => 'warning'
   },
   {
-    'error_line' => ':6: warning: menu entry node name `c@ \' different from 
node name address@hidden  }\'
+    'error_line' => ':6: warning: @menu entry node name `c@ \' different from 
node name address@hidden  }\'
 ',
     'file_name' => '',
     'line_nr' => 6,
     'macro' => '',
-    'text' => 'menu entry node name `c@ \' different from node name 
address@hidden  }\'',
+    'text' => '@menu entry node name `c@ \' different from node name 
address@hidden  }\'',
     'type' => 'warning'
   }
 ];

Index: t/results/info_tests/top_node_normalization.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/info_tests/top_node_normalization.pl,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- t/results/info_tests/top_node_normalization.pl      2 Feb 2013 23:18:31 
-0000       1.21
+++ t/results/info_tests/top_node_normalization.pl      14 Feb 2013 18:59:24 
-0000      1.22
@@ -435,12 +435,12 @@
     'type' => 'warning'
   },
   {
-    'error_line' => ':6: warning: menu entry node name `tOP\' different from 
node name `ToP\'
+    'error_line' => ':6: warning: @menu entry node name `tOP\' different from 
node name `ToP\'
 ',
     'file_name' => '',
     'line_nr' => 6,
     'macro' => '',
-    'text' => 'menu entry node name `tOP\' different from node name `ToP\'',
+    'text' => '@menu entry node name `tOP\' different from node name `ToP\'',
     'type' => 'warning'
   },
   {

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.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- t/results/sectioning/double_top_in_menu.pl  2 Feb 2013 23:18:39 -0000       
1.18
+++ t/results/sectioning/double_top_in_menu.pl  14 Feb 2013 18:59:24 -0000      
1.19
@@ -540,21 +540,21 @@
     'type' => 'error continuation'
   },
   {
-    'error_line' => ':5: warning: menu entry node name `top\' different from 
node name `ToP\'
+    'error_line' => ':5: warning: @menu entry node name `top\' different from 
node name `ToP\'
 ',
     'file_name' => '',
     'line_nr' => 5,
     'macro' => '',
-    'text' => 'menu entry node name `top\' different from node name `ToP\'',
+    'text' => '@menu entry node name `top\' different from node name `ToP\'',
     'type' => 'warning'
   },
   {
-    'error_line' => ':6: warning: menu entry node name `TOP\' different from 
node name `ToP\'
+    'error_line' => ':6: warning: @menu entry node name `TOP\' different from 
node name `ToP\'
 ',
     'file_name' => '',
     'line_nr' => 6,
     'macro' => '',
-    'text' => 'menu entry node name `TOP\' different from node name `ToP\'',
+    'text' => '@menu entry node name `TOP\' different from node name `ToP\'',
     'type' => 'warning'
   },
   {

Index: t/results/sectioning/equivalent_labels.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/equivalent_labels.pl,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- t/results/sectioning/equivalent_labels.pl   2 Feb 2013 23:18:39 -0000       
1.13
+++ t/results/sectioning/equivalent_labels.pl   14 Feb 2013 18:59:24 -0000      
1.14
@@ -693,21 +693,21 @@
 
 $result_errors{'equivalent_labels'} = [
   {
-    'error_line' => ':10: warning: menu entry node name `anch\' different from 
anchor name address@hidden'
+    'error_line' => ':10: warning: @menu entry node name `anch\' different 
from anchor name address@hidden'
 ',
     'file_name' => '',
     'line_nr' => 10,
     'macro' => '',
-    'text' => 'menu entry node name `anch\' different from anchor name 
address@hidden'',
+    'text' => '@menu entry node name `anch\' different from anchor name 
address@hidden'',
     'type' => 'warning'
   },
   {
-    'error_line' => ':11: warning: menu entry node name address@hidden' 
different from float name `floa\'
+    'error_line' => ':11: warning: @menu entry node name address@hidden' 
different from float name `floa\'
 ',
     'file_name' => '',
     'line_nr' => 11,
     'macro' => '',
-    'text' => 'menu entry node name address@hidden' different from float name 
`floa\'',
+    'text' => '@menu entry node name address@hidden' different from float name 
`floa\'',
     'type' => 'warning'
   }
 ];

Index: t/results/sectioning/equivalent_nodes.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/sectioning/equivalent_nodes.pl,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -b -r1.32 -r1.33
--- t/results/sectioning/equivalent_nodes.pl    2 Feb 2013 23:18:39 -0000       
1.32
+++ t/results/sectioning/equivalent_nodes.pl    14 Feb 2013 18:59:24 -0000      
1.33
@@ -517,12 +517,12 @@
     'type' => 'warning'
   },
   {
-    'error_line' => ':4: warning: menu entry node name address@hidden' 
different from node name address@hidden'
+    'error_line' => ':4: warning: @menu entry node name address@hidden' 
different from node name address@hidden'
 ',
     'file_name' => '',
     'line_nr' => 4,
     'macro' => '',
-    'text' => 'menu entry node name address@hidden' different from node name 
address@hidden'',
+    'text' => '@menu entry node name address@hidden' different from node name 
address@hidden'',
     'type' => 'warning'
   },
   {

Index: t/results/sectioning/top_node_no_menu_direction.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/sectioning/top_node_no_menu_direction.pl,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -b -r1.30 -r1.31
--- t/results/sectioning/top_node_no_menu_direction.pl  2 Feb 2013 23:18:40 
-0000       1.30
+++ t/results/sectioning/top_node_no_menu_direction.pl  14 Feb 2013 18:59:24 
-0000      1.31
@@ -500,12 +500,12 @@
 
 $result_errors{'top_node_no_menu_direction'} = [
   {
-    'error_line' => ':5: warning: menu entry node name `TOP\' different from 
node name `Top\'
+    'error_line' => ':5: warning: @menu entry node name `TOP\' different from 
node name `Top\'
 ',
     'file_name' => '',
     'line_nr' => 5,
     'macro' => '',
-    'text' => 'menu entry node name `TOP\' different from node name `Top\'',
+    'text' => '@menu entry node name `TOP\' different from node name `Top\'',
     'type' => 'warning'
   },
   {

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.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- t/results/sectioning/unknown_node_in_menu.pl        2 Feb 2013 23:18:40 
-0000       1.21
+++ t/results/sectioning/unknown_node_in_menu.pl        14 Feb 2013 18:59:24 
-0000      1.22
@@ -286,12 +286,12 @@
 
 $result_errors{'unknown_node_in_menu'} = [
   {
-    'error_line' => ':4: menu reference to nonexistent node `unknown\'
+    'error_line' => ':4: @menu reference to nonexistent node `unknown\'
 ',
     'file_name' => '',
     'line_nr' => 4,
     'macro' => '',
-    'text' => 'menu reference to nonexistent node `unknown\'',
+    'text' => '@menu reference to nonexistent node `unknown\'',
     'type' => 'error'
   }
 ];

Index: tests/sectioning/res_parser/equivalent_nodes/equivalent_nodes.2
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/tests/sectioning/res_parser/equivalent_nodes/equivalent_nodes.2,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- tests/sectioning/res_parser/equivalent_nodes/equivalent_nodes.2     2 Feb 
2013 23:18:52 -0000       1.7
+++ tests/sectioning/res_parser/equivalent_nodes/equivalent_nodes.2     14 Feb 
2013 18:59:25 -0000      1.8
@@ -1,7 +1,7 @@
 equivalent_nodes.texi:17: @float address@hidden' previously defined
 equivalent_nodes.texi:15: here is the previous definition as @node
 equivalent_nodes.texi:25: warning: @ref to address@hidden', different from 
node name `node'
-equivalent_nodes.texi:12: warning: menu entry node name address@hidden' 
different from node name `node'
+equivalent_nodes.texi:12: warning: @menu entry node name address@hidden' 
different from node name `node'
 equivalent_nodes.texi:5: warning: unreferenced node `before top'
 equivalent_nodes.texi:5: warning: Next pointer address@hidden' (for node 
`before top') different from node name `node'
 equivalent_nodes-noderename.cnf:8: warning: no node to be renamed

Index: tests/sectioning/res_parser/equivalent_nodes_no_node/equivalent_nodes.2
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/tests/sectioning/res_parser/equivalent_nodes_no_node/equivalent_nodes.2,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- tests/sectioning/res_parser/equivalent_nodes_no_node/equivalent_nodes.2     
2 Feb 2013 23:18:52 -0000       1.7
+++ tests/sectioning/res_parser/equivalent_nodes_no_node/equivalent_nodes.2     
14 Feb 2013 18:59:25 -0000      1.8
@@ -1,7 +1,7 @@
 equivalent_nodes.texi:17: @float address@hidden' previously defined
 equivalent_nodes.texi:15: here is the previous definition as @node
 equivalent_nodes.texi:25: warning: @ref to address@hidden', different from 
node name `node'
-equivalent_nodes.texi:12: warning: menu entry node name address@hidden' 
different from node name `node'
+equivalent_nodes.texi:12: warning: @menu entry node name address@hidden' 
different from node name `node'
 equivalent_nodes.texi:5: warning: unreferenced node `before top'
 equivalent_nodes.texi:5: warning: Next pointer address@hidden' (for node 
`before top') different from node name `node'
 equivalent_nodes-noderename.cnf:8: warning: no node to be renamed

Index: 
tests/sectioning/res_parser/equivalent_nodes_test_renamed_nodes/equivalent_nodes.2
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/tests/sectioning/res_parser/equivalent_nodes_test_renamed_nodes/equivalent_nodes.2,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- 
tests/sectioning/res_parser/equivalent_nodes_test_renamed_nodes/equivalent_nodes.2
  2 Feb 2013 23:18:52 -0000       1.8
+++ 
tests/sectioning/res_parser/equivalent_nodes_test_renamed_nodes/equivalent_nodes.2
  14 Feb 2013 18:59:25 -0000      1.9
@@ -1,7 +1,7 @@
 equivalent_nodes.texi:17: @float address@hidden' previously defined
 equivalent_nodes.texi:15: here is the previous definition as @node
 equivalent_nodes.texi:25: warning: @ref to address@hidden', different from 
node name `node'
-equivalent_nodes.texi:12: warning: menu entry node name address@hidden' 
different from node name `node'
+equivalent_nodes.texi:12: warning: @menu entry node name address@hidden' 
different from node name `node'
 equivalent_nodes.texi:5: warning: unreferenced node `before top'
 equivalent_nodes.texi:5: warning: Next pointer address@hidden' (for node 
`before top') different from node name `node'
 equivalent_nodes-noderename.cnf:8: warning: no node to be renamed

Index: tests/sectioning/res_parser_html/equivalent_nodes/equivalent_nodes.2
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/tests/sectioning/res_parser_html/equivalent_nodes/equivalent_nodes.2,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- tests/sectioning/res_parser_html/equivalent_nodes/equivalent_nodes.2        
2 Feb 2013 23:18:53 -0000       1.7
+++ tests/sectioning/res_parser_html/equivalent_nodes/equivalent_nodes.2        
14 Feb 2013 18:59:25 -0000      1.8
@@ -1,7 +1,7 @@
 equivalent_nodes.texi:17: @float address@hidden' previously defined
 equivalent_nodes.texi:15: here is the previous definition as @node
 equivalent_nodes.texi:25: warning: @ref to address@hidden', different from 
node name `node'
-equivalent_nodes.texi:12: warning: menu entry node name address@hidden' 
different from node name `node'
+equivalent_nodes.texi:12: warning: @menu entry node name address@hidden' 
different from node name `node'
 equivalent_nodes.texi:5: warning: unreferenced node `before top'
 equivalent_nodes.texi:5: warning: Next pointer address@hidden' (for node 
`before top') different from node name `node'
 equivalent_nodes-noderename.cnf:8: warning: no node to be renamed

Index: 
tests/sectioning/res_parser_html/equivalent_nodes_no_node/equivalent_nodes.2
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/tests/sectioning/res_parser_html/equivalent_nodes_no_node/equivalent_nodes.2,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- 
tests/sectioning/res_parser_html/equivalent_nodes_no_node/equivalent_nodes.2    
    2 Feb 2013 23:18:53 -0000       1.7
+++ 
tests/sectioning/res_parser_html/equivalent_nodes_no_node/equivalent_nodes.2    
    14 Feb 2013 18:59:25 -0000      1.8
@@ -1,7 +1,7 @@
 equivalent_nodes.texi:17: @float address@hidden' previously defined
 equivalent_nodes.texi:15: here is the previous definition as @node
 equivalent_nodes.texi:25: warning: @ref to address@hidden', different from 
node name `node'
-equivalent_nodes.texi:12: warning: menu entry node name address@hidden' 
different from node name `node'
+equivalent_nodes.texi:12: warning: @menu entry node name address@hidden' 
different from node name `node'
 equivalent_nodes.texi:5: warning: unreferenced node `before top'
 equivalent_nodes.texi:5: warning: Next pointer address@hidden' (for node 
`before top') different from node name `node'
 equivalent_nodes-noderename.cnf:8: warning: no node to be renamed

Index: 
tests/sectioning/res_parser_html/equivalent_nodes_test_renamed_nodes/equivalent_nodes.2
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/tests/sectioning/res_parser_html/equivalent_nodes_test_renamed_nodes/equivalent_nodes.2,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- 
tests/sectioning/res_parser_html/equivalent_nodes_test_renamed_nodes/equivalent_nodes.2
     2 Feb 2013 23:18:53 -0000       1.8
+++ 
tests/sectioning/res_parser_html/equivalent_nodes_test_renamed_nodes/equivalent_nodes.2
     14 Feb 2013 18:59:25 -0000      1.9
@@ -1,7 +1,7 @@
 equivalent_nodes.texi:17: @float address@hidden' previously defined
 equivalent_nodes.texi:15: here is the previous definition as @node
 equivalent_nodes.texi:25: warning: @ref to address@hidden', different from 
node name `node'
-equivalent_nodes.texi:12: warning: menu entry node name address@hidden' 
different from node name `node'
+equivalent_nodes.texi:12: warning: @menu entry node name address@hidden' 
different from node name `node'
 equivalent_nodes.texi:5: warning: unreferenced node `before top'
 equivalent_nodes.texi:5: warning: Next pointer address@hidden' (for node 
`before top') different from node name `node'
 equivalent_nodes-noderename.cnf:8: warning: no node to be renamed

Index: t/results/menu/detailmenu_unknown_node.pl
===================================================================
RCS file: t/results/menu/detailmenu_unknown_node.pl
diff -N t/results/menu/detailmenu_unknown_node.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/menu/detailmenu_unknown_node.pl   14 Feb 2013 18:59:24 -0000      
1.1
@@ -0,0 +1,467 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors 
+   %result_indices %result_sectioning %result_nodes %result_menus
+   %result_floats %result_converted %result_converted_errors 
+   %result_elements %result_directions_text);
+
+use utf8;
+
+$result_trees{'detailmenu_unknown_node'} = {
+  'contents' => [
+    {
+      'contents' => [],
+      'parent' => {},
+      'type' => 'text_root'
+    },
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'extra' => {
+                'command' => {}
+              },
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'parent' => {},
+              'text' => 'Top'
+            },
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'spaces_at_end'
+            }
+          ],
+          'parent' => {},
+          'type' => 'misc_line_arg'
+        }
+      ],
+      'cmdname' => 'node',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'cmdname' => 'menu',
+          'contents' => [
+            {
+              'extra' => {
+                'command' => {}
+              },
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'empty_line_after_command'
+            },
+            {
+              'cmdname' => 'detailmenu',
+              'contents' => [
+                {
+                  'extra' => {
+                    'command' => {}
+                  },
+                  'parent' => {},
+                  'text' => '
+',
+                  'type' => 'empty_line_after_command'
+                },
+                {
+                  'args' => [
+                    {
+                      'parent' => {},
+                      'text' => '* ',
+                      'type' => 'menu_entry_leading_text'
+                    },
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => 'unknown'
+                        }
+                      ],
+                      'parent' => {},
+                      'type' => 'menu_entry_node'
+                    },
+                    {
+                      'parent' => {},
+                      'text' => '::',
+                      'type' => 'menu_entry_separator'
+                    },
+                    {
+                      'contents' => [
+                        {
+                          'contents' => [
+                            {
+                              'parent' => {},
+                              'text' => '
+'
+                            }
+                          ],
+                          'parent' => {},
+                          'type' => 'preformatted'
+                        }
+                      ],
+                      'parent' => {},
+                      'type' => 'menu_entry_description'
+                    }
+                  ],
+                  'extra' => {
+                    'menu_entry_description' => {},
+                    'menu_entry_node' => {
+                      'node_content' => [
+                        {}
+                      ],
+                      'normalized' => 'unknown'
+                    }
+                  },
+                  'line_nr' => {
+                    'file_name' => '',
+                    'line_nr' => 5,
+                    'macro' => ''
+                  },
+                  'parent' => {},
+                  'type' => 'menu_entry'
+                },
+                {
+                  'args' => [
+                    {
+                      'contents' => [
+                        {
+                          'extra' => {
+                            'command' => {}
+                          },
+                          'parent' => {},
+                          'text' => ' ',
+                          'type' => 'empty_spaces_after_command'
+                        },
+                        {
+                          'parent' => {},
+                          'text' => 'detailmenu'
+                        },
+                        {
+                          'parent' => {},
+                          'text' => '
+',
+                          'type' => 'spaces_at_end'
+                        }
+                      ],
+                      'parent' => {},
+                      'type' => 'misc_line_arg'
+                    }
+                  ],
+                  'cmdname' => 'end',
+                  'extra' => {
+                    'command' => {},
+                    'command_argument' => 'detailmenu',
+                    'spaces_after_command' => {},
+                    'text_arg' => 'detailmenu'
+                  },
+                  'line_nr' => {
+                    'file_name' => '',
+                    'line_nr' => 6,
+                    'macro' => ''
+                  },
+                  'parent' => {}
+                }
+              ],
+              'extra' => {
+                'end_command' => {},
+                'spaces_after_command' => {}
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 4,
+                'macro' => ''
+              },
+              'parent' => {}
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'extra' => {
+                        'command' => {}
+                      },
+                      'parent' => {},
+                      'text' => ' ',
+                      'type' => 'empty_spaces_after_command'
+                    },
+                    {
+                      'parent' => {},
+                      'text' => 'menu'
+                    },
+                    {
+                      'parent' => {},
+                      'text' => '
+',
+                      'type' => 'spaces_at_end'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'misc_line_arg'
+                }
+              ],
+              'cmdname' => 'end',
+              'extra' => {
+                'command' => {},
+                'command_argument' => 'menu',
+                'spaces_after_command' => {},
+                'text_arg' => 'menu'
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 7,
+                'macro' => ''
+              },
+              'parent' => {}
+            }
+          ],
+          'extra' => {
+            'end_command' => {},
+            'spaces_after_command' => {}
+          },
+          'line_nr' => {
+            'file_name' => '',
+            'line_nr' => 3,
+            'macro' => ''
+          },
+          'parent' => {}
+        }
+      ],
+      'extra' => {
+        'node_content' => [
+          {}
+        ],
+        'nodes_manuals' => [
+          {
+            'node_content' => [],
+            'normalized' => 'Top'
+          }
+        ],
+        'normalized' => 'Top',
+        'spaces_after_command' => {}
+      },
+      'line_nr' => {
+        'file_name' => '',
+        'line_nr' => 1,
+        'macro' => ''
+      },
+      'parent' => {}
+    }
+  ],
+  'type' => 'document_root'
+};
+$result_trees{'detailmenu_unknown_node'}{'contents'}[0]{'parent'} = 
$result_trees{'detailmenu_unknown_node'};
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
 = $result_trees{'detailmenu_unknown_node'}{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'args'}[0];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'args'}[0];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'args'}[0];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'detailmenu_unknown_node'}{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'command'}
 = $result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'command'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[1]{'parent'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[2]{'parent'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[3]{'contents'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[3]{'contents'}[0];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[3]{'contents'}[0]{'parent'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[3];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[3]{'parent'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'extra'}{'menu_entry_description'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[3];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'extra'}{'menu_entry_node'}{'node_content'}[0]
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[1]{'contents'}[0];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'parent'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[2];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0]{'parent'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[2];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'extra'}{'command'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'extra'}{'spaces_after_command'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'parent'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'extra'}{'end_command'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[2];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'extra'}{'spaces_after_command'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[0];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'parent'}
 = $result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[2];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0]{'parent'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[2];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'extra'}{'command'}
 = $result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'extra'}{'spaces_after_command'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'parent'}
 = $result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'extra'}{'end_command'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[2];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'extra'}{'spaces_after_command'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'contents'}[0];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'contents'}[1]{'parent'}
 = $result_trees{'detailmenu_unknown_node'}{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'extra'}{'node_content'}[0]
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'args'}[0]{'contents'}[1];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'extra'}{'nodes_manuals'}[0]{'node_content'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'extra'}{'node_content'};
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'extra'}{'spaces_after_command'}
 = 
$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'detailmenu_unknown_node'}{'contents'}[1]{'parent'} = 
$result_trees{'detailmenu_unknown_node'};
+
+$result_texis{'detailmenu_unknown_node'} = '@node Top
+
address@hidden
address@hidden
+* unknown::
address@hidden detailmenu
address@hidden menu
+';
+
+
+$result_texts{'detailmenu_unknown_node'} = '
+* unknown::
+';
+
+$result_sectioning{'detailmenu_unknown_node'} = {};
+
+$result_nodes{'detailmenu_unknown_node'} = {
+  'cmdname' => 'node',
+  'extra' => {
+    'normalized' => 'Top'
+  },
+  'menus' => [
+    {
+      'cmdname' => 'menu',
+      'extra' => {
+        'end_command' => {
+          'cmdname' => 'end',
+          'extra' => {
+            'command' => {},
+            'command_argument' => 'menu',
+            'text_arg' => 'menu'
+          }
+        }
+      }
+    }
+  ],
+  'node_up' => {
+    'extra' => {
+      'manual_content' => [
+        {
+          'text' => 'dir'
+        }
+      ],
+      'top_node_up' => {}
+    },
+    'type' => 'top_node_up'
+  }
+};
+$result_nodes{'detailmenu_unknown_node'}{'menus'}[0]{'extra'}{'end_command'}{'extra'}{'command'}
 = $result_nodes{'detailmenu_unknown_node'}{'menus'}[0];
+$result_nodes{'detailmenu_unknown_node'}{'node_up'}{'extra'}{'top_node_up'} = 
$result_nodes{'detailmenu_unknown_node'};
+
+$result_menus{'detailmenu_unknown_node'} = {
+  'cmdname' => 'node',
+  'extra' => {
+    'normalized' => 'Top'
+  }
+};
+
+$result_errors{'detailmenu_unknown_node'} = [
+  {
+    'error_line' => ':5: @detailmenu reference to nonexistent node `unknown\'
+',
+    'file_name' => '',
+    'line_nr' => 5,
+    'macro' => '',
+    'text' => '@detailmenu reference to nonexistent node `unknown\'',
+    'type' => 'error'
+  }
+];
+
+
+
+$result_converted{'plaintext'}->{'detailmenu_unknown_node'} = '* Menu:
+
+* unknown::
+';
+
+
+$result_converted{'html'}->{'detailmenu_unknown_node'} = '<!DOCTYPE html 
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by texinfo, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>Untitled Document</title>
+
+<meta name="description" content="Untitled Document">
+<meta name="keywords" content="Untitled Document">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="#Top" rel="start" title="Top">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Top"></a>
+<h1 class="node-heading">Top</h1>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; unknown:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+</td></tr>
+</table>
+<hr>
+
+
+
+</body>
+</html>
+';
+
+$result_converted_errors{'html'}->{'detailmenu_unknown_node'} = [
+  {
+    'error_line' => 'warning: must specify a title with a title command or @top
+',
+    'text' => 'must specify a title with a title command or @top',
+    'type' => 'warning'
+  }
+];
+
+
+
+$result_converted{'xml'}->{'detailmenu_unknown_node'} = '<node name="Top" 
spaces=" "><nodename>Top</nodename><nodeup automatic="on">(dir)</nodeup></node>
+
+<menu endspaces=" ">
+<detailmenu endspaces=" ">
+<menuentry leadingtext="* "><menunode 
separator="::">unknown</menunode><menudescription><pre xml:space="preserve">
+</pre></menudescription></menuentry></detailmenu>
+</menu>
+';
+
+1;



reply via email to

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