texinfo-commits
[Top][All Lists]
Advanced

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

texinfo/tp TODO Texinfo/Parser.pm Texinfo/Conve...


From: Patrice Dumas
Subject: texinfo/tp TODO Texinfo/Parser.pm Texinfo/Conve...
Date: Sun, 31 Jul 2011 01:52:42 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        11/07/31 01:52:42

Modified files:
        tp             : TODO 
        tp/Texinfo     : Parser.pm 
        tp/Texinfo/Convert: HTML.pm 
        tp/t           : 30sectioning.t 
Added files:
        tp/t/results/sectioning: node_up_external_node.pl 

Log message:
        Handle better commands in regions not expanded (like @copying and 
        @titlepage).
        Output external manuals as node directions links title. Use NodeUp and 
not
        Up for link buttons.
        No file name in href if footnotestyle is end.
        Don't output special page if the corresponding element is the empty 
string.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/TODO?cvsroot=texinfo&r1=1.144&r2=1.145
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Parser.pm?cvsroot=texinfo&r1=1.268&r2=1.269
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/HTML.pm?cvsroot=texinfo&r1=1.116&r2=1.117
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/30sectioning.t?cvsroot=texinfo&r1=1.44&r2=1.45
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/node_up_external_node.pl?cvsroot=texinfo&rev=1.1

Patches:
Index: TODO
===================================================================
RCS file: /sources/texinfo/texinfo/tp/TODO,v
retrieving revision 1.144
retrieving revision 1.145
diff -u -b -r1.144 -r1.145
--- TODO        20 Jul 2011 14:21:50 -0000      1.144
+++ TODO        31 Jul 2011 01:52:42 -0000      1.145
@@ -1,7 +1,7 @@
 l 3273 in HTML.pm don't be in preformatted for the description.
 but call the function for the other stuff.
 
-remove _*directions('This' and replace with new API.
+remove _*directions('This' and replace with new API. Done?
 
 There should be an error message (report by Tom Tromey) in 
 t/results/xtable/text_between_item_itemx.pl
@@ -284,6 +284,11 @@
 partly done:
 indices/recursive_synindex.texi (only done: @synindex aaa bbb
                                             @synindex bbb aaa)
+indices/index_special_region.texi  (in HTML, split output test. For 
+                                    anchor in @titlepage, for example.
+                                    It is mostly in 25regions.t too)
+                                   also tests for the footnotes in 
+                                   titlepage/copying. 
 
 done: info_coverage
 code.texi                 certainly not needed

Index: Texinfo/Parser.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Parser.pm,v
retrieving revision 1.268
retrieving revision 1.269
diff -u -b -r1.268 -r1.269
--- Texinfo/Parser.pm   14 Jul 2011 18:12:48 -0000      1.268
+++ Texinfo/Parser.pm   31 Jul 2011 01:52:42 -0000      1.269
@@ -957,6 +957,30 @@
   }
 }
 
+# for debugging
+sub _print_command_args_texi($)
+{
+  my $current = shift;
+  return '' if (!$current->{'cmdname'});
+  my $args = '';
+  my $with_brace;
+  if ($current->{'args'} and @{$current->{'args'}}) {
+    $with_brace 
+        = ($current->{'args'}->[0]->{'type'} eq 'brace_command_arg'
+           or $current->{'args'}->[0]->{'type'} eq 'brace_command_context');
+    $args .= '{' if ($with_brace);
+    foreach my $arg (@{$current->{'args'}}) {
+      $args .= Texinfo::Convert::Texinfo::convert($arg).', ';
+    }
+    $args =~ s/, $//;
+  }
+  chomp($args);
+  if ($with_brace) {
+    $args .= '}';
+  }
+  return '@'.$current->{'cmdname'} .$args."\n";
+}
+
 sub _print_current_keys($)
 {
   my $current = shift;

Index: Texinfo/Convert/HTML.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/HTML.pm,v
retrieving revision 1.116
retrieving revision 1.117
diff -u -b -r1.116 -r1.117
--- Texinfo/Convert/HTML.pm     30 Jul 2011 09:46:19 -0000      1.116
+++ Texinfo/Convert/HTML.pm     31 Jul 2011 01:52:42 -0000      1.117
@@ -270,6 +270,7 @@
       return $target->{'filename'};
     }
   }
+  #print STDERR "No filename 
".Texinfo::Parser::_print_command_args_texi($command);
   return undef;
 }
 
@@ -351,11 +352,24 @@
   my $href = '';
 
   my $target_filename = $self->command_filename($command);
-  if (defined($target_filename) and 
-      (!defined($filename) 
-       or $filename ne $target_filename)) {
+  if (!defined($target_filename)) {
+    # Happens if there are no pages, for example if OUTPUT is set to ''
+    # as in the test cases.  Also for things in @titlepage when
+    # titlepage is not output.
+    if ($self->{'pages'} and $self->{'pages'}->[0]
+       and defined($self->{'pages'}->[0]->{'filename'})) {
+      # In that case use the first page.
+      # FIXME error message?
+      #print STDERR "No filename for $target\n";
+      $target_filename = $self->{'pages'}->[0]->{'filename'};
+    }
+  }
+  if (defined($target_filename)) { 
+    if (!defined($filename) 
+         or $filename ne $target_filename) {
     $href .= $target_filename;
   }
+  }
   $href .= '#' . $target if ($target ne '');
   return $href;
 }
@@ -839,7 +853,7 @@
                              [ 'NodeUp', \&_default_node_direction ], ' ',
                              'Contents', 'Index'],
   'LINKS_BUTTONS'        => ['Top', 'Index', 'Contents', 'About', 
-                              'Up', 'NextFile', 'PrevFile'],
+                              'NodeUp', 'NextFile', 'PrevFile'],
 #  'TOP_BUTTONS'          => ['Back', 'Forward', ' ',
 #                             'Contents', 'Index', 'About'],
 #
@@ -1371,14 +1385,20 @@
     return '';
   }
 
-  my $document_filename = $self->{'current_filename'};
-  my $footnote_filename = $self->command_filename($command);
+  my $document_filename;
+  my $footnote_filename;
+  if ($self->get_conf('footnotestyle') eq 'separate') {
+    $footnote_filename = $self->command_filename($command);
+    $document_filename = $self->{'current_filename'};
   $footnote_filename = '' if (!defined($footnote_filename));
   $document_filename = '' if (!defined($document_filename));
 
   if ($document_filename eq $footnote_filename) {
     $document_filename = $footnote_filename = '';
   }
+  } else {
+    $document_filename = $footnote_filename = '';
+  }
   my $footnote_text;
   if ($args->[0]) {
     $footnote_text = $args->[0]->{'normal'};
@@ -2661,7 +2681,7 @@
     my $node 
      = 
$self->label_command($root->{'extra'}->{'node_argument'}->{'normalized'}); 
     # This is the node if USE_NODES, otherwise this may be the sectioning 
-    # if the sectioning command is really associated to the node
+    # command (if the sectioning command is really associated to the node)
     my $command = $self->command_element_command($node);
     $command = $node if (!$node->{'extra'}->{'associated_section'}
                          or $node->{'extra'}->{'associated_section'} ne 
$command);
@@ -3021,7 +3041,6 @@
   if ($self->get_conf('INLINE_CONTENTS') 
        and ($cmdname eq 'contents' or $cmdname eq 'shortcontents')
        and ! $self->get_conf('set'.$cmdname.'aftertitlepage')) {
-#              and $self->get_conf('USE_TITLEPAGE_FOR_TITLE'))) {
     return $self->_contents_inline_element($cmdname, $command);
   }
   return '';
@@ -3702,8 +3721,14 @@
     my $heading = $self->command_text($element, 'text');
     $result .= &{$self->{'heading_text'}}($self, '', $heading, 0)."\n";
 
-    $result .= &{$self->{'special_element_body'}}($self, 
+    my $special_element_body .= &{$self->{'special_element_body'}}($self, 
                                                  $special_element, $element);
+    # This may happen with footnotes in regions that are not expanded,
+    # like @copying or @titlepage
+    if ($special_element_body eq '') {
+      return '';
+    }
+    $result .= $special_element_body;
   } elsif (!$element->{'element_prev'}) {
     $result .= $self->_print_title();
     if (!$element->{'element_next'}) {
@@ -4430,13 +4455,12 @@
            and $self->{'special_pages_types'}->{'Footnotes'}) {
         # FIXME element and root_command?
         return ($self->{'special_pages_types'}->{'Footnotes'});
-      }
       # } elsif (($current->{'cmdname'} eq 'contents' 
       #           or $current->{'cmdname'} eq 'shortcontents'
       #           or $current->{'cmdname'} eq 'summarycontents')
       #          and !$self->get_conf('INLINE_CONTENTS')) {
       #   setcontentsaftertitlepage
-      # }
+      }
     }
     if ($current->{'parent'}) {
       $current = $current->{'parent'};
@@ -4503,7 +4527,7 @@
           foreach my $root_command (@{$element->{'contents'}}) {
             if ($root_command->{'cmdname'} 
                 and $root_command->{'cmdname'} eq 'node') {
-              # Hapens for bogus nodes
+              # Happens for bogus nodes
               #if (!defined($self->{'targets'}->{$root_command})
               #    or 
!defined($self->{'targets'}->{$root_command}->{'node_filename'})) {
               #  print STDERR "BUG: no target/filename($root_command): 
".Texinfo::Structuring::_print_root_command_texi($root_command)."\n";
@@ -4635,28 +4659,11 @@
       if ($self->get_conf($cmdname)) {
         if ($self->get_conf('INLINE_CONTENTS') 
            or ($self->get_conf('set'.$cmdname.'aftertitlepage'))) {
-     #        and $self->get_conf('USE_TITLEPAGE_FOR_TITLE'))) {
         } else {
           $do_special{$type} = 1;
         }
       }
     }
-   # if ($self->get_conf('contents')) {
-   #   if ($self->get_conf('INLINE_CONTENTS') 
-   #      or ($self->get_conf('setcontentsaftertitlepage')
-   #          and $self->get_conf('USE_TITLEPAGE_FOR_TITLE'))) {
-   #   } else {
-   #     $do_special{'Contents'} = 1;
-   #   }
-   # }
-   # if ($self->get_conf('shortcontents')) {
-   #   if ($self->get_conf('INLINE_CONTENTS')
-   #       or ($self->get_conf('setshortcontentsaftertitlepage')
-   #          and $self->get_conf('USE_TITLEPAGE_FOR_TITLE'))) {
-   #   } else {
-   #     $do_special{'Overview'} = 1;
-   #   }
-   # }
   }
   if ($self->{'extra'}->{'footnote'} 
       and $self->get_conf('footnotestyle') eq 'separate'
@@ -4715,6 +4722,7 @@
       my $page = {'type' => 'page'};
       push @{$page->{'contents'}}, $element;
       $page->{'extra'}->{'element'} = $element;
+      $page->{'extra'}->{'special_page'} = $type;
       $self->{'special_pages_types'}->{$type} = $page;
       $element->{'parent'} = $page;
       $self->_set_page_file($page, $filename);
@@ -4729,7 +4737,6 @@
     $self->{'ids'}->{$id} = $element;
   }
   return ($special_elements, $pages);
-
 }
 
 sub _prepare_contents_elements($)
@@ -4743,7 +4750,6 @@
       if ($self->get_conf($cmdname)) {
         my $default_filename;
         if ($self->get_conf('set'.$cmdname.'aftertitlepage')) {
-          #next unless $self->get_conf('USE_TITLEPAGE_FOR_TITLE');
           if ($self->{'pages'}) {
             $default_filename = $self->{'pages'}->[0]->{'filename'};
           }
@@ -4800,6 +4806,8 @@
 
   $self->{'global_target_elements'}->{'First'} = $elements->[0];
   $self->{'global_target_elements'}->{'Last'} = $elements->[-1];
+  # It is always the first printindex, even if it is not output (for example
+  # it is in @copying and @titlepage, which are certainly wrong constructs).
   if ($self->{'extra'} and $self->{'extra'}->{'printindex'}) {
     my ($page, $element, $root_command) 
      = $self->_get_page($self->{'extra'}->{'printindex'}->[0]);
@@ -5085,6 +5093,8 @@
         return $self->command_href($external_node, $filename);
       } elsif ($type eq 'text' or $type eq 'node') {
         return $self->command_text($external_node);
+      } elsif ($type eq 'string') {
+        return $self->command_text($external_node, $type);
       }
     } elsif ($type eq 'node') {
       $command = $element_target->{'extra'}->{'node'};
@@ -5612,8 +5622,6 @@
 
   if (!defined($elements)) {
     $result = $self->_convert($root);
-    #my $footnotes = $self->_footnotes();
-    #$result .= $footnotes;
   } else {
     foreach my $element (@$elements) {
       my $element_text = $self->_convert($element);
@@ -5837,6 +5845,17 @@
     foreach my $page (@$pages, @$special_pages) {
       my $file_fh;
       $self->{'current_filename'} = $page->{'filename'};
+      # First do the special pages, to avoid outputting these if they are
+      # empty.
+      my $special_page_content;
+      if ($page->{'extra'} and $page->{'extra'}->{'special_page'}) {
+        $special_page_content = '';
+        foreach my $element (@{$page->{'contents'}}) {
+          $special_page_content .= $self->_convert($element);
+        }
+        next if ($special_page_content eq '');
+      }
+      # Then open the file and output the elements or the special_page_content
       if (!$files{$page->{'filename'}}->{'fh'}) {
         $file_fh = $self->Texinfo::Common::open_out ($page->{'out_filename'},
                                                       
$self->{'perl_encoding'});
@@ -5853,10 +5872,14 @@
       } else {
         $file_fh = $files{$page->{'filename'}}->{'fh'};
       }
+      if (defined($special_page_content)) {
+        print $file_fh $special_page_content;
+      } else {
       foreach my $element (@{$page->{'contents'}}) {
         my $element_text = $self->_convert($element);
         print $file_fh $element_text;
       }
+      }
       $self->{'file_counters'}->{$page->{'filename'}}--;
       if ($self->{'file_counters'}->{$page->{'filename'}} == 0) {
         # end file
@@ -5871,6 +5894,8 @@
     foreach my $label (keys (%{$self->{'labels'}})) {
       my $node = $self->{'labels'}->{$label};
       my $target = $self->_get_target($node);
+      # filename may not be defined in case of an @anchor or similar in
+      # @titlepage, and @titlepage is not used.
       my $filename = $self->command_filename($node);
       my $node_filename;
       if ($node->{'extra'}->{'normalized'} eq 'Top' 
@@ -5884,7 +5909,7 @@
       } else {
         $node_filename = $target->{'node_filename'};
       }
-      if ($node_filename ne $filename) {
+      if (defined($filename) and $node_filename ne $filename) {
         my $redirection_page 
           = &{$self->{'node_redirection_page'}}($self, $node);
         my $out_filename;

Index: t/30sectioning.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/30sectioning.t,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -b -r1.44 -r1.45
--- t/30sectioning.t    27 Jul 2011 00:21:30 -0000      1.44
+++ t/30sectioning.t    31 Jul 2011 01:52:42 -0000      1.45
@@ -308,6 +308,15 @@
 '@unnumbered
 @unnumbered
 '],
+['node_up_external_node',
+'@node Top
+
address@hidden
+* first::
address@hidden menu
+
address@hidden first, (manual1), (manual2) , (manual3)
+', {'test_split' => 'node'}]
 );
 
 my @tests_info = (

Index: t/results/sectioning/node_up_external_node.pl
===================================================================
RCS file: t/results/sectioning/node_up_external_node.pl
diff -N t/results/sectioning/node_up_external_node.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/sectioning/node_up_external_node.pl       31 Jul 2011 01:52:42 
-0000      1.1
@@ -0,0 +1,715 @@
+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{'node_up_external_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'
+              },
+              {
+                'args' => [
+                  {
+                    'parent' => {},
+                    'text' => '* ',
+                    'type' => 'menu_entry_leading_text'
+                  },
+                  {
+                    'contents' => [
+                      {
+                        'parent' => {},
+                        'text' => 'first'
+                      }
+                    ],
+                    'parent' => {},
+                    'type' => 'menu_entry_node'
+                  },
+                  {
+                    'parent' => {},
+                    'text' => '::',
+                    'type' => 'menu_entry_separator'
+                  },
+                  {
+                    'contents' => [
+                      {
+                        'parent' => {},
+                        'text' => '
+'
+                      }
+                    ],
+                    'parent' => {},
+                    'type' => 'menu_entry_description'
+                  }
+                ],
+                'extra' => {
+                  'menu_entry_description' => {},
+                  'menu_entry_node' => {
+                    'node_content' => [
+                      {}
+                    ],
+                    'normalized' => 'first'
+                  }
+                },
+                'line_nr' => {
+                  'file_name' => '',
+                  'line_nr' => 4,
+                  'macro' => ''
+                },
+                'parent' => {},
+                'type' => 'menu_entry'
+              },
+              {
+                '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',
+                  'text_arg' => 'menu'
+                },
+                'line_nr' => {
+                  'file_name' => '',
+                  'line_nr' => 5,
+                  'macro' => ''
+                },
+                'parent' => {}
+              }
+            ],
+            'extra' => {
+              'end_command' => {}
+            },
+            'line_nr' => {
+              'file_name' => '',
+              'line_nr' => 3,
+              'macro' => ''
+            },
+            'parent' => {}
+          },
+          {
+            'parent' => {},
+            'text' => '
+',
+            'type' => 'empty_line'
+          }
+        ],
+        'extra' => {
+          'node_content' => [
+            {}
+          ],
+          'nodes_manuals' => [
+            {
+              'node_content' => [],
+              'normalized' => 'Top'
+            }
+          ],
+          'normalized' => 'Top'
+        },
+        'line_nr' => {
+          'file_name' => '',
+          'line_nr' => 1,
+          'macro' => ''
+        },
+        'parent' => {}
+      }
+    ],
+    'extra' => {
+      'element_command' => {},
+      'node' => {}
+    },
+    'type' => 'element'
+  },
+  {
+    'contents' => [
+      {
+        'args' => [
+          {
+            'contents' => [
+              {
+                'extra' => {
+                  'command' => {}
+                },
+                'parent' => {},
+                'text' => ' ',
+                'type' => 'empty_spaces_after_command'
+              },
+              {
+                'parent' => {},
+                'text' => 'first'
+              }
+            ],
+            'parent' => {},
+            'type' => 'misc_line_arg'
+          },
+          {
+            'contents' => [
+              {
+                'text' => ' ',
+                'type' => 'empty_spaces_before_argument'
+              },
+              {
+                'parent' => {},
+                'text' => '(manual1)'
+              }
+            ],
+            'parent' => {},
+            'type' => 'misc_line_arg'
+          },
+          {
+            'contents' => [
+              {
+                'text' => ' ',
+                'type' => 'empty_spaces_before_argument'
+              },
+              {
+                'parent' => {},
+                'text' => '(manual2)'
+              },
+              {
+                'parent' => {},
+                'text' => ' ',
+                'type' => 'spaces_at_end'
+              }
+            ],
+            'parent' => {},
+            'type' => 'misc_line_arg'
+          },
+          {
+            'contents' => [
+              {
+                'text' => ' ',
+                'type' => 'empty_spaces_before_argument'
+              },
+              {
+                'parent' => {},
+                'text' => '(manual3)'
+              },
+              {
+                'parent' => {},
+                'text' => '
+',
+                'type' => 'spaces_at_end'
+              }
+            ],
+            'parent' => {},
+            'type' => 'misc_line_arg'
+          }
+        ],
+        'cmdname' => 'node',
+        'contents' => [],
+        'extra' => {
+          'node_content' => [
+            {}
+          ],
+          'nodes_manuals' => [
+            {
+              'node_content' => [],
+              'normalized' => 'first'
+            },
+            {
+              'manual_content' => [
+                {
+                  'parent' => {},
+                  'text' => 'manual1'
+                }
+              ]
+            },
+            {
+              'manual_content' => [
+                {
+                  'parent' => {},
+                  'text' => 'manual2'
+                }
+              ]
+            },
+            {
+              'manual_content' => [
+                {
+                  'parent' => {},
+                  'text' => 'manual3'
+                }
+              ]
+            }
+          ],
+          'normalized' => 'first'
+        },
+        'line_nr' => {
+          'file_name' => '',
+          'line_nr' => 7,
+          'macro' => ''
+        },
+        'parent' => {}
+      }
+    ],
+    'element_prev' => {},
+    'extra' => {
+      'element_command' => {},
+      'node' => {}
+    },
+    'type' => 'element'
+  }
+];
+$result_trees{'node_up_external_node'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'node_up_external_node'}[0];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
 = $result_trees{'node_up_external_node'}[0]{'contents'}[1];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'node_up_external_node'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'node_up_external_node'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'node_up_external_node'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'args'}[0]{'parent'} 
= $result_trees{'node_up_external_node'}[0]{'contents'}[1];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'node_up_external_node'}[0]{'contents'}[1];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'command'}
 = $result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[1];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[1]{'parent'}
 = 
$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[2]{'parent'}
 = 
$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[3]{'contents'}[0]{'parent'}
 = 
$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[3];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[3]{'parent'}
 = 
$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'extra'}{'menu_entry_description'}
 = 
$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[3];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'extra'}{'menu_entry_node'}{'node_content'}[0]
 = 
$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[1]{'contents'}[0];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'parent'}
 = $result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
 = 
$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[2];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'args'}[0]{'parent'}
 = 
$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[2];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'extra'}{'command'}
 = $result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'parent'}
 = $result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'extra'}{'end_command'}
 = 
$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'contents'}[2];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[1]{'parent'}
 = $result_trees{'node_up_external_node'}[0]{'contents'}[1];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'contents'}[2]{'parent'}
 = $result_trees{'node_up_external_node'}[0]{'contents'}[1];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'extra'}{'node_content'}[0]
 = 
$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'args'}[0]{'contents'}[1];
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'extra'}{'nodes_manuals'}[0]{'node_content'}
 = 
$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'extra'}{'node_content'};
+$result_trees{'node_up_external_node'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'node_up_external_node'}[0];
+$result_trees{'node_up_external_node'}[0]{'extra'}{'element_command'} = 
$result_trees{'node_up_external_node'}[0]{'contents'}[1];
+$result_trees{'node_up_external_node'}[0]{'extra'}{'node'} = 
$result_trees{'node_up_external_node'}[0]{'contents'}[1];
+$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
 = $result_trees{'node_up_external_node'}[1]{'contents'}[0];
+$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[0]{'parent'} 
= $result_trees{'node_up_external_node'}[1]{'contents'}[0];
+$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[1]{'contents'}[1]{'parent'}
 = $result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[1];
+$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[1]{'parent'} 
= $result_trees{'node_up_external_node'}[1]{'contents'}[0];
+$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[2]{'contents'}[1]{'parent'}
 = $result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[2];
+$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[2]{'contents'}[2]{'parent'}
 = $result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[2];
+$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[2]{'parent'} 
= $result_trees{'node_up_external_node'}[1]{'contents'}[0];
+$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[3]{'contents'}[1]{'parent'}
 = $result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[3];
+$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[3]{'contents'}[2]{'parent'}
 = $result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[3];
+$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[3]{'parent'} 
= $result_trees{'node_up_external_node'}[1]{'contents'}[0];
+$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'extra'}{'node_content'}[0]
 = 
$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[0]{'contents'}[1];
+$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'extra'}{'nodes_manuals'}[0]{'node_content'}
 = 
$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'extra'}{'node_content'};
+$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'extra'}{'nodes_manuals'}[1]{'manual_content'}[0]{'parent'}
 = $result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[1];
+$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'extra'}{'nodes_manuals'}[2]{'manual_content'}[0]{'parent'}
 = $result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[2];
+$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'extra'}{'nodes_manuals'}[3]{'manual_content'}[0]{'parent'}
 = $result_trees{'node_up_external_node'}[1]{'contents'}[0]{'args'}[3];
+$result_trees{'node_up_external_node'}[1]{'contents'}[0]{'parent'} = 
$result_trees{'node_up_external_node'}[1];
+$result_trees{'node_up_external_node'}[1]{'element_prev'} = 
$result_trees{'node_up_external_node'}[0];
+$result_trees{'node_up_external_node'}[1]{'extra'}{'element_command'} = 
$result_trees{'node_up_external_node'}[1]{'contents'}[0];
+$result_trees{'node_up_external_node'}[1]{'extra'}{'node'} = 
$result_trees{'node_up_external_node'}[1]{'contents'}[0];
+
+$result_texis{'node_up_external_node'} = '@node Top
+
address@hidden
+* first::
address@hidden menu
+
address@hidden first, (manual1), (manual2) , (manual3)
+';
+
+
+$result_texts{'node_up_external_node'} = '
+* first::
+
+';
+
+$result_sectioning{'node_up_external_node'} = {};
+
+$result_nodes{'node_up_external_node'} = {
+  'cmdname' => 'node',
+  'extra' => {
+    'normalized' => 'Top'
+  },
+  'menu_child' => {
+    'cmdname' => 'node',
+    'extra' => {
+      'normalized' => 'first'
+    },
+    'node_next' => {
+      'extra' => {
+        'manual_content' => [
+          {
+            'text' => 'manual1'
+          }
+        ]
+      }
+    },
+    'node_prev' => {
+      'extra' => {
+        'manual_content' => [
+          {
+            'text' => 'manual2'
+          }
+        ]
+      }
+    },
+    'node_up' => {
+      'extra' => {
+        'manual_content' => [
+          {
+            'text' => 'manual3'
+          }
+        ]
+      }
+    }
+  },
+  'menus' => [
+    {
+      'cmdname' => 'menu',
+      'extra' => {
+        'end_command' => {
+          'cmdname' => 'end',
+          'extra' => {
+            'command' => {},
+            'command_argument' => 'menu',
+            'text_arg' => 'menu'
+          }
+        }
+      }
+    }
+  ],
+  'node_next' => {},
+  'node_up' => {
+    'extra' => {
+      'manual_content' => [
+        {
+          'text' => 'dir'
+        }
+      ]
+    }
+  }
+};
+$result_nodes{'node_up_external_node'}{'menus'}[0]{'extra'}{'end_command'}{'extra'}{'command'}
 = $result_nodes{'node_up_external_node'}{'menus'}[0];
+$result_nodes{'node_up_external_node'}{'node_next'} = 
$result_nodes{'node_up_external_node'}{'menu_child'};
+
+$result_menus{'node_up_external_node'} = {
+  'cmdname' => 'node',
+  'extra' => {
+    'normalized' => 'Top'
+  },
+  'menu_child' => {
+    'cmdname' => 'node',
+    'extra' => {
+      'normalized' => 'first'
+    },
+    'menu_up' => {},
+    'menu_up_hash' => {
+      'Top' => 1
+    }
+  }
+};
+$result_menus{'node_up_external_node'}{'menu_child'}{'menu_up'} = 
$result_menus{'node_up_external_node'};
+
+$result_errors{'node_up_external_node'} = [
+  {
+    'error_line' => ':7: warning: For `first\', up in menu `Top\' and up 
`(manual3)\' don\'t match
+',
+    'file_name' => '',
+    'line_nr' => 7,
+    'macro' => '',
+    'text' => 'For `first\', up in menu `Top\' and up `(manual3)\' don\'t 
match',
+    'type' => 'warning'
+  }
+];
+
+
+$result_elements{'node_up_external_node'} = [
+  {
+    'extra' => {
+      'directions' => {
+        'Forward' => {
+          'extra' => {
+            'directions' => {
+              'Back' => {},
+              'NodeBack' => {},
+              'NodeForward' => {
+                'extra' => {
+                  'manual_content' => [
+                    {
+                      'text' => 'manual1'
+                    }
+                  ]
+                },
+                'type' => 'external_node'
+              },
+              'NodeNext' => {
+                'extra' => {
+                  'manual_content' => []
+                },
+                'type' => 'external_node'
+              },
+              'NodePrev' => {
+                'extra' => {
+                  'manual_content' => [
+                    {
+                      'text' => 'manual2'
+                    }
+                  ]
+                },
+                'type' => 'external_node'
+              },
+              'NodeUp' => {
+                'extra' => {
+                  'manual_content' => [
+                    {
+                      'text' => 'manual3'
+                    }
+                  ]
+                },
+                'type' => 'external_node'
+              },
+              'This' => {},
+              'Up' => {
+                'extra' => {
+                  'manual_content' => []
+                },
+                'type' => 'external_node'
+              }
+            },
+            'element_command' => {
+              'cmdname' => 'node',
+              'extra' => {
+                'normalized' => 'first'
+              },
+              'menu_up' => {
+                'cmdname' => 'node',
+                'extra' => {
+                  'normalized' => 'Top'
+                },
+                'menu_child' => {}
+              },
+              'menu_up_hash' => {
+                'Top' => 1
+              }
+            },
+            'node' => {}
+          },
+          'type' => 'element'
+        },
+        'NodeForward' => {},
+        'NodeNext' => {},
+        'NodeUp' => {
+          'extra' => {
+            'manual_content' => [
+              {
+                'text' => 'dir'
+              }
+            ]
+          },
+          'type' => 'external_node'
+        },
+        'This' => {}
+      },
+      'element_command' => {},
+      'node' => {}
+    },
+    'type' => 'element'
+  },
+  {}
+];
+$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'Forward'}{'extra'}{'directions'}{'Back'}
 = $result_elements{'node_up_external_node'}[0];
+$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'Forward'}{'extra'}{'directions'}{'NodeBack'}
 = $result_elements{'node_up_external_node'}[0];
+$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'Forward'}{'extra'}{'directions'}{'NodeNext'}{'extra'}{'manual_content'}
 = 
$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'Forward'}{'extra'}{'directions'}{'NodeForward'}{'extra'}{'manual_content'};
+$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'Forward'}{'extra'}{'directions'}{'This'}
 = 
$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'Forward'};
+$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'Forward'}{'extra'}{'directions'}{'Up'}{'extra'}{'manual_content'}
 = 
$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'Forward'}{'extra'}{'directions'}{'NodeUp'}{'extra'}{'manual_content'};
+$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'Forward'}{'extra'}{'element_command'}{'menu_up'}{'menu_child'}
 = 
$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'Forward'}{'extra'}{'element_command'};
+$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'Forward'}{'extra'}{'node'}
 = 
$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'Forward'}{'extra'}{'element_command'};
+$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'NodeForward'}
 = 
$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'Forward'};
+$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'NodeNext'}
 = 
$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'Forward'};
+$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'This'} = 
$result_elements{'node_up_external_node'}[0];
+$result_elements{'node_up_external_node'}[0]{'extra'}{'element_command'} = 
$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'Forward'}{'extra'}{'element_command'}{'menu_up'};
+$result_elements{'node_up_external_node'}[0]{'extra'}{'node'} = 
$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'Forward'}{'extra'}{'element_command'}{'menu_up'};
+$result_elements{'node_up_external_node'}[1] = 
$result_elements{'node_up_external_node'}[0]{'extra'}{'directions'}{'Forward'};
+
+
+
+$result_directions_text{'node_up_external_node'} = 'element: @node Top
+  Forward: @node first
+  NodeForward: @node first
+  NodeNext: @node first
+  NodeUp: (dir)
+  This: @node Top
+element: @node first
+  Back: @node Top
+  NodeBack: @node Top
+  NodeForward: (manual1)
+  NodeNext: (manual1)
+  NodePrev: (manual2)
+  NodeUp: (manual3)
+  This: @node first
+  Up: (manual3)
+';
+
+
+$result_converted{'plaintext'}->{'node_up_external_node'} = '* Menu:
+
+* first::
+
+';
+
+
+$result_converted{'html'}->{'node_up_external_node'} = '<!DOCTYPE html PUBLIC 
"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by texi2html, 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 name="Generator" content="texi2html">
+<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.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smalllisp {margin-left: 3.2em}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:pre}
+span.nolinebreak {white-space:pre}
+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>
+<div class="header">
+<p>
+Next: <a href="#first" accesskey="n" rel="next">first</a>, Up: <a 
href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; </p>
+</div>
+<h1 class="node-heading">Top</h1>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#first" 
accesskey="1">first</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr>
+<a name="first"></a>
+<div class="header">
+<p>
+Next: <a href="manual1.html#Top" accesskey="n" rel="next">(manual1)</a>, 
Previous: <a href="manual2.html#Top" accesskey="p" 
rel="previous">(manual2)</a>, Up: <a href="manual3.html#Top" accesskey="u" 
rel="up">(manual3)</a> &nbsp; </p>
+</div>
+<h3 class="node-heading">first</h3>
+<hr>
+<p>
+
+
+</p>
+</body>
+</html>
+';
+
+$result_converted_errors{'html'}->{'node_up_external_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'
+  }
+];
+
+
+1;



reply via email to

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