[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
texinfo/tp Texinfo/Structuring.pm Texinfo/Conve...
From: |
Patrice Dumas |
Subject: |
texinfo/tp Texinfo/Structuring.pm Texinfo/Conve... |
Date: |
Wed, 05 Oct 2011 23:19:01 +0000 |
CVSROOT: /sources/texinfo
Module name: texinfo
Changes by: Patrice Dumas <pertusus> 11/10/05 23:19:00
Modified files:
tp/Texinfo : Structuring.pm
tp/Texinfo/Convert: HTML.pm
tp/t : test_utils.pl
tp/t/results/sectioning: double_part.pl
Log message:
Remove the pages tree elements. Indeed, the pages do not follow a tree
like structure, especially when the user sets the file names.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Structuring.pm?cvsroot=texinfo&r1=1.94&r2=1.95
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/HTML.pm?cvsroot=texinfo&r1=1.172&r2=1.173
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/test_utils.pl?cvsroot=texinfo&r1=1.101&r2=1.102
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/sectioning/double_part.pl?cvsroot=texinfo&r1=1.16&r2=1.17
Patches:
Index: Texinfo/Structuring.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Structuring.pm,v
retrieving revision 1.94
retrieving revision 1.95
diff -u -b -r1.94 -r1.95
--- Texinfo/Structuring.pm 2 Oct 2011 20:31:21 -0000 1.94
+++ Texinfo/Structuring.pm 5 Oct 2011 23:19:00 -0000 1.95
@@ -688,12 +688,10 @@
my $split_level;
if (!$split) {
- my $page = {'type' => 'page'};
foreach my $element (@$elements) {
- push @{$page->{'contents'}}, $element;
- $element->{'parent'} = $page;
+ $element->{'extra'}->{'first_in_page'} = $elements->[0];
}
- return [$page];
+ return;
} elsif ($split eq 'chapter') {
$split_level = 1;
} elsif ($split eq 'section') {
@@ -702,8 +700,7 @@
warn "Unknown split specification: $split\n";
}
- my @pages = ();
-
+ my $current_first_in_page;
foreach my $element (@$elements) {
my $level;
if ($element->{'extra'}->{'section'}) {
@@ -714,18 +711,11 @@
}
#print STDERR "level($split_level) $level
"._print_element_command_texi($element)."\n";
if (!defined($split_level) or (defined($level) and $split_level >= $level)
- or address@hidden) {
- push @pages, {'type' => 'page',
- 'extra' => {'element' => $element}};
- if (scalar(@pages) > 1) {
- $pages[-1]->{'page_prev'} = $pages[-2];
- $pages[-2]->{'page_next'} = $pages[-1];
- }
+ or !$current_first_in_page) {
+ $current_first_in_page = $element;
}
- push @{$pages[-1]->{'contents'}}, $element;
- $element->{'parent'} = $pages[-1];
+ $element->{'extra'}->{'first_in_page'} = $current_first_in_page;
}
- return address@hidden;
}
# FIXME node not existing
@@ -1374,8 +1364,7 @@
} else {
$elements = split_by_section($tree);
}
- # $split may be 'section', 'chapter', 'node' or a false value.
- my $pages = split_pages($elements, $split);
+ split_pages($elements, $split);
elements_directions($parser, $elements);
elements_file_directions($parser, $elements);
@@ -1562,9 +1551,9 @@
=item $pages = split_pages($elements, $split)
-The elements from the array reference argument are grouped based on the
-value of I<$split>. The I<$pages> array with all those groupings
-is returned by the function. The possible values for I<$split> are
+The elements from the array reference argument have an extra I<first_in_page>
+value set to the first element on the unit, and based on the
+value of I<$split>. The possible values for I<$split> are
=over
@@ -1586,10 +1575,6 @@
=back
-Pages are regular tree items with type I<page>, holding their elements
-in the I<contents> array. They also have directions, namely I<page_next>
-and I<page_prev> pointing to the previous and the next page.
-
=item elements_directions($parser, $elements)
Directions are set up for the elements in the array reference given in
Index: Texinfo/Convert/HTML.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/HTML.pm,v
retrieving revision 1.172
retrieving revision 1.173
diff -u -b -r1.172 -r1.173
--- Texinfo/Convert/HTML.pm 5 Oct 2011 06:53:43 -0000 1.172
+++ Texinfo/Convert/HTML.pm 5 Oct 2011 23:19:00 -0000 1.173
@@ -272,7 +272,7 @@
if (defined($target->{'filename'})) {
return $target->{'filename'};
}
- my ($page, $element, $root_command) = $self->_get_page($command);
+ my ($element, $root_command) = $self->_get_element($command);
#if (defined($command->{'cmdname'}) and $command->{'cmdname'} eq
'footnote') {
# print STDERR "footnote $command: page $page\n";
#}
@@ -282,10 +282,9 @@
if (defined($root_command)) {
$target->{'root_command'} = $root_command;
}
- if (defined($page)) {
- $target->{'page'} = $page;
- $target->{'filename'} = $page->{'filename'};
- return $target->{'filename'};
+ if (defined($element)) {
+ $target->{'filename'} = $element->{'filename'};
+ return $element->{'filename'};
}
}
#print STDERR "No filename
".Texinfo::Parser::_print_command_args_texi($command);
@@ -374,12 +373,12 @@
# 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'})) {
+ if ($self->{'elements'} and $self->{'elements'}->[0]
+ and defined($self->{'elements'}->[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'};
+ $target_filename = $self->{'elements'}->[0]->{'filename'};
}
}
if (defined($target_filename)) {
@@ -2074,8 +2073,8 @@
# and there is more than one element
and ($element->{'element_next'} or $element->{'element_prev'})) {
my $is_top = $self->_element_is_top($element);
- my $first_in_page = ($element->{'parent'}
- and $element->{'parent'}->{'contents'}->[0] eq $element);
+ my $first_in_page = (defined($element->{'filename'})
+ and $self->{'counter_in_file'}->{$element->{'filename'}} == 1);
#my $previous_is_top = 0;
my $previous_is_top = ($element->{'element_prev'}
and $self->_element_is_top($element->{'element_prev'}));
@@ -3954,7 +3953,7 @@
}
if ($self->get_conf('HEADERS')
# first in page
- or $element->{'parent'}->{'contents'}->[0] eq $element) {
+ or $self->{'counter_in_file'}->{$element->{'filename'}} == 1) {
$result .= &{$self->{'navigation_header'}}($self,
$self->get_conf('MISC_BUTTONS'), undef, $element);
@@ -3988,12 +3987,12 @@
# no 'parent' defined happens if there are no pages, and there are elements
# which should only happen when called with $self->get_conf('OUTFILE')
# set to ''.
- #print STDERR "$element $element->{'parent'}->{'filename'}
$self->{'file_counters'}->{$element->{'parent'}->{'filename'}}\n";
- #print STDERR "next: $element->{'element_next'}->{'parent'}->{'filename'}\n"
if ($element->{'element_next'});
+ #print STDERR "$element $element->{'filename'}
$self->{'file_counters'}->{$element->{'filename'}}\n";
+ #print STDERR "next: $element->{'element_next'}->{'filename'}\n" if
($element->{'element_next'});
my $end_page = (!$element->{'element_next'}
- or (defined($element->{'parent'})
- and $element->{'parent'}->{'filename'} ne
$element->{'element_next'}->{'parent'}->{'filename'}
- and $self->{'file_counters'}->{$element->{'parent'}->{'filename'}}
== 1));
+ or (defined($element->{'filename'})
+ and $element->{'filename'} ne
$element->{'element_next'}->{'filename'}
+ and $self->{'file_counters'}->{$element->{'filename'}} == 1));
#my $end_page = (!$element->{'element_next'}
# or (defined($element->{'parent'})
# and $element->{'parent'} ne
$element->{'element_next'}->{'parent'}));
@@ -4056,8 +4055,8 @@
# FIXME the next is almost a duplication of end_page except that the
# file counter needs not be 1
if ((!$element->{'element_next'}
- or (defined($element->{'parent'})
- and $element->{'parent'}->{'filename'} ne
$element->{'element_next'}->{'parent'}->{'filename'}))
+ or (defined($element->{'filename'})
+ and $element->{'filename'} ne
$element->{'element_next'}->{'filename'}))
and $self->get_conf('footnotestyle') eq 'end') {
$result .= &{$self->{'footnotes_text'}}($self);
}
@@ -4653,37 +4652,35 @@
sub _set_page_file($$$)
{
my $self = shift;
- my $page = shift;
+ my $element = shift;
my $filename = shift;
if (!defined($filename)) {
cluck("_set_page_file: filename not defined\n");
}
# FIXME directory should be the file name!
- $page->{'filename'} = $filename;
+ $element->{'filename'} = $filename;
if (defined($self->{'destination_directory'})) {
- $page->{'out_filename'} = $self->{'destination_directory'} . $filename;
+ $element->{'out_filename'} = $self->{'destination_directory'} . $filename;
} else {
- $page->{'out_filename'} = $filename;
+ $element->{'out_filename'} = $filename;
}
}
-sub _get_page($$);
+sub _get_element($$);
# FIXME also find contents/shortcontents/summarycontents page
-sub _get_page($$)
+sub _get_element($$)
{
my $self = shift;
my $current = shift;
my ($element, $root_command);
- #print STDERR " --> GGGGGGG _get_page\n";
+ #print STDERR " --> GGGGGGG _get_element\n";
while (1) {
if ($current->{'type'}) {
#print STDERR "GGGGGGG Now in $current->{'type'}\n";
- if ($current->{'type'} eq 'page') {
- return ($current, $element, $root_command);
- } elsif ($current->{'type'} eq 'element') {
- $element = $current;
+ if ($current->{'type'} eq 'element') {
+ return ($current, $root_command);
}
}
if ($current->{'cmdname'}) {
@@ -4694,25 +4691,26 @@
if ($current->{'cmdname'} eq 'copying'
and $self->{'extra'} and $self->{'extra'}->{'insertcopying'}) {
foreach my $insertcopying(@{$self->{'extra'}->{'insertcopying'}}) {
- my ($page, $element, $root_command)
- = $self->_get_page($insertcopying);
- return ($page, $element, $root_command)
- if (defined($page) or defined($root_command));
+ my ($element, $root_command)
+ = $self->_get_element($insertcopying);
+ return ($element, $root_command)
+ if (defined($element) or defined($root_command));
}
} elsif ($current->{'cmdname'} eq 'titlepage'
and $self->get_conf('USE_TITLEPAGE_FOR_TITLE')
and $self->get_conf('SHOW_TITLE')
- and $self->{'pages'}->[0]) {
+ and $self->{'elements'}->[0]) {
# FIXME element and root_command?
- return ($self->{'pages'}->[0]);
+ return ($self->{'elements'}->[0],
+ $self->{'elements'}->[0]->{'extra'}->{'element_command'});
}
die "Problem $element, $root_command" if (defined($element)
or defined($root_command));
- return (undef, undef, undef);
+ return (undef, undef);
} elsif ($current->{'cmdname'} eq 'footnote'
- and $self->{'special_pages_types'}->{'Footnotes'}) {
+ and $self->{'special_elements_types'}->{'Footnotes'}) {
# FIXME element and root_command?
- return ($self->{'special_pages_types'}->{'Footnotes'});
+ return ($self->{'special_elements_types'}->{'Footnotes'});
# } elsif (($current->{'cmdname'} eq 'contents'
# or $current->{'cmdname'} eq 'shortcontents'
# or $current->{'cmdname'} eq 'summarycontents')
@@ -4723,7 +4721,7 @@
if ($current->{'parent'}) {
$current = $current->{'parent'};
} else {
- return (undef, $element, $root_command);
+ return ($element, $root_command);
}
}
}
@@ -4731,11 +4729,11 @@
sub _set_page_files($$)
{
my $self = shift;
- my $pages = shift;
- my $special_pages = shift;
+ my $elements = shift;
+ my $special_elements = shift;
# Ensure that the document has pages
- return undef if (!defined($pages) or address@hidden);
+ return undef if (!defined($elements) or address@hidden);
my $extension = '';
$extension = '.'.$self->get_conf('EXTENSION')
@@ -4743,9 +4741,12 @@
and $self->get_conf('EXTENSION') ne '');
if (!$self->get_conf('SPLIT')) {
- my $page = $pages->[0];
- $page->{'filename'} = $self->{'document_name'}.$extension;
- $page->{'out_filename'} = $self->get_conf('OUTFILE');
+ foreach my $element (@$elements) {
+ if (!defined($element->{'filename'})) {
+ $element->{'filename'} = $self->{'document_name'}.$extension;
+ $element->{'out_filename'} = $self->get_conf('OUTFILE');
+ }
+ }
} else {
my $node_top;
#my $section_top;
@@ -4762,27 +4763,25 @@
# first determine the top node file name.
if ($self->get_conf('NODE_FILENAMES') and $node_top
and defined($top_node_filename)) {
- my ($node_top_page) = $self->_get_page($node_top);
+ my ($node_top_element) = $self->_get_element($node_top);
die "BUG: No page for top node" if (!defined($node_top));
if (defined($self->get_conf('TOP_NODE_FILE'))) {
- $self->_set_page_file($node_top_page, $top_node_filename);
+ $self->_set_page_file($node_top_element, $top_node_filename);
}
}
# FIXME add a number for each page?
my $file_nr = 0;
my $previous_page;
- if ($self->get_conf('NODE_FILENAMES')) {
- PAGE:
- foreach my $page(@$pages) {
- if (defined($previous_page)) {
- $page->{'page_prev'} = $previous_page;
- $previous_page->{'page_next'} = $page;
- }
- $previous_page = $page;
+ foreach my $element(@$elements) {
# For Top node.
- next if (defined($page->{'filename'}));
- foreach my $element (@{$page->{'contents'}}) {
- foreach my $root_command (@{$element->{'contents'}}) {
+ next if (defined($element->{'filename'}));
+ if (!$element->{'extra'}->{'first_in_page'}) {
+ cluck ("No first_in_page for $element\n");
+ }
+ if (!defined($element->{'extra'}->{'first_in_page'}->{'filename'})) {
+ my $file_element = $element->{'extra'}->{'first_in_page'};
+ if ($self->get_conf('NODE_FILENAMES')) {
+ foreach my $root_command (@{$file_element->{'contents'}}) {
if ($root_command->{'cmdname'}
and $root_command->{'cmdname'} eq 'node') {
# Happens for bogus nodes, as bogus nodes are not in
@@ -4811,78 +4810,74 @@
$node_filename
= $self->{'targets'}->{$root_command}->{'node_filename'};
}
- $self->_set_page_file($page, $node_filename);
- next PAGE;
- }
+ $self->_set_page_file($file_element, $node_filename);
+ last;
}
}
+ if (!defined($file_element->{'filename'})) {
# use section to do the file name if there is no node
- my $command;
- foreach my $element (@{$page->{'contents'}}) {
- $command = $self->element_command($element);
- last if $command;
- }
+ my $command =$self->element_command($file_element);;
+ #foreach my $command (@{$element->{'contents'}}) {
+ # $command = $self->element_command($element);
+ # last if $command;
+ #}
if ($command) {
if ($command->{'cmdname'} eq 'top' and !$node_top
and defined($top_node_filename)) {
- $self->_set_page_file($page, $top_node_filename);
+ $self->_set_page_file($file_element, $top_node_filename);
} else {
- $self->_set_page_file($page,
+ $self->_set_page_file($file_element,
$self->{'targets'}->{$command}->{'section_filename'});
}
} else {
# when everything else has failed
my $filename = $self->{'document_name'} . "_$file_nr";
$filename .= $extension;
- $self->_set_page_file($page, $filename);
+ $self->_set_page_file($element, $filename);
$file_nr++;
}
}
} else {
- my $previous_page;
- foreach my $page(@$pages) {
- if (defined($previous_page)) {
- $page->{'page_prev'} = $previous_page;
- $previous_page->{'page_next'} = $page;
- }
- $previous_page = $page;
my $filename = $self->{'document_name'} . "_$file_nr";
$filename .= '.'.$self->get_conf('EXTENSION')
if (defined($self->get_conf('EXTENSION'))
and $self->get_conf('EXTENSION') ne '');
- $self->_set_page_file($page, $filename);
+ $self->_set_page_file($file_element, $filename);
$file_nr++;
}
}
+ $element->{'filename'}
+ = $element->{'extra'}->{'first_in_page'}->{'filename'};
+ $element->{'out_filename'}
+ = $element->{'extra'}->{'first_in_page'}->{'out_filename'};
+ }
}
- foreach my $page (@$pages) {
+ foreach my $element (@$elements) {
if (defined($Texinfo::Config::page_file_name)) {
# FIXME pass the information that it is associated with @top or @node
Top?
- my $filename = &$Texinfo::Config::page_file_name($self, $page,
- $page->{'filename'});
- $self->_set_page_file($page, $filename) if (defined($filename));
+ my $filename = &$Texinfo::Config::element_file_name($self, $element,
+
$element->{'filename'});
+ $self->_set_page_file($element, $filename) if (defined($filename));
}
- $self->{'file_counters'}->{$page->{'filename'}}++;
- print STDERR "Page $page:
$page->{'filename'}($self->{'file_counters'}->{$page->{'filename'}})\n"
+ $self->{'file_counters'}->{$element->{'filename'}}++;
+ print STDERR "Page $element
".Texinfo::Structuring::_print_element_command_texi($element).":
$element->{'filename'}($self->{'file_counters'}->{$element->{'filename'}})\n"
if ($self->get_conf('DEBUG'));
}
- if ($special_pages) {
- my $previous_element = $pages->[-1]->{'contents'}->[-1];
- my $previous_page = $pages->[-1];
- foreach my $page (@$special_pages) {
+ if ($special_elements) {
+ my $previous_element = $elements->[-1];
+ foreach my $element (@$special_elements) {
my $filename
- =
$self->{'targets'}->{$page->{'extra'}->{'element'}}->{'misc_filename'};
- $self->_set_page_file($page, $filename) if (defined($filename));
- $self->{'file_counters'}->{$page->{'filename'}}++;
- $page->{'prev_page'} = $previous_page;
- $previous_page->{'next_page'} = $page;
- $previous_page = $page;
- print STDERR "Special page $page:
$page->{'filename'}($self->{'file_counters'}->{$page->{'filename'}})\n"
+ = $self->{'targets'}->{$element}->{'misc_filename'};
+ if (defined($filename)) {
+ $self->_set_page_file($element, $filename);
+ $self->{'file_counters'}->{$element->{'filename'}}++;
+ print STDERR "Special page $element:
$element->{'filename'}($self->{'file_counters'}->{$element->{'filename'}})\n"
if ($self->get_conf('DEBUG'));
- $page->{'contents'}->[0]->{'element_prev'} = $previous_element;
- $previous_element->{'element_next'} = $page->{'contents'}->[0];
- $previous_element = $page->{'contents'}->[0];
+ }
+ $element->{'element_prev'} = $previous_element;
+ $previous_element->{'element_next'} = $element;
+ $previous_element = $element;
}
}
}
@@ -4905,11 +4900,20 @@
$elements = Texinfo::Structuring::split_by_section($root);
}
+ $self->{'elements'} = $elements
+ if (defined($elements));
+
+ # This may be done as soon as elements are available.
+ $self->_prepare_global_targets($elements);
+
# Do that before the other elements, to be sure that special page ids
# are registered before elements id are.
- my ($special_elements, $special_pages)
+ my $special_elements
= $self->_prepare_special_elements($elements);
+ $self->{'special_elements'} = $special_elements
+ if (defined($special_elements));
+
#if ($elements) {
# foreach my $element(@{$elements}) {
# print STDERR "ELEMENT $element->{'type'}: $element\n";
@@ -4918,21 +4922,13 @@
$self->_set_root_commands_targets_node_files($elements);
- foreach my $couple ([$elements, 'elements'],
- [$special_elements, 'special_elements'],
- [$special_pages, 'special_pages']) {
- $self->{$couple->[1]} = $couple->[0]
- if (defined($couple->[0]));
- }
-
- return ($elements, $special_elements, $special_pages);
+ return ($elements, $special_elements);
}
sub _prepare_special_elements($$)
{
my $self = shift;
my $elements = shift;
- my $pages;
my %do_special;
# FIXME do that here or let it to the user?
@@ -5004,15 +5000,8 @@
" filename $filename\n" if ($self->get_conf('DEBUG'));
if ($self->get_conf('SPLIT') or !$self->get_conf('MONOLITHIC')
or $filename ne $default_filename) {
- 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);
- print STDERR "NEW page for $type\n" if ($self->get_conf('DEBUG'));
- push @$pages, $page;
+ $self->_set_page_file($element, $filename);
+ print STDERR "NEW page for $type ($filename)\n" if
($self->get_conf('DEBUG'));
}
# FIXME add element, page... (see command_filename)?
$self->{'targets'}->{$element} = {'id' => $id,
@@ -5021,7 +5010,7 @@
};
$self->{'ids'}->{$id} = $element;
}
- return ($special_elements, $pages);
+ return $special_elements;
}
sub _prepare_contents_elements($)
@@ -5035,16 +5024,16 @@
if ($self->get_conf($cmdname)) {
my $default_filename;
if ($self->get_conf('set'.$cmdname.'aftertitlepage')) {
- if ($self->{'pages'}) {
- $default_filename = $self->{'pages'}->[0]->{'filename'};
+ if ($self->{'elements'}) {
+ $default_filename = $self->{'elements'}->[0]->{'filename'};
}
} elsif ($self->get_conf('INLINE_CONTENTS')) {
if ($self->{'extra'} and $self->{'extra'}->{$cmdname}) {
foreach my $command(@{$self->{'extra'}->{$cmdname}}) {
- my ($page, $element, $root_command)
- = $self->_get_page($command);
- if (defined($page)) {
- $default_filename = $page->{'filename'};
+ my ($element, $root_command)
+ = $self->_get_element($command);
+ if (defined($element)) {
+ $default_filename = $element->{'filename'};
last;
}
}
@@ -5094,8 +5083,8 @@
# 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]);
+ my ($element, $root_command)
+ = $self->_get_element($self->{'extra'}->{'printindex'}->[0]);
$self->{'global_target_elements'}->{'Index'} = $element
if (defined($element));
}
@@ -5660,7 +5649,7 @@
my $command;
- if ($element) {
+ if ($element and $self->get_conf('SPLIT')) {
$command = $self->element_command($element);
}
@@ -5901,7 +5890,7 @@
my $result = '';
# This should return undef if called on a tree without node or sections.
- my ($elements, $special_elements, $special_pages)
+ my ($elements, $special_elements)
= $self->_prepare_elements($root);
$self->_prepare_index_entries();
$self->_prepare_footnotes();
@@ -5954,23 +5943,16 @@
$self->{'renamed_nodes'});
# This should return undef if called on a tree without node or sections.
- my ($elements, $special_elements, $special_pages)
+ my ($elements, $special_elements)
= $self->_prepare_elements($root);
- $self->_prepare_global_targets($elements);
-
- # undef if no elements
- my $pages;
- if ($self->get_conf('OUTFILE') ne '') {
- $pages = Texinfo::Structuring::split_pages($elements,
- $self->get_conf('SPLIT'));
- }
-
- $self->{'pages'} = $pages;
+ Texinfo::Structuring::split_pages($elements, $self->get_conf('SPLIT'));
# determine file names associated with the different pages, and setup
# the counters for special element pages.
- $self->_set_page_files($pages, $special_pages);
+ if ($self->get_conf('OUTFILE') ne '') {
+ $self->_set_page_files($elements, $special_elements);
+ }
$self->_prepare_contents_elements();
@@ -5986,11 +5968,12 @@
# This may only happen if not split.
if ($special_elements) {
foreach my $special_element (@$special_elements) {
- if (!defined($special_element->{'parent'})) {
- $special_element->{'parent'} = $pages->[0];
- $special_element->{'element_prev'} = $pages->[0]->{'contents'}->[-1];
- $pages->[0]->{'contents'}->[-1]->{'element_next'} = $special_element;
- push @{$pages->[0]->{'contents'}}, $special_element;
+ if (!defined($special_element->{'filename'})) {
+ $special_element->{'out_filename'} = $elements->[0]->{'out_filename'};
+ $special_element->{'filename'} = $elements->[0]->{'filename'};
+ $self->{'file_counters'}->{$special_element->{'filename'}}++;
+ print STDERR "Special page $special_element:
$special_element->{'filename'}($self->{'file_counters'}->{$special_element->{'filename'}})\n"
+ if ($self->get_conf('DEBUG'));
}
}
}
@@ -6081,13 +6064,14 @@
chomp($self->{'documentdescription_string'});
pop @{$self->{'document_context'}};
}
-
# Now do the output
my $fh;
my $output = '';
- if (!$pages) {
+ if (!$elements or !defined($elements->[0]->{'filename'})) {
# no page
if ($self->get_conf('OUTFILE') ne '') {
+ print STDERR "DO No pages, output in ".$self->get_conf('OUTFILE')."\n"
+ if ($self->get_conf('DEBUG'));
$fh = $self->Texinfo::Common::open_out ($self->get_conf('OUTFILE'),
$self->{'perl_encoding'});
if (!$fh) {
@@ -6095,7 +6079,9 @@
$self->get_conf('OUTFILE'), $!));
return undef;
}
- #$self->{'fh'} = $fh;
+ } else {
+ print STDERR "DO No pages, string output\n"
+ if ($self->get_conf('DEBUG'));
}
$self->{'current_filename'} = $self->{'output_filename'};
my $header = &{$self->{'begin_file'}}($self, $self->{'output_filename'},
undef);
@@ -6113,49 +6099,52 @@
return $output if ($self->get_conf('OUTFILE') eq '');
} else {
# output with pages
+ print STDERR "DO Elements with filenames\n"
+ if ($self->get_conf('DEBUG'));
my %files;
- $special_pages = [] if (!defined($special_pages));
- foreach my $page (@$pages, @$special_pages) {
+ $special_elements = [] if (!defined($special_elements));
+ foreach my $element (@$elements, @$special_elements) {
my $file_fh;
- $self->{'current_filename'} = $page->{'filename'};
+ $self->{'current_filename'} = $element->{'filename'};
+ $self->{'counter_in_file'}->{$element->{'filename'}}++;
+ #print STDERR "TTTTTTT($element) $element->{'filename'}:
$self->{'file_counters'}->{$element->{'filename'}}\n";
# 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);
+ my $special_element_content;
+ if ($element->{'extra'} and $element->{'extra'}->{'special_element'}) {
+ $special_element_content .= $self->_convert($element);
+ #print STDERR "Special element converter:
$element->{'extra'}->{'special_element'}\n";
+ if ($special_element_content eq '') {
+ $self->{'file_counters'}->{$element->{'filename'}}--;
+ next ;
}
- 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'},
+ if (!$files{$element->{'filename'}}->{'fh'}) {
+ $file_fh = $self->Texinfo::Common::open_out
($element->{'out_filename'},
$self->{'perl_encoding'});
if (!$file_fh) {
$self->document_error(sprintf($self->__("Could not open %s for
writing: %s"),
- $page->{'out_filename'}, $!));
+ $element->{'out_filename'}, $!));
# FIXME close/remove files already created
return undef;
}
print $file_fh "".&{$self->{'begin_file'}}($self,
- $page->{'filename'},
- $page->{'extra'}->{'element'});
- $files{$page->{'filename'}}->{'fh'} = $file_fh;
+ $element->{'filename'},
+ $element);
+ $files{$element->{'filename'}}->{'fh'} = $file_fh;
} else {
- $file_fh = $files{$page->{'filename'}}->{'fh'};
+ $file_fh = $files{$element->{'filename'}}->{'fh'};
}
- if (defined($special_page_content)) {
- print $file_fh $special_page_content;
+ if (defined($special_element_content)) {
+ print $file_fh $special_element_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) {
+ $self->{'file_counters'}->{$element->{'filename'}}--;
+ if ($self->{'file_counters'}->{$element->{'filename'}} == 0) {
# end file
print $file_fh "". &{$self->{'end_file'}}($self);
}
@@ -6615,11 +6604,9 @@
$self->{'document_context'}->[-1]->{'code'}++;
} elsif ($root->{'type'} eq '_string') {
$self->{'document_context'}->[-1]->{'string'}++;
- } elsif ($root->{'type'} eq 'page') {
- $self->{'current_page'} = $root;
- $self->{'current_filename'} = $root->{'filename'};
} elsif ($root->{'type'} eq 'element') {
$self->{'current_element'} = $root;
+ $self->{'current_filename'} = $root->{'filename'};
} elsif ($pre_class_types{$root->{'type'}}) {
push @{$self->{'document_context'}->[-1]->{'preformatted_classes'}},
$pre_class_types{$root->{'type'}};
@@ -6646,11 +6633,9 @@
$self->{'document_context'}->[-1]->{'code'}--;
} elsif ($root->{'type'} eq '_string') {
$self->{'document_context'}->[-1]->{'string'}--;
- } elsif ($root->{'type'} eq 'page') {
- delete $self->{'current_page'};
- delete $self->{'current_filename'};
} elsif ($root->{'type'} eq 'element') {
delete $self->{'current_element'};
+ delete $self->{'current_filename'};
} elsif ($pre_class_types{$root->{'type'}}) {
pop @{$self->{'document_context'}->[-1]->{'preformatted_classes'}};
}
Index: t/test_utils.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/test_utils.pl,v
retrieving revision 1.101
retrieving revision 1.102
diff -u -b -r1.101 -r1.102
--- t/test_utils.pl 25 Sep 2011 22:07:13 -0000 1.101
+++ t/test_utils.pl 5 Oct 2011 23:19:00 -0000 1.102
@@ -569,19 +569,15 @@
$directions_text .= Texinfo::Structuring::_print_directions($element);
}
}
- my $pages;
if ($split_pages) {
- $pages = Texinfo::Structuring::split_pages($elements,
- $split_pages);
+ Texinfo::Structuring::split_pages($elements, $split_pages);
}
my $file = "t/results/$self->{'name'}/$test_name.pl";
my $new_file = $file.'.new';
my $split_result;
- if ($pages) {
- $split_result = $pages;
- } elsif ($elements) {
+ if ($elements) {
$split_result = $elements;
} else {
$split_result = $result;
Index: t/results/sectioning/double_part.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/sectioning/double_part.pl,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- t/results/sectioning/double_part.pl 1 Oct 2011 10:29:32 -0000 1.16
+++ t/results/sectioning/double_part.pl 5 Oct 2011 23:19:00 -0000 1.17
@@ -9,8 +9,6 @@
{
'contents' => [
{
- 'contents' => [
- {
'contents' => [],
'parent' => {},
'type' => 'text_root'
@@ -241,23 +239,15 @@
],
'extra' => {
'element_command' => {},
+ 'first_in_page' => {},
'node' => {},
'section' => {}
},
- 'parent' => {},
'type' => 'element'
- }
- ],
- 'extra' => {
- 'element' => {}
- },
- 'type' => 'page'
},
{
'contents' => [
{
- 'contents' => [
- {
'args' => [
{
'contents' => [
@@ -480,108 +470,98 @@
'element_prev' => {},
'extra' => {
'element_command' => {},
+ 'first_in_page' => {},
'node' => {},
'section' => {}
},
- 'parent' => {},
'type' => 'element'
}
- ],
- 'extra' => {
- 'element' => {}
- },
- 'page_prev' => {},
- 'type' => 'page'
- }
];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[0]{'parent'} =
$result_trees{'double_part'}[0]{'contents'}[0];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[1];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[1]{'args'}[0];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[1]{'args'}[0];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[1]{'args'}[0];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[1]{'args'}[0]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[1];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[1]{'extra'}{'node_content'}[0]
=
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[1];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[1]{'extra'}{'nodes_manuals'}[0]{'node_content'}
=
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[1]{'extra'}{'node_content'};
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[1]{'parent'} =
$result_trees{'double_part'}[0]{'contents'}[0];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'args'}[0];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'args'}[0];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'args'}[0];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'args'}[0]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[0]{'parent'}
=
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[1]{'contents'}[0]{'parent'}
=
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[1];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[1]{'parent'}
=
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[2]{'parent'}
=
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[3]{'contents'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[3]{'contents'}[0];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[3]{'contents'}[0]{'parent'}
=
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[3];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[3]{'parent'}
=
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'extra'}{'menu_entry_description'}
=
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[3];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'extra'}{'menu_entry_node'}{'node_content'}[0]
=
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[1]{'contents'}[0];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
=
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'args'}[0];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[1]{'parent'}
=
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'args'}[0];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[2]{'parent'}
=
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'args'}[0];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'args'}[0]{'parent'}
=
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'extra'}{'command'}
= $result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'extra'}{'end_command'}
=
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[1]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'contents'}[2]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'extra'}{'misc_content'}[0]
=
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[1];
-$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2]{'parent'} =
$result_trees{'double_part'}[0]{'contents'}[0];
-$result_trees{'double_part'}[0]{'contents'}[0]{'extra'}{'element_command'} =
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2];
-$result_trees{'double_part'}[0]{'contents'}[0]{'extra'}{'node'} =
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[1];
-$result_trees{'double_part'}[0]{'contents'}[0]{'extra'}{'section'} =
$result_trees{'double_part'}[0]{'contents'}[0]{'contents'}[2];
$result_trees{'double_part'}[0]{'contents'}[0]{'parent'} =
$result_trees{'double_part'}[0];
-$result_trees{'double_part'}[0]{'extra'}{'element'} =
$result_trees{'double_part'}[0]{'contents'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0]{'args'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0]{'args'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0]{'args'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0]{'args'}[0]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0]{'contents'}[1];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0]{'contents'}[1]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0]{'extra'}{'misc_content'}[0]
=
$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1];
+$result_trees{'double_part'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'double_part'}[0]{'contents'}[1];
+$result_trees{'double_part'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'double_part'}[0]{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'double_part'}[0]{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[1]{'args'}[0];
+$result_trees{'double_part'}[0]{'contents'}[1]{'args'}[0]{'parent'} =
$result_trees{'double_part'}[0]{'contents'}[1];
+$result_trees{'double_part'}[0]{'contents'}[1]{'extra'}{'node_content'}[0] =
$result_trees{'double_part'}[0]{'contents'}[1]{'args'}[0]{'contents'}[1];
+$result_trees{'double_part'}[0]{'contents'}[1]{'extra'}{'nodes_manuals'}[0]{'node_content'}
= $result_trees{'double_part'}[0]{'contents'}[1]{'extra'}{'node_content'};
+$result_trees{'double_part'}[0]{'contents'}[1]{'parent'} =
$result_trees{'double_part'}[0];
+$result_trees{'double_part'}[0]{'contents'}[2]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'double_part'}[0]{'contents'}[2];
+$result_trees{'double_part'}[0]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[2]{'args'}[0];
+$result_trees{'double_part'}[0]{'contents'}[2]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[2]{'args'}[0];
+$result_trees{'double_part'}[0]{'contents'}[2]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[2]{'args'}[0];
+$result_trees{'double_part'}[0]{'contents'}[2]{'args'}[0]{'parent'} =
$result_trees{'double_part'}[0]{'contents'}[2];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[0]{'parent'} =
$result_trees{'double_part'}[0]{'contents'}[2];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[0]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[1]{'contents'}[0]{'parent'}
=
$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[1];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[1]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[2]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[3]{'contents'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[3]{'contents'}[0];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[3]{'contents'}[0]{'parent'}
=
$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[3];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[3]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'extra'}{'menu_entry_description'}
=
$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[3];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'extra'}{'menu_entry_node'}{'node_content'}[0]
=
$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'args'}[1]{'contents'}[0];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[1]{'parent'}
=
$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'args'}[0]{'contents'}[2]{'parent'}
=
$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'args'}[0]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'extra'}{'command'}
= $result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2]{'parent'}
= $result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'extra'}{'end_command'}
= $result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[2];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[1]{'parent'} =
$result_trees{'double_part'}[0]{'contents'}[2];
+$result_trees{'double_part'}[0]{'contents'}[2]{'contents'}[2]{'parent'} =
$result_trees{'double_part'}[0]{'contents'}[2];
+$result_trees{'double_part'}[0]{'contents'}[2]{'extra'}{'misc_content'}[0] =
$result_trees{'double_part'}[0]{'contents'}[2]{'args'}[0]{'contents'}[1];
+$result_trees{'double_part'}[0]{'contents'}[2]{'parent'} =
$result_trees{'double_part'}[0];
+$result_trees{'double_part'}[0]{'extra'}{'element_command'} =
$result_trees{'double_part'}[0]{'contents'}[2];
+$result_trees{'double_part'}[0]{'extra'}{'first_in_page'} =
$result_trees{'double_part'}[0];
+$result_trees{'double_part'}[0]{'extra'}{'node'} =
$result_trees{'double_part'}[0]{'contents'}[1];
+$result_trees{'double_part'}[0]{'extra'}{'section'} =
$result_trees{'double_part'}[0]{'contents'}[2];
+$result_trees{'double_part'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'double_part'}[1]{'contents'}[0];
+$result_trees{'double_part'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'double_part'}[1]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'double_part'}[1]{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'double_part'}[1]{'contents'}[0]{'args'}[0]{'parent'} =
$result_trees{'double_part'}[1]{'contents'}[0];
$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[0]{'parent'} =
$result_trees{'double_part'}[1]{'contents'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1]{'args'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1]{'args'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1]{'args'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1]{'args'}[0]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1]{'contents'}[0]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1]{'contents'}[0];
$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1]{'contents'}[1]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1]{'extra'}{'misc_content'}[0]
=
$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1]{'args'}[0]{'contents'}[1];
$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1]{'parent'} =
$result_trees{'double_part'}[1]{'contents'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[2];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[2]{'args'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[2]{'args'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[2]{'args'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[2]{'args'}[0]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[2];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[2]{'extra'}{'node_content'}[0]
=
$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[2]{'args'}[0]{'contents'}[1];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[2]{'extra'}{'nodes_manuals'}[0]{'node_content'}
=
$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[2]{'extra'}{'node_content'};
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[2]{'parent'} =
$result_trees{'double_part'}[1]{'contents'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[3]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[3];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[3]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[3]{'args'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[3]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[3]{'args'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[3]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[3]{'args'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[3]{'args'}[0]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[3];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[3]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[3];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[3]{'extra'}{'associated_part'}
= $result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[1];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[3]{'extra'}{'misc_content'}[0]
=
$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[3]{'args'}[0]{'contents'}[1];
-$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[3]{'parent'} =
$result_trees{'double_part'}[1]{'contents'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'element_prev'} =
$result_trees{'double_part'}[0]{'contents'}[0];
-$result_trees{'double_part'}[1]{'contents'}[0]{'extra'}{'element_command'} =
$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[3];
-$result_trees{'double_part'}[1]{'contents'}[0]{'extra'}{'node'} =
$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[2];
-$result_trees{'double_part'}[1]{'contents'}[0]{'extra'}{'section'} =
$result_trees{'double_part'}[1]{'contents'}[0]{'contents'}[3];
+$result_trees{'double_part'}[1]{'contents'}[0]{'extra'}{'misc_content'}[0] =
$result_trees{'double_part'}[1]{'contents'}[0]{'args'}[0]{'contents'}[1];
$result_trees{'double_part'}[1]{'contents'}[0]{'parent'} =
$result_trees{'double_part'}[1];
-$result_trees{'double_part'}[1]{'extra'}{'element'} =
$result_trees{'double_part'}[1]{'contents'}[0];
-$result_trees{'double_part'}[1]{'page_prev'} = $result_trees{'double_part'}[0];
+$result_trees{'double_part'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'double_part'}[1]{'contents'}[1];
+$result_trees{'double_part'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'double_part'}[1]{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'double_part'}[1]{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'double_part'}[1]{'contents'}[1]{'args'}[0]{'parent'} =
$result_trees{'double_part'}[1]{'contents'}[1];
+$result_trees{'double_part'}[1]{'contents'}[1]{'contents'}[0]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[1]{'contents'}[0];
+$result_trees{'double_part'}[1]{'contents'}[1]{'contents'}[0]{'parent'} =
$result_trees{'double_part'}[1]{'contents'}[1];
+$result_trees{'double_part'}[1]{'contents'}[1]{'contents'}[1]{'parent'} =
$result_trees{'double_part'}[1]{'contents'}[1];
+$result_trees{'double_part'}[1]{'contents'}[1]{'extra'}{'misc_content'}[0] =
$result_trees{'double_part'}[1]{'contents'}[1]{'args'}[0]{'contents'}[1];
+$result_trees{'double_part'}[1]{'contents'}[1]{'parent'} =
$result_trees{'double_part'}[1];
+$result_trees{'double_part'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'double_part'}[1]{'contents'}[2];
+$result_trees{'double_part'}[1]{'contents'}[2]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'double_part'}[1]{'contents'}[2]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'double_part'}[1]{'contents'}[2]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[2]{'args'}[0];
+$result_trees{'double_part'}[1]{'contents'}[2]{'args'}[0]{'parent'} =
$result_trees{'double_part'}[1]{'contents'}[2];
+$result_trees{'double_part'}[1]{'contents'}[2]{'extra'}{'node_content'}[0] =
$result_trees{'double_part'}[1]{'contents'}[2]{'args'}[0]{'contents'}[1];
+$result_trees{'double_part'}[1]{'contents'}[2]{'extra'}{'nodes_manuals'}[0]{'node_content'}
= $result_trees{'double_part'}[1]{'contents'}[2]{'extra'}{'node_content'};
+$result_trees{'double_part'}[1]{'contents'}[2]{'parent'} =
$result_trees{'double_part'}[1];
+$result_trees{'double_part'}[1]{'contents'}[3]{'args'}[0]{'contents'}[0]{'extra'}{'command'}
= $result_trees{'double_part'}[1]{'contents'}[3];
+$result_trees{'double_part'}[1]{'contents'}[3]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[3]{'args'}[0];
+$result_trees{'double_part'}[1]{'contents'}[3]{'args'}[0]{'contents'}[1]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[3]{'args'}[0];
+$result_trees{'double_part'}[1]{'contents'}[3]{'args'}[0]{'contents'}[2]{'parent'}
= $result_trees{'double_part'}[1]{'contents'}[3]{'args'}[0];
+$result_trees{'double_part'}[1]{'contents'}[3]{'args'}[0]{'parent'} =
$result_trees{'double_part'}[1]{'contents'}[3];
+$result_trees{'double_part'}[1]{'contents'}[3]{'contents'}[0]{'parent'} =
$result_trees{'double_part'}[1]{'contents'}[3];
+$result_trees{'double_part'}[1]{'contents'}[3]{'extra'}{'associated_part'} =
$result_trees{'double_part'}[1]{'contents'}[1];
+$result_trees{'double_part'}[1]{'contents'}[3]{'extra'}{'misc_content'}[0] =
$result_trees{'double_part'}[1]{'contents'}[3]{'args'}[0]{'contents'}[1];
+$result_trees{'double_part'}[1]{'contents'}[3]{'parent'} =
$result_trees{'double_part'}[1];
+$result_trees{'double_part'}[1]{'element_prev'} =
$result_trees{'double_part'}[0];
+$result_trees{'double_part'}[1]{'extra'}{'element_command'} =
$result_trees{'double_part'}[1]{'contents'}[3];
+$result_trees{'double_part'}[1]{'extra'}{'first_in_page'} =
$result_trees{'double_part'}[1];
+$result_trees{'double_part'}[1]{'extra'}{'node'} =
$result_trees{'double_part'}[1]{'contents'}[2];
+$result_trees{'double_part'}[1]{'extra'}{'section'} =
$result_trees{'double_part'}[1]{'contents'}[3];
$result_texis{'double_part'} = '@node Top
@top top
@@ -797,6 +777,7 @@
'level' => 1,
'number' => 1
},
+ 'first_in_page' => {},
'node' => {
'cmdname' => 'node',
'extra' => {
@@ -839,6 +820,7 @@
'extra' => {},
'level' => 0
},
+ 'first_in_page' => {},
'node' => {},
'section' => {}
},
@@ -853,6 +835,7 @@
$result_elements{'double_part'}[0]{'extra'}{'directions'}{'FastForward'}{'extra'}{'directions'}{'NodeUp'}
= $result_elements{'double_part'}[0];
$result_elements{'double_part'}[0]{'extra'}{'directions'}{'FastForward'}{'extra'}{'directions'}{'This'}
= $result_elements{'double_part'}[0]{'extra'}{'directions'}{'FastForward'};
$result_elements{'double_part'}[0]{'extra'}{'directions'}{'FastForward'}{'extra'}{'directions'}{'Up'}
= $result_elements{'double_part'}[0];
+$result_elements{'double_part'}[0]{'extra'}{'directions'}{'FastForward'}{'extra'}{'first_in_page'}
= $result_elements{'double_part'}[0]{'extra'}{'directions'}{'FastForward'};
$result_elements{'double_part'}[0]{'extra'}{'directions'}{'FastForward'}{'extra'}{'node'}{'menu_up'}{'menu_child'}
=
$result_elements{'double_part'}[0]{'extra'}{'directions'}{'FastForward'}{'extra'}{'node'};
$result_elements{'double_part'}[0]{'extra'}{'directions'}{'FastForward'}{'extra'}{'section'}
=
$result_elements{'double_part'}[0]{'extra'}{'directions'}{'FastForward'}{'extra'}{'element_command'};
$result_elements{'double_part'}[0]{'extra'}{'directions'}{'Forward'} =
$result_elements{'double_part'}[0]{'extra'}{'directions'}{'FastForward'};
@@ -861,6 +844,7 @@
$result_elements{'double_part'}[0]{'extra'}{'directions'}{'NodeNext'} =
$result_elements{'double_part'}[0]{'extra'}{'directions'}{'FastForward'};
$result_elements{'double_part'}[0]{'extra'}{'directions'}{'NodeUp'}{'extra'}{'top_node_up'}
=
$result_elements{'double_part'}[0]{'extra'}{'directions'}{'FastForward'}{'extra'}{'node'}{'menu_up'};
$result_elements{'double_part'}[0]{'extra'}{'directions'}{'This'} =
$result_elements{'double_part'}[0];
+$result_elements{'double_part'}[0]{'extra'}{'first_in_page'} =
$result_elements{'double_part'}[0];
$result_elements{'double_part'}[0]{'extra'}{'node'} =
$result_elements{'double_part'}[0]{'extra'}{'directions'}{'FastForward'}{'extra'}{'node'}{'menu_up'};
$result_elements{'double_part'}[0]{'extra'}{'section'} =
$result_elements{'double_part'}[0]{'extra'}{'element_command'};
$result_elements{'double_part'}[1] =
$result_elements{'double_part'}[0]{'extra'}{'directions'}{'FastForward'};
- texinfo/tp Texinfo/Structuring.pm Texinfo/Conve...,
Patrice Dumas <=