texinfo-commits
[Top][All Lists]
Advanced

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

texinfo/tp Makefile.PL TODO texi2any.pl Texinfo...


From: Patrice Dumas
Subject: texinfo/tp Makefile.PL TODO texi2any.pl Texinfo...
Date: Sun, 23 Jan 2011 21:18:27 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        11/01/23 21:18:27

Modified files:
        tp             : Makefile.PL TODO texi2any.pl 
        tp/Texinfo     : Parser.pm Report.pm 
        tp/Texinfo/Convert: Plaintext.pm 
        tp/t           : 02coverage.t test_count.t test_utils.pl 
        tp/t/results/coverage: item_container.pl 
        tp/t/results/invalid_nestings: 
                                       itemx_in_itemize_enumerate_in_table.pl 
        tp/t/results/itemize: headitem_itemx_in_itemize.pl 
                              not_closed_item.pl not_closed_itemize.pl 
Added files:
        tp/t/results/test_count: commands.pl flushright.pl multitable.pl 

Log message:
        Handle better option passing to parser.
        Fix counting in multitable and aligned environments.
        Add a debug format, DebugTexinfo::DebugCount to ease doing unit tests of
        counts, and add such unit tests.
        Fix default command_as_argument for @itemize.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Makefile.PL?cvsroot=texinfo&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/TODO?cvsroot=texinfo&r1=1.66&r2=1.67
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/texi2any.pl?cvsroot=texinfo&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Parser.pm?cvsroot=texinfo&r1=1.178&r2=1.179
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Report.pm?cvsroot=texinfo&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Plaintext.pm?cvsroot=texinfo&r1=1.54&r2=1.55
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/02coverage.t?cvsroot=texinfo&r1=1.30&r2=1.31
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/test_count.t?cvsroot=texinfo&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/test_utils.pl?cvsroot=texinfo&r1=1.65&r2=1.66
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/coverage/item_container.pl?cvsroot=texinfo&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/invalid_nestings/itemx_in_itemize_enumerate_in_table.pl?cvsroot=texinfo&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/itemize/headitem_itemx_in_itemize.pl?cvsroot=texinfo&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/itemize/not_closed_item.pl?cvsroot=texinfo&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/itemize/not_closed_itemize.pl?cvsroot=texinfo&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/test_count/commands.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/test_count/flushright.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/test_count/multitable.pl?cvsroot=texinfo&rev=1.1

Patches:
Index: Makefile.PL
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Makefile.PL,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- Makefile.PL 20 Sep 2010 17:19:04 -0000      1.1
+++ Makefile.PL 23 Jan 2011 21:18:26 -0000      1.2
@@ -6,6 +6,8 @@
     NAME              => 'Texinfo::Parser',
     VERSION_FROM      => 'Texinfo/Parser.pm', # finds $VERSION
     PREREQ_PM         => {}, # e.g., Module::Name => 1.1
+    PMLIBDIRS         => [ 'Texinfo' ],
+    EXE_FILES         => [ 'texi2any.pl' ],
     ($] >= 5.005 ?     ## Add these new keywords supported since 5.005
       (ABSTRACT_FROM  => 'Texinfo/Parser.pm', # retrieve abstract from module
        AUTHOR         => 'Patrice Dumas <address@hidden>') : ()),

Index: TODO
===================================================================
RCS file: /sources/texinfo/texinfo/tp/TODO,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -b -r1.66 -r1.67
--- TODO        15 Jan 2011 11:57:01 -0000      1.66
+++ TODO        23 Jan 2011 21:18:26 -0000      1.67
@@ -8,9 +8,6 @@
 could be used for the main loop.  More simply, a binary tokenizer, at 
 least, could make for a notable speedup.
 
-pass 'output_file' to Plaintext.pm.  Use it to output the result
-(if defined).  Maybe use a different call than convert?
-
 for i18n, one want to do something like
 {style} {number}: {caption}
   -> new tree. 
@@ -24,29 +21,7 @@
   -> replace acronym_like with the already formatted text and 
      explanation with convert(explanation).
 
---html -> 'converter' => sub{Texinfo::Convert::HTML->converter(@_)},
-   $converter->convert($tree);
---number-sections -> option du convertisseur.
-Config
---init truc.init
address@hidden (@footnotestyle par exemple)
-
-Texinfo::Config
-le convertisseur a des defauts. Ils sont overriden par les options.
-Depuis un .init, on peut aussi faire qqch du genre
-set_from_init_file('value', val);
-ne fait rien si ca a ete set par une option.
-Pour le savoir il y a besoin de la reference a $converter_default_options.
-C'est passe au debut dans le namespace Texinfo::Config.
-certainement equivalent a qqch comme t2h_default_load_format -- qui doit etre
-appele au debut pour mettre la reference dans le name space.
-Sinon ca set une option dans un autre hash, 
-dans Texinfo::Config::options et Texinfo::Config::options est delete.
-Ensuite Texinfo::Config::options est merge avec le hash de la ligne de 
-commande.
-Qd on est dans le document, une informative command set seulement si ca
-n'a pas ete passe au convertisseur (avec 'set' comme c'est deja fait dans les
-convertisseurs).
+Test end_line_count in Texinfo/Convert/ containers.
 
 Following should be an error:
 @example
@@ -83,11 +58,9 @@
 use definfoenclose information in Convert::Text?
 
 t/30sectioning.t setfilename_on_top_and_after_node
-there could be a wrning
+there could be a warning
  warning: @setfilename after the first element
 
-plaintext errors ?
-
 
 Incorporation of texi2html tests
 --------------------------------

Index: texi2any.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/texi2any.pl,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- texi2any.pl 17 Jan 2011 00:57:23 -0000      1.7
+++ texi2any.pl 23 Jan 2011 21:18:26 -0000      1.8
@@ -395,7 +395,7 @@
                      set_from_cmdline('SPLIT_SIZE', undef);},
  'headers' => sub { set_from_cmdline('HEADERS', $_[1]);
                     set_from_cmdline('SHOW_MENU', $_[1]);
-                    $parser_default_options->{'menus'} = 0;
+                    $parser_default_options->{'SHOW_MENU'} = $_[1];
                     $format = 'plaintext' if (!$_[1] and $format eq 'info'); },
  'output|out|o=s' => sub { 
     my $var = 'OUTFILE';
@@ -441,7 +441,10 @@
      if ($value =~ /^undef$/i) {
        $value = undef;
      }
-     set_from_cmdline ($var, $value);
+     if (set_from_cmdline ($var, $value) 
+         and exists($Texinfo::Parser::default_configuration{$var})) {
+       $parser_default_options->{$var} = $value;
+     }
    }
  },
  'css-include=s' => address@hidden,

Index: Texinfo/Parser.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Parser.pm,v
retrieving revision 1.178
retrieving revision 1.179
diff -u -b -r1.178 -r1.179
--- Texinfo/Parser.pm   16 Jan 2011 01:24:20 -0000      1.178
+++ Texinfo/Parser.pm   23 Jan 2011 21:18:26 -0000      1.179
@@ -210,10 +210,10 @@
 
 # these are the default values for the parser state that may be 
 # initialized to values given by the user.
-my %default_configuration = (
-  'test' => 0,
+our %default_configuration = (
+  'TEST' => 0,
   'DEBUG' => 0,
-  'menus' => 1,             # if false no menu error related.
+  'SHOW_MENU' => 1,             # if false no menu error related.
   'gettext' => sub {return $_[0];},
   'expanded_formats' => [],
   'include_directories' => [ '.' ],
@@ -1684,6 +1684,7 @@
   $current->{'extra'}->{'index_entry'} = $index_entry;
 }
 
+# This is always called at command closing.
 sub _remove_empty_content_arguments($)
 {
   my $current = shift;
@@ -2011,9 +2012,10 @@
       } elsif ($current->{'cmdname'} eq 'itemize' 
                and !$current->{'extra'}->{'block_command_line_contents'}) {
         $current->{'extra'}->{'block_command_line_contents'} = [
-          { 'cmdname' => 'bullet', 
+          [ { 'cmdname' => 'bullet', 
             'type' => 'command_as_argument',
             'parent' => $current }
+          ]
         ];
       }
       push @{$current->{'contents'}}, { 'type' => 'before_item',
@@ -2299,7 +2301,7 @@
     if ($arg->{'type'} eq 'menu_entry_node') {
       $self->_isolate_last_space($arg, 'space_at_end_menu_node');
       my $parsed_entry_node = _parse_node_manual($arg);
-      if (! defined($parsed_entry_node) and $self->{'menus'}) {
+      if (! defined($parsed_entry_node) and $self->{'SHOW_MENU'}) {
         $self->line_error ($self->__("Empty node in menu entry"), $line_nr);
       } else {
         $current->{'extra'}->{'menu_entry_node'} = $parsed_entry_node;
@@ -3274,13 +3276,13 @@
                 push @{$self->{'info'}->{'dircategory_direntry'}}, $block
                   if ($command eq 'direntry');
                 if ($self->{'current_node'}) {
-                  if ($command eq 'direntry' and $self->{'menus'}) {
+                  if ($command eq 'direntry' and $self->{'SHOW_MENU'}) {
                     $self->line_warn ($self->__("address@hidden after first 
node"),
                               $line_nr);
                   } elsif ($command eq 'menu') {
                     push @{$self->{'current_node'}->{'menus'}}, $current;
                   }
-                } elsif ($command ne 'direntry' and $self->{'menus'}) {
+                } elsif ($command ne 'direntry' and $self->{'SHOW_MENU'}) {
                   $self->line_error (sprintf($self->__("address@hidden seen 
before first address@hidden"), 
                                               $command), $line_nr);
                   $self->line_error ($self->__("perhaps your address@hidden 
node should be wrapped in address@hidden rather than address@hidden"), 

Index: Texinfo/Report.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Report.pm,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- Texinfo/Report.pm   16 Jan 2011 01:24:20 -0000      1.4
+++ Texinfo/Report.pm   23 Jan 2011 21:18:26 -0000      1.5
@@ -77,7 +77,7 @@
   return if (!defined($line_number));
   my $file = $line_number->{'file_name'};
   # otherwise out of source build fail since the file names are different
-  $file =~ s/^.*\/// if ($self->{'test'});
+  $file =~ s/^.*\/// if ($self->{'TEST'});
   my $warn_line;
   if ($line_number->{'macro'} ne '') {
     $warn_line = sprintf($self->__(
@@ -103,7 +103,7 @@
   my $continuation = shift;
   if (defined($line_number)) {
     my $file = $line_number->{'file_name'};
-    $file =~ s/^.*\/// if ($self->{'test'});
+    $file =~ s/^.*\/// if ($self->{'TEST'});
     my $macro_text = '';
     $macro_text = " (possibly involving address@hidden>{'macro'})"
        if ($line_number->{'macro'} ne '');

Index: Texinfo/Convert/Plaintext.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Plaintext.pm,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -b -r1.54 -r1.55
--- Texinfo/Convert/Plaintext.pm        22 Jan 2011 17:12:31 -0000      1.54
+++ Texinfo/Convert/Plaintext.pm        23 Jan 2011 21:18:26 -0000      1.55
@@ -248,7 +248,7 @@
   'NUMBER_SECTIONS'      => 1,
 
   'DEBUG'                => 0,
-  'test'                 => 0,
+  'TEST'                 => 0,
 );
 
 sub push_top_formatter($$)
@@ -410,9 +410,6 @@
   my $node = shift;
 
   my $result = '';
-  my $bytes_count = 0;
-  my $lines_count = 0;
-  my $locations = [];
 
   print STDERR "NEW NODE\n" if ($self->{'DEBUG'});
   die "Too much count_context\n" if (scalar(@{$self->{'count_context'}}) != 1);
@@ -427,7 +424,6 @@
   print STDERR "AFTER FOOTNOTES 
($self->{'count_context'}->[-1]->{'lines'},$self->{'count_context'}->[-1]->{'bytes'})\n"
 if ($self->{'DEBUG'});
 
   return $result;
-  #return ($result, {'lines' => $lines_count, 'bytes' => $bytes_count});
 }
 
 sub convert($$)
@@ -672,6 +668,18 @@
   return $text;
 }
 
+sub _update_locations_counts($$)
+{
+  my $self = shift;
+  my $locations = shift;
+  foreach my $location (@$locations) {
+    $location->{'bytes'} += $self->{'count_context'}->[-1]->{'bytes'}
+       if (defined($location->{'bytes'}));
+    $location->{'lines'} += $self->{'count_context'}->[-1]->{'lines'}
+      if (defined($location->{'lines'}));
+  }
+}
+
 my $footnote_indent = 3;
 sub _footnotes($$)
 {
@@ -772,7 +780,7 @@
   my $updated_locations = {};
   if ($locations and @$locations) {
     foreach my $location (@$locations) {
-      next unless (defined($location->{'bytes'}) and 
defined($location->{'lines'}));
+      next unless (defined($location->{'bytes'}));
       #print STDERR "L anchor $location->{'root'}->{'extra'}->{'normalized'}: 
$location->{'lines'} ($location->{'bytes'})\n";
       push @{$updated_locations->{$location->{'lines'}}}, $location;
     }
@@ -825,6 +833,25 @@
   return ($result, $bytes_count);
 }
 
+sub _align_environment($$$$)
+{
+  my $self = shift;
+  my $result = shift;
+  my $max = shift;
+  my $align = shift;
+
+  my $counts = pop @{$self->{'count_context'}};
+  my $bytes_count;
+  ($result, $bytes_count) = $self->_align_lines($result, $max,
+                      $align, $counts->{'locations'});
+  $self->_update_locations_counts($counts->{'locations'});
+  $self->{'count_context'}->[-1]->{'bytes'} += $bytes_count;
+  $self->{'count_context'}->[-1]->{'lines'} += $counts->{'lines'};
+  push @{$self->{'count_context'}->[-1]->{'locations'}},
+                       @{$counts->{'locations'}};
+  return $result;
+}
+
 sub _contents($$$)
 {
   my $self = shift;
@@ -1448,7 +1475,7 @@
                Texinfo::Convert::Text::enumerate_item_representation(
                  $root->{'parent'}->{'extra'}->{'enumerate_specification'},
                  $root->{'extra'}->{'item_number'}) . '. '));
-      } else {
+      } elsif ($root->{'parent'}->{'extra'}->{'block_command_line_contents'}) {
         # FIXME convert_line and no array of contents?
         $result = $self->_convert(
           {'contents' => 
@@ -1494,19 +1521,12 @@
                        {'contents' => $root->{'extra'}->{'misc_content'}},
                        {'indent_length' => 0});
       $result = $self->ensure_end_of_line($result);
-      my $counts = pop @{$self->{'count_context'}};
 
-      my $bytes_count;
-      ($result, $bytes_count) 
-         = $self->_align_lines ($result, 
-             $self->{'format_context'}->[-1]->{'max'}, 'center', 
-             $counts->{'locations'});
-      $self->{'count_context'}->[-1]->{'bytes'} += $bytes_count;
-      $self->{'count_context'}->[-1]->{'lines'} += $counts->{'lines'};
+      $result = $self->_align_environment ($result, 
+             $self->{'format_context'}->[-1]->{'max'}, 'center'); 
+
       $self->{'empty_lines_count'} = 0 unless ($result eq '');
       $self->{'format_context'}->[-1]->{'paragraph_count'}++;
-      push @{$self->{'count_context'}->[-1]->{'locations'}}, 
-                       @{$counts->{'locations'}};
       return $result;
     } elsif ($root->{'cmdname'} eq 'exdent') {
       $result = $self->convert_line ({'contents' => 
$root->{'extra'}->{'misc_content'}},
@@ -1803,8 +1823,9 @@
 
       $cell_idx = 0;
       my $cell_updated_locations;
-      foreach my $cell_locations 
(@{$self->{'format_context'}->[-1]->{'locations'}}) {
-        foreach my $location (@{$cell_locations}) {
+      my @row_locations;
+      foreach my $cell_locations 
(@{$self->{'format_context'}->[-1]->{'row_counts'}}) {
+        foreach my $location (@{$cell_locations->{'locations'}}) {
           next unless (defined($location->{'bytes'}) and 
defined($location->{'lines'}));
           push @{$cell_updated_locations->[$cell_idx]->{$location->{'lines'}}},
                  $location;
@@ -1813,6 +1834,7 @@
           $max_lines = $location->{'lines'}+1 
                             if ($location->{'lines'}+1 > $max_lines);
         }
+        push @row_locations, @{$cell_locations->{'locations'}};
         $cell_idx++;
       }
 
@@ -1879,23 +1901,20 @@
         $bytes_count += $self->count_bytes($line);
         $result .= $line;
       }
+      $self->_update_locations_counts(address@hidden);
+      push @{$self->{'count_context'}->[-1]->{'locations'}}, @row_locations;
+      $self->{'count_context'}->[-1]->{'bytes'} += $bytes_count;
+      $self->{'count_context'}->[-1]->{'lines'} += $max_lines;
       $self->{'format_context'}->[-1]->{'row'} = [];
-      $self->{'format_context'}->[-1]->{'locations'} = [];
+      $self->{'format_context'}->[-1]->{'row_counts'} = [];
     }
   }
   if ($paragraph) {
     $result .= $self->_count_added($paragraph->{'container'},
                                    $paragraph->{'container'}->end());
     if ($self->{'context'}->[-1] eq 'flush' and $self->in_flushright()) {
-      my $counts = pop @{$self->{'count_context'}};
-      my $bytes_count;
-      ($result, $bytes_count) = $self->_align_lines($result, 
-                      
$self->{'format_context'}->[$self->flushright_index]->{'max'},
-                      'right', $counts->{'locations'});
-      $self->{'count_context'}->[-1]->{'bytes'} += $bytes_count;
-      $self->{'count_context'}->[-1]->{'lines'} += $counts->{'lines'};
-      push @{$self->{'count_context'}->[-1]->{'locations'}},
-                       @{$counts->{'locations'}};
+      $result = $self->_align_environment ($result, 
+        $self->{'format_context'}->[$self->flushright_index]->{'max'}, 
'right');
     }
     pop @{$self->{'formatters'}};
     delete $self->{'format_context'}->[-1]->{'counter'};
@@ -2003,10 +2022,9 @@
     if ($root->{'cmdname'} and $format_context_commands{$root->{'cmdname'}}
         or $cell);
   if ($cell) {
-    # FIXME
     push @{$self->{'format_context'}->[-1]->{'row'}}, $result;
-    #push @{$self->{'format_context'}->[-1]->{'locations'}}, $locations;
-    pop @{$self->{'count_context'}};
+    my $cell_counts = pop @{$self->{'count_context'}};
+    push @{$self->{'format_context'}->[-1]->{'row_counts'}}, $cell_counts;
     $result = '';
   }
 

Index: t/02coverage.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/02coverage.t,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -b -r1.30 -r1.31
--- t/02coverage.t      1 Jan 2011 13:55:01 -0000       1.30
+++ t/02coverage.t      23 Jan 2011 21:18:26 -0000      1.31
@@ -57,6 +57,10 @@
 @item
  b--ullet
 @end itemize
+
address@hidden
address@hidden no itemize argument
address@hidden itemize
 '],
 ['table','
 @table @asis

Index: t/test_count.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/test_count.t,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- t/test_count.t      22 Jan 2011 17:39:43 -0000      1.3
+++ t/test_count.t      23 Jan 2011 21:18:26 -0000      1.4
@@ -1,64 +1,6 @@
 use strict;
 
-use Test::More;
-BEGIN { plan tests => 1 };
-use lib '../texi2html/lib/Unicode-EastAsianWidth/lib/';
-use lib '../texi2html/lib/libintl-perl/lib/';
-use Texinfo::Convert::Info;
-use Texinfo::Parser;
-use Texinfo::Structuring;
-use Test::Deep;
-use Getopt::Long qw(GetOptions);
-
-Getopt::Long::Configure("gnu_getopt");
-
-my $debug = 0;
-
-GetOptions('d|debug' => \$debug);
-
-ok(1);
-
-{
-package Texinfo::DebugCount;
-use vars qw(@ISA);
address@hidden = qw(Texinfo::Convert::Plaintext);
-
-sub _convert($$)
-{
-  my $self = shift;
-  my $root = shift;
-
-  
-  $self->{'command_type_nr'}++;
-  my $string = 
"($self->{'count_context'}->[-1]->{'bytes'},$self->{'count_context'}->[-1]->{'lines'})
 ";
-  my $command_type = '['.$self->{'command_type_nr'}.'] ';
-  $command_type .= '@'.$root->{'cmdname'} if ($root->{'cmdname'});
-  $command_type .= ":$root->{'type'}" if ($root->{'type'});
-  $command_type .= ":text" if (defined($root->{'text'}));
-  $string .= $command_type."\n";
-  push @{$self->{'debug_count_strings'}}, $string;
-  
-  my $text =
-    Texinfo::Convert::Plaintext::_convert($self, $root);
-  my $location_string = '';
-  if ($self->{'count_context'}->[-1]->{'locations'}) {
-    foreach my $location (@{$self->{'count_context'}->[-1]->{'locations'}}) {
-      $location_string .= "  l ";
-      if (defined($location->{'lines'})) {
-        $location_string .= " l $location->{'lines'}";
-      }
-      if (defined($location->{'bytes'})) {
-        $location_string .= " b $location->{'bytes'}";
-      }
-      $location_string .= "\n";
-    }
-  }
-  push @{$self->{'debug_count_strings'}}, "locations $command_type\n" 
.$location_string
-     if ($location_string ne '');
-  return $text;
-}
-
-}
+require 't/test_utils.pl';
 
 my @test_cases = (
 ['commands',
@@ -76,8 +18,6 @@
 
 text
 @end vtable'],
-);
-my @test_cases2 = (
 ['flushright',
 '
 @flushright
@@ -92,9 +32,7 @@
 new para.
 
 @end flushright
-']);
-
-my @test_cases3 = (
+'],
 ['multitable',
 '
 @multitable {aaa} {bb1} {ccc}
@@ -104,25 +42,14 @@
 @end multitable
 ']);
 
-#if (@ARGV) {
-#  my $file = shift (@ARGV);
-#  my $tree = $parser->parse_texi_file($file);
-#} else {
-#  $tree = $parser->parse_texi_text('');
-#}
-
-foreach my $test_case (@test_cases) {
-  my $test_name = $test_case->[0];
-  my $parser = Texinfo::Parser::parser();
-  my $tree = $parser->parse_texi_text($test_case->[1]);
-  my $converter = Texinfo::DebugCount->converter({'DEBUG' => $debug, 
-                                                  'parser' => $parser});
-  $converter->{'debug_count_strings'} = [];
-  $converter->{'command_type_nr'} = 0;
-  my $converted_text = $converter->_convert($tree);
-  #print STDERR @{$converter->{'debug_count_strings'}};
-  #print STDERR $converted_text;
+foreach my $test (@test_cases) {
+  $test->[2]->{'test_formats'} = ['debugcount'];
 }
 
+our ($arg_test_case, $arg_generate, $arg_debug);
+
+run_all ('test_count', address@hidden, $arg_test_case,
+   $arg_generate, $arg_debug);
+
 1;
 

Index: t/test_utils.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/test_utils.pl,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -b -r1.65 -r1.66
--- t/test_utils.pl     17 Jan 2011 00:57:23 -0000      1.65
+++ t/test_utils.pl     23 Jan 2011 21:18:26 -0000      1.66
@@ -9,6 +9,7 @@
 use Texinfo::Structuring;
 use Texinfo::Convert::Plaintext;
 use Texinfo::Convert::Info;
+use DebugTexinfo::DebugCount;
 use File::Basename;
 use Data::Dumper;
 use Data::Compare;
@@ -28,6 +29,7 @@
 my %formats = (
   'plaintext' => \&convert_to_plaintext,
   'info' => \&convert_to_info,
+  'debugcount' => \&debugcount,
 );
 
 our $arg_generate;
@@ -200,6 +202,19 @@
   return ($errors, $result);
 }
 
+sub debugcount($$$)
+{
+  my $self = shift;
+  my $tree = shift;
+  my $parser = shift;
+  my $converter =
+     DebugTexinfo::DebugCount->converter({'DEBUG' => $self->{'DEBUG'},
+                                         'parser' => $parser });
+  my $result = $converter->convert($tree);
+  my ($errors, $error_nrs) = $converter->errors();
+  return ($errors, $result);
+}
+
 sub test($$) 
 {
   my $self = shift;
@@ -225,7 +240,7 @@
     push @tested_formats, @{$self->{'test_formats'}};
   }
 
-  my $parser = Texinfo::Parser->parser({'test' => 1,
+  my $parser = Texinfo::Parser->parser({'TEST' => 1,
                                         'include_directories' => 
['t/include/'],
                                         'DEBUG' => $self->{'DEBUG'},
                                        %$parser_options});

Index: t/results/coverage/item_container.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/coverage/item_container.pl,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- t/results/coverage/item_container.pl        7 Dec 2010 20:34:27 -0000       
1.25
+++ t/results/coverage/item_container.pl        23 Jan 2011 21:18:26 -0000      
1.26
@@ -167,6 +167,71 @@
       'text' => '
 ',
       'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'itemize',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'contents' => [],
+          'parent' => {},
+          'type' => 'before_item'
+        },
+        {
+          'cmdname' => 'item',
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'no itemize argument
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'paragraph'
+            }
+          ],
+          'extra' => {
+            'item_number' => 1
+          },
+          'parent' => {}
+        }
+      ],
+      'extra' => {
+        'block_command_line_contents' => [
+          [
+            {
+              'cmdname' => 'bullet',
+              'parent' => {},
+              'type' => 'command_as_argument'
+            }
+          ]
+        ]
+      },
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
     }
   ],
   'type' => 'text_root'
@@ -198,6 +263,16 @@
 
$result_trees{'item_container'}{'contents'}[4]{'extra'}{'block_command_line_contents'}[0][0]
 = $result_trees{'item_container'}{'contents'}[4]{'args'}[0]{'contents'}[1];
 $result_trees{'item_container'}{'contents'}[4]{'parent'} = 
$result_trees{'item_container'};
 $result_trees{'item_container'}{'contents'}[5]{'parent'} = 
$result_trees{'item_container'};
+$result_trees{'item_container'}{'contents'}[6]{'parent'} = 
$result_trees{'item_container'};
+$result_trees{'item_container'}{'contents'}[7]{'contents'}[0]{'parent'} = 
$result_trees{'item_container'}{'contents'}[7];
+$result_trees{'item_container'}{'contents'}[7]{'contents'}[1]{'parent'} = 
$result_trees{'item_container'}{'contents'}[7];
+$result_trees{'item_container'}{'contents'}[7]{'contents'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'item_container'}{'contents'}[7]{'contents'}[2];
+$result_trees{'item_container'}{'contents'}[7]{'contents'}[2]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'item_container'}{'contents'}[7]{'contents'}[2]{'contents'}[1];
+$result_trees{'item_container'}{'contents'}[7]{'contents'}[2]{'contents'}[1]{'parent'}
 = $result_trees{'item_container'}{'contents'}[7]{'contents'}[2];
+$result_trees{'item_container'}{'contents'}[7]{'contents'}[2]{'parent'} = 
$result_trees{'item_container'}{'contents'}[7];
+$result_trees{'item_container'}{'contents'}[7]{'extra'}{'block_command_line_contents'}[0][0]{'parent'}
 = $result_trees{'item_container'}{'contents'}[7];
+$result_trees{'item_container'}{'contents'}[7]{'parent'} = 
$result_trees{'item_container'};
+$result_trees{'item_container'}{'contents'}[8]{'parent'} = 
$result_trees{'item_container'};
 
 $result_texis{'item_container'} = '
 @itemize +
@@ -208,6 +283,10 @@
 @item
  b--ullet
 @end itemize
+
address@hidden
address@hidden no itemize argument
address@hidden itemize
 ';
 
 
@@ -215,6 +294,8 @@
 i--tem +
 
 b--ullet
+
+no itemize argument
 ';
 
 $result_errors{'item_container'} = [];
@@ -225,6 +306,8 @@
    + i-tem +
 
    * b-ullet
+
+   * no itemize argument
 ';
 
 1;

Index: t/results/invalid_nestings/itemx_in_itemize_enumerate_in_table.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/invalid_nestings/itemx_in_itemize_enumerate_in_table.pl,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- t/results/invalid_nestings/itemx_in_itemize_enumerate_in_table.pl   7 Dec 
2010 20:34:29 -0000       1.14
+++ t/results/invalid_nestings/itemx_in_itemize_enumerate_in_table.pl   23 Jan 
2011 21:18:26 -0000      1.15
@@ -119,12 +119,14 @@
           ],
           'extra' => {
             'block_command_line_contents' => [
+              [
               {
                 'cmdname' => 'bullet',
                 'parent' => {},
                 'type' => 'command_as_argument'
               }
             ]
+            ]
           },
           'parent' => {}
         },
@@ -228,7 +230,7 @@
 
$result_trees{'itemx_in_itemize_enumerate_in_table'}{'contents'}[0]{'contents'}[4]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'itemx_in_itemize_enumerate_in_table'}{'contents'}[0]{'contents'}[4]{'contents'}[1]{'contents'}[1];
 
$result_trees{'itemx_in_itemize_enumerate_in_table'}{'contents'}[0]{'contents'}[4]{'contents'}[1]{'contents'}[1]{'parent'}
 = 
$result_trees{'itemx_in_itemize_enumerate_in_table'}{'contents'}[0]{'contents'}[4]{'contents'}[1];
 
$result_trees{'itemx_in_itemize_enumerate_in_table'}{'contents'}[0]{'contents'}[4]{'contents'}[1]{'parent'}
 = 
$result_trees{'itemx_in_itemize_enumerate_in_table'}{'contents'}[0]{'contents'}[4];
-$result_trees{'itemx_in_itemize_enumerate_in_table'}{'contents'}[0]{'contents'}[4]{'extra'}{'block_command_line_contents'}[0]{'parent'}
 = 
$result_trees{'itemx_in_itemize_enumerate_in_table'}{'contents'}[0]{'contents'}[4];
+$result_trees{'itemx_in_itemize_enumerate_in_table'}{'contents'}[0]{'contents'}[4]{'extra'}{'block_command_line_contents'}[0][0]{'parent'}
 = 
$result_trees{'itemx_in_itemize_enumerate_in_table'}{'contents'}[0]{'contents'}[4];
 
$result_trees{'itemx_in_itemize_enumerate_in_table'}{'contents'}[0]{'contents'}[4]{'parent'}
 = $result_trees{'itemx_in_itemize_enumerate_in_table'}{'contents'}[0];
 
$result_trees{'itemx_in_itemize_enumerate_in_table'}{'contents'}[0]{'contents'}[5]{'parent'}
 = $result_trees{'itemx_in_itemize_enumerate_in_table'}{'contents'}[0];
 
$result_trees{'itemx_in_itemize_enumerate_in_table'}{'contents'}[0]{'contents'}[6]{'parent'}
 = $result_trees{'itemx_in_itemize_enumerate_in_table'}{'contents'}[0];

Index: t/results/itemize/headitem_itemx_in_itemize.pl
===================================================================
RCS file: 
/sources/texinfo/texinfo/tp/t/results/itemize/headitem_itemx_in_itemize.pl,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- t/results/itemize/headitem_itemx_in_itemize.pl      7 Dec 2010 20:34:29 
-0000       1.10
+++ t/results/itemize/headitem_itemx_in_itemize.pl      23 Jan 2011 21:18:27 
-0000      1.11
@@ -78,12 +78,14 @@
       ],
       'extra' => {
         'block_command_line_contents' => [
+          [
           {
             'cmdname' => 'bullet',
             'parent' => {},
             'type' => 'command_as_argument'
           }
         ]
+        ]
       },
       'parent' => {}
     },
@@ -108,7 +110,7 @@
 
$result_trees{'headitem_itemx_in_itemize'}{'contents'}[0]{'contents'}[2]{'contents'}[5]{'contents'}[0]{'parent'}
 = 
$result_trees{'headitem_itemx_in_itemize'}{'contents'}[0]{'contents'}[2]{'contents'}[5];
 
$result_trees{'headitem_itemx_in_itemize'}{'contents'}[0]{'contents'}[2]{'contents'}[5]{'parent'}
 = $result_trees{'headitem_itemx_in_itemize'}{'contents'}[0]{'contents'}[2];
 
$result_trees{'headitem_itemx_in_itemize'}{'contents'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'headitem_itemx_in_itemize'}{'contents'}[0];
-$result_trees{'headitem_itemx_in_itemize'}{'contents'}[0]{'extra'}{'block_command_line_contents'}[0]{'parent'}
 = $result_trees{'headitem_itemx_in_itemize'}{'contents'}[0];
+$result_trees{'headitem_itemx_in_itemize'}{'contents'}[0]{'extra'}{'block_command_line_contents'}[0][0]{'parent'}
 = $result_trees{'headitem_itemx_in_itemize'}{'contents'}[0];
 $result_trees{'headitem_itemx_in_itemize'}{'contents'}[0]{'parent'} = 
$result_trees{'headitem_itemx_in_itemize'};
 $result_trees{'headitem_itemx_in_itemize'}{'contents'}[1]{'parent'} = 
$result_trees{'headitem_itemx_in_itemize'};
 

Index: t/results/itemize/not_closed_item.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/itemize/not_closed_item.pl,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- t/results/itemize/not_closed_item.pl        7 Dec 2010 20:34:29 -0000       
1.10
+++ t/results/itemize/not_closed_item.pl        23 Jan 2011 21:18:27 -0000      
1.11
@@ -46,12 +46,14 @@
       ],
       'extra' => {
         'block_command_line_contents' => [
+          [
           {
             'cmdname' => 'bullet',
             'parent' => {},
             'type' => 'command_as_argument'
           }
         ]
+        ]
       },
       'parent' => {}
     }
@@ -64,7 +66,7 @@
 
$result_trees{'not_closed_item'}{'contents'}[0]{'contents'}[2]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'not_closed_item'}{'contents'}[0]{'contents'}[2]{'contents'}[1];
 
$result_trees{'not_closed_item'}{'contents'}[0]{'contents'}[2]{'contents'}[1]{'parent'}
 = $result_trees{'not_closed_item'}{'contents'}[0]{'contents'}[2];
 $result_trees{'not_closed_item'}{'contents'}[0]{'contents'}[2]{'parent'} = 
$result_trees{'not_closed_item'}{'contents'}[0];
-$result_trees{'not_closed_item'}{'contents'}[0]{'extra'}{'block_command_line_contents'}[0]{'parent'}
 = $result_trees{'not_closed_item'}{'contents'}[0];
+$result_trees{'not_closed_item'}{'contents'}[0]{'extra'}{'block_command_line_contents'}[0][0]{'parent'}
 = $result_trees{'not_closed_item'}{'contents'}[0];
 $result_trees{'not_closed_item'}{'contents'}[0]{'parent'} = 
$result_trees{'not_closed_item'};
 
 $result_texis{'not_closed_item'} = '@itemize

Index: t/results/itemize/not_closed_itemize.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/results/itemize/not_closed_itemize.pl,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- t/results/itemize/not_closed_itemize.pl     7 Dec 2010 20:34:29 -0000       
1.9
+++ t/results/itemize/not_closed_itemize.pl     23 Jan 2011 21:18:27 -0000      
1.10
@@ -21,12 +21,14 @@
       ],
       'extra' => {
         'block_command_line_contents' => [
+          [
           {
             'cmdname' => 'bullet',
             'parent' => {},
             'type' => 'command_as_argument'
           }
         ]
+        ]
       },
       'parent' => {}
     }
@@ -35,7 +37,7 @@
 };
 $result_trees{'not_closed_itemize'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'not_closed_itemize'}{'contents'}[0];
 $result_trees{'not_closed_itemize'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'not_closed_itemize'}{'contents'}[0];
-$result_trees{'not_closed_itemize'}{'contents'}[0]{'extra'}{'block_command_line_contents'}[0]{'parent'}
 = $result_trees{'not_closed_itemize'}{'contents'}[0];
+$result_trees{'not_closed_itemize'}{'contents'}[0]{'extra'}{'block_command_line_contents'}[0][0]{'parent'}
 = $result_trees{'not_closed_itemize'}{'contents'}[0];
 $result_trees{'not_closed_itemize'}{'contents'}[0]{'parent'} = 
$result_trees{'not_closed_itemize'};
 
 $result_texis{'not_closed_itemize'} = '@itemize

Index: t/results/test_count/commands.pl
===================================================================
RCS file: t/results/test_count/commands.pl
diff -N t/results/test_count/commands.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/test_count/commands.pl    23 Jan 2011 21:18:27 -0000      1.1
@@ -0,0 +1,401 @@
+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_trees{'commands'} = {
+  'contents' => [
+    {
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'TeX',
+          'contents' => [],
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. Ab. '
+        },
+        {
+          'cmdname' => '@',
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '. '
+        },
+        {
+          'cmdname' => '
+',
+          'parent' => {}
+        },
+        {
+          'args' => [
+            {
+              'parent' => {},
+              'text' => 'e'
+            }
+          ],
+          'cmdname' => '~',
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => ', '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'args' => [
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => 'i'
+                        }
+                      ],
+                      'parent' => {},
+                      'type' => 'brace_command_arg'
+                    }
+                  ],
+                  'cmdname' => 'dotless',
+                  'contents' => [],
+                  'parent' => {}
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => '^',
+          'contents' => [],
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'Hohoh
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'example',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => ' 
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'parent' => {},
+          'text' => 'truc
+'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'cmdname' => 'samp',
+              'parent' => {},
+              'type' => 'command_as_argument'
+            },
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'space_at_end_block_command'
+            }
+          ],
+          'parent' => {},
+          'type' => 'block_line_arg'
+        }
+      ],
+      'cmdname' => 'vtable',
+      'contents' => [
+        {
+          'contents' => [],
+          'parent' => {},
+          'type' => 'before_item'
+        },
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'vitem table'
+                },
+                {
+                  'parent' => {},
+                  'text' => '
+',
+                  'type' => 'spaces_at_end'
+                }
+              ],
+              'parent' => {},
+              'type' => 'misc_line_arg'
+            }
+          ],
+          'cmdname' => 'item',
+          'extra' => {
+            'index_entry' => {
+              'command' => {},
+              'content' => [
+                {}
+              ],
+              'index_at_command' => 'vtable',
+              'index_name' => 'vr',
+              'index_prefix' => 'v'
+            },
+            'misc_content' => []
+          },
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'text
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'extra' => {
+        'block_command_line_contents' => [
+          [
+            {}
+          ]
+        ],
+        'command_as_argument' => 'samp'
+      },
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '',
+      'type' => 'empty_line_after_command'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'commands'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'commands'}{'contents'}[0]{'contents'}[0];
+$result_trees{'commands'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'commands'}{'contents'}[0];
+$result_trees{'commands'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'commands'}{'contents'}[0];
+$result_trees{'commands'}{'contents'}[0]{'contents'}[2]{'parent'} = 
$result_trees{'commands'}{'contents'}[0];
+$result_trees{'commands'}{'contents'}[0]{'contents'}[3]{'parent'} = 
$result_trees{'commands'}{'contents'}[0];
+$result_trees{'commands'}{'contents'}[0]{'contents'}[4]{'parent'} = 
$result_trees{'commands'}{'contents'}[0];
+$result_trees{'commands'}{'contents'}[0]{'contents'}[5]{'args'}[0]{'parent'} = 
$result_trees{'commands'}{'contents'}[0]{'contents'}[5];
+$result_trees{'commands'}{'contents'}[0]{'contents'}[5]{'parent'} = 
$result_trees{'commands'}{'contents'}[0];
+$result_trees{'commands'}{'contents'}[0]{'contents'}[6]{'parent'} = 
$result_trees{'commands'}{'contents'}[0];
+$result_trees{'commands'}{'contents'}[0]{'contents'}[7]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'commands'}{'contents'}[0]{'contents'}[7]{'args'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'commands'}{'contents'}[0]{'contents'}[7]{'args'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'commands'}{'contents'}[0]{'contents'}[7]{'args'}[0]{'contents'}[0];
+$result_trees{'commands'}{'contents'}[0]{'contents'}[7]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'commands'}{'contents'}[0]{'contents'}[7]{'args'}[0];
+$result_trees{'commands'}{'contents'}[0]{'contents'}[7]{'args'}[0]{'parent'} = 
$result_trees{'commands'}{'contents'}[0]{'contents'}[7];
+$result_trees{'commands'}{'contents'}[0]{'contents'}[7]{'parent'} = 
$result_trees{'commands'}{'contents'}[0];
+$result_trees{'commands'}{'contents'}[0]{'contents'}[8]{'parent'} = 
$result_trees{'commands'}{'contents'}[0];
+$result_trees{'commands'}{'contents'}[0]{'parent'} = $result_trees{'commands'};
+$result_trees{'commands'}{'contents'}[1]{'parent'} = $result_trees{'commands'};
+$result_trees{'commands'}{'contents'}[2]{'contents'}[0]{'parent'} = 
$result_trees{'commands'}{'contents'}[2];
+$result_trees{'commands'}{'contents'}[2]{'parent'} = $result_trees{'commands'};
+$result_trees{'commands'}{'contents'}[3]{'parent'} = $result_trees{'commands'};
+$result_trees{'commands'}{'contents'}[4]{'contents'}[0]{'parent'} = 
$result_trees{'commands'}{'contents'}[4];
+$result_trees{'commands'}{'contents'}[4]{'contents'}[1]{'parent'} = 
$result_trees{'commands'}{'contents'}[4];
+$result_trees{'commands'}{'contents'}[4]{'parent'} = $result_trees{'commands'};
+$result_trees{'commands'}{'contents'}[5]{'parent'} = $result_trees{'commands'};
+$result_trees{'commands'}{'contents'}[6]{'parent'} = $result_trees{'commands'};
+$result_trees{'commands'}{'contents'}[7]{'args'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'commands'}{'contents'}[7]{'args'}[0];
+$result_trees{'commands'}{'contents'}[7]{'args'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'commands'}{'contents'}[7]{'args'}[0];
+$result_trees{'commands'}{'contents'}[7]{'args'}[0]{'contents'}[2]{'parent'} = 
$result_trees{'commands'}{'contents'}[7]{'args'}[0];
+$result_trees{'commands'}{'contents'}[7]{'args'}[0]{'parent'} = 
$result_trees{'commands'}{'contents'}[7];
+$result_trees{'commands'}{'contents'}[7]{'contents'}[0]{'parent'} = 
$result_trees{'commands'}{'contents'}[7];
+$result_trees{'commands'}{'contents'}[7]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'commands'}{'contents'}[7]{'contents'}[1]{'args'}[0];
+$result_trees{'commands'}{'contents'}[7]{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'commands'}{'contents'}[7]{'contents'}[1]{'args'}[0];
+$result_trees{'commands'}{'contents'}[7]{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'commands'}{'contents'}[7]{'contents'}[1]{'args'}[0];
+$result_trees{'commands'}{'contents'}[7]{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'commands'}{'contents'}[7]{'contents'}[1];
+$result_trees{'commands'}{'contents'}[7]{'contents'}[1]{'extra'}{'index_entry'}{'command'}
 = $result_trees{'commands'}{'contents'}[7]{'contents'}[1];
+$result_trees{'commands'}{'contents'}[7]{'contents'}[1]{'extra'}{'index_entry'}{'content'}[0]
 = 
$result_trees{'commands'}{'contents'}[7]{'contents'}[1]{'args'}[0]{'contents'}[1];
+$result_trees{'commands'}{'contents'}[7]{'contents'}[1]{'extra'}{'misc_content'}
 = 
$result_trees{'commands'}{'contents'}[7]{'contents'}[1]{'extra'}{'index_entry'}{'content'};
+$result_trees{'commands'}{'contents'}[7]{'contents'}[1]{'parent'} = 
$result_trees{'commands'}{'contents'}[7];
+$result_trees{'commands'}{'contents'}[7]{'contents'}[2]{'parent'} = 
$result_trees{'commands'}{'contents'}[7];
+$result_trees{'commands'}{'contents'}[7]{'contents'}[3]{'contents'}[0]{'parent'}
 = $result_trees{'commands'}{'contents'}[7]{'contents'}[3];
+$result_trees{'commands'}{'contents'}[7]{'contents'}[3]{'parent'} = 
$result_trees{'commands'}{'contents'}[7];
+$result_trees{'commands'}{'contents'}[7]{'extra'}{'block_command_line_contents'}[0][0]
 = $result_trees{'commands'}{'contents'}[7]{'args'}[0]{'contents'}[1];
+$result_trees{'commands'}{'contents'}[7]{'parent'} = $result_trees{'commands'};
+$result_trees{'commands'}{'contents'}[8]{'parent'} = $result_trees{'commands'};
+
+$result_texis{'commands'} = '@TeX{}. Ab. @@. @
address@hidden, @address@hidden
+
+Hohoh
+
address@hidden 
+truc
address@hidden example
+
address@hidden @samp
address@hidden vitem table
+
+text
address@hidden vtable';
+
+
+$result_texts{'commands'} = 'TeX. Ab. @.  e~, i^
+
+Hohoh
+
+truc
+
+vitem table
+
+text
+';
+
+$result_errors{'commands'} = [];
+
+
+
+$result_converted{'debugcount'}->{'commands'} = ' [1] (0,0) :text_root
+  [2] (0,0) :paragraph
+   [3] (0,0) @TeX
+   [3] (0,0)
+   [4] (0,0) :text
+   [4] (8,0)
+   [5] (8,0) @@
+   [5] (8,0)
+   [6] (8,0) :text
+   [6] (12,0)
+   [7] (12,0) @
+
+   [7] (12,0)
+   [8] (12,0) @~
+   [8] (12,0)
+   [9] (12,0) :text
+   [9] (18,0)
+   [10] (18,0) @^
+   [10] (18,0)
+   [11] (18,0) :text
+   [11] (21,0)
+  [2] (22,1)
+  [12] (22,1) :empty_line:text
+  [12] (23,2)
+  [13] (23,2) :paragraph
+   [14] (23,2) :text
+   [14] (31,2)
+  [13] (32,3)
+  [15] (32,3) :empty_line:text
+  [15] (33,4)
+  [16] (33,4) @example
+   [17] (33,4) :empty_line_after_command:text
+   [17] (33,4)
+   [18] (33,4) :text
+   [18] (43,5)
+  [16] (43,5)
+  [19] (43,5) :empty_line_after_command:text
+  [19] (43,5)
+  [20] (43,5) :empty_line:text
+  [20] (44,6)
+  [21] (44,6) @vtable
+   [22] (44,6) :before_item
+   [22] (44,6)
+   [23] (44,6) @item
+    [24] (44,6) 
+     [25] (44,6) @samp
+      [26] (44,6) :brace_command_arg
+       [27] (44,6) :text
+       [27] (50,6)
+      [26] (50,6)
+     [25] (50,6)
+    [24] (50,6)
+   [23] (58,7)
+ locations   l  l 7
+   [28] (58,7) :empty_line:text
+   [28] (59,8)
+   [29] (59,8) :paragraph
+    [30] (59,8) :text
+    [30] (68,8)
+   [29] (69,9)
+  [21] (69,9)
+  [31] (69,9) :empty_line_after_command:text
+  [31] (69,9)
+ [1] (69,9)
+TeX. Ab.  @.   e~, i^
+
+   Hohoh
+
+     truc
+
+`vitem table\'
+
+     text
+';
+
+1;

Index: t/results/test_count/flushright.pl
===================================================================
RCS file: t/results/test_count/flushright.pl
diff -N t/results/test_count/flushright.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/test_count/flushright.pl  23 Jan 2011 21:18:27 -0000      1.1
@@ -0,0 +1,416 @@
+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_trees{'flushright'} = {
+  'contents' => [
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'flushright',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'parent' => {},
+          'text' => '  ',
+          'type' => 'empty_spaces_before_paragraph'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'aaa bb '
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'rrr'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'anchor',
+              'contents' => [],
+              'extra' => {
+                'brace_command_contents' => [
+                  [
+                    {}
+                  ]
+                ],
+                'node_content' => [
+                  {}
+                ],
+                'normalized' => 'rrr'
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 3,
+                'macro' => ''
+              },
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => ' ada   
+'
+            },
+            {
+              'parent' => {},
+              'text' => ' dad  sff sd '
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'a1'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'anchor',
+              'contents' => [],
+              'extra' => {
+                'brace_command_contents' => [
+                  [
+                    {}
+                  ]
+                ],
+                'node_content' => [
+                  {}
+                ],
+                'normalized' => 'a1'
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 4,
+                'macro' => ''
+              },
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => ' and '
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'a2'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'anchor',
+              'contents' => [],
+              'extra' => {
+                'brace_command_contents' => [
+                  [
+                    {}
+                  ]
+                ],
+                'node_content' => [
+                  {}
+                ],
+                'normalized' => 'a2'
+              },
+              'line_nr' => {},
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => ' dsdbf
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'dqs
+'
+            },
+            {
+              'parent' => {},
+              'text' => 'sqdd
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'alone'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'brace_command_arg'
+                }
+              ],
+              'cmdname' => 'anchor',
+              'contents' => [],
+              'extra' => {
+                'brace_command_contents' => [
+                  [
+                    {}
+                  ]
+                ],
+                'node_content' => [
+                  {}
+                ],
+                'normalized' => 'alone'
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 9,
+                'macro' => ''
+              },
+              'parent' => {}
+            },
+            {
+              'parent' => {},
+              'text' => '
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'new para.
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'flushright'}{'contents'}[0]{'parent'} = 
$result_trees{'flushright'};
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[0]{'parent'} = 
$result_trees{'flushright'}{'contents'}[1];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[1]{'parent'} = 
$result_trees{'flushright'}{'contents'}[1];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'flushright'}{'contents'}[1]{'contents'}[2];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'args'}[0];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[1];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'extra'}{'brace_command_contents'}[0][0]
 = 
$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'extra'}{'node_content'}[0]
 = 
$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'parent'}
 = $result_trees{'flushright'}{'contents'}[1]{'contents'}[2];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[2]{'parent'}
 = $result_trees{'flushright'}{'contents'}[1]{'contents'}[2];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[3]{'parent'}
 = $result_trees{'flushright'}{'contents'}[1]{'contents'}[2];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[4]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[4]{'args'}[0];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[4]{'args'}[0]{'parent'}
 = $result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[4];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[4]{'extra'}{'brace_command_contents'}[0][0]
 = 
$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[4]{'args'}[0]{'contents'}[0];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[4]{'extra'}{'node_content'}[0]
 = 
$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[4]{'args'}[0]{'contents'}[0];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[4]{'parent'}
 = $result_trees{'flushright'}{'contents'}[1]{'contents'}[2];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[5]{'parent'}
 = $result_trees{'flushright'}{'contents'}[1]{'contents'}[2];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[6]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[6]{'args'}[0];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[6]{'args'}[0]{'parent'}
 = $result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[6];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[6]{'extra'}{'brace_command_contents'}[0][0]
 = 
$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[6]{'args'}[0]{'contents'}[0];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[6]{'extra'}{'node_content'}[0]
 = 
$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[6]{'args'}[0]{'contents'}[0];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[6]{'line_nr'}
 = 
$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[4]{'line_nr'};
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[6]{'parent'}
 = $result_trees{'flushright'}{'contents'}[1]{'contents'}[2];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'contents'}[7]{'parent'}
 = $result_trees{'flushright'}{'contents'}[1]{'contents'}[2];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[2]{'parent'} = 
$result_trees{'flushright'}{'contents'}[1];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[3]{'parent'} = 
$result_trees{'flushright'}{'contents'}[1];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[4]{'contents'}[0]{'parent'}
 = $result_trees{'flushright'}{'contents'}[1]{'contents'}[4];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[4]{'contents'}[1]{'parent'}
 = $result_trees{'flushright'}{'contents'}[1]{'contents'}[4];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[4]{'parent'} = 
$result_trees{'flushright'}{'contents'}[1];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[5]{'parent'} = 
$result_trees{'flushright'}{'contents'}[1];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[6]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'flushright'}{'contents'}[1]{'contents'}[6]{'contents'}[0]{'args'}[0];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[6]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'flushright'}{'contents'}[1]{'contents'}[6]{'contents'}[0];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[6]{'contents'}[0]{'extra'}{'brace_command_contents'}[0][0]
 = 
$result_trees{'flushright'}{'contents'}[1]{'contents'}[6]{'contents'}[0]{'args'}[0]{'contents'}[0];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[6]{'contents'}[0]{'extra'}{'node_content'}[0]
 = 
$result_trees{'flushright'}{'contents'}[1]{'contents'}[6]{'contents'}[0]{'args'}[0]{'contents'}[0];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[6]{'contents'}[0]{'parent'}
 = $result_trees{'flushright'}{'contents'}[1]{'contents'}[6];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[6]{'contents'}[1]{'parent'}
 = $result_trees{'flushright'}{'contents'}[1]{'contents'}[6];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[6]{'parent'} = 
$result_trees{'flushright'}{'contents'}[1];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[7]{'parent'} = 
$result_trees{'flushright'}{'contents'}[1];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[8]{'contents'}[0]{'parent'}
 = $result_trees{'flushright'}{'contents'}[1]{'contents'}[8];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[8]{'parent'} = 
$result_trees{'flushright'}{'contents'}[1];
+$result_trees{'flushright'}{'contents'}[1]{'contents'}[9]{'parent'} = 
$result_trees{'flushright'}{'contents'}[1];
+$result_trees{'flushright'}{'contents'}[1]{'parent'} = 
$result_trees{'flushright'};
+$result_trees{'flushright'}{'contents'}[2]{'parent'} = 
$result_trees{'flushright'};
+
+$result_texis{'flushright'} = '
address@hidden
+  aaa bb @anchor{rrr} ada   
+ dad  sff sd @anchor{a1} and @anchor{a2} dsdbf
+
+dqs
+sqdd
+
address@hidden
+
+new para.
+
address@hidden flushright
+';
+
+
+$result_texts{'flushright'} = '
+aaa bb  ada   
+ dad  sff sd  and  dsdbf
+
+dqs
+sqdd
+
+
+
+new para.
+
+';
+
+$result_errors{'flushright'} = [];
+
+
+
+$result_converted{'debugcount'}->{'flushright'} = ' [1] (0,0) :text_root
+  [2] (0,0) :empty_line:text
+  [2] (1,1)
+  [3] (1,1) @flushright
+   [4] (1,1) :empty_line_after_command:text
+   [4] (1,1)
+   [5] (1,1) :empty_spaces_before_paragraph:text
+   [5] (1,1)
+   [6] (1,1) :paragraph
+    [7] (0,0) :text
+    [7] (6,0)
+    [8] (6,0) @anchor
+    [8] (6,0)
+ locations   l  l 0 b 6
+    [9] (6,0) :text
+    [9] (11,1)
+    [10] (11,1) :text
+    [10] (21,1)
+    [11] (21,1) @anchor
+    [11] (21,1)
+ locations   l  l 1 b 21
+    [12] (21,1) :text
+    [12] (25,1)
+    [13] (25,1) @anchor
+    [13] (25,1)
+ locations   l  l 1 b 25
+    [14] (25,1) :text
+    [14] (32,2)
+   [6] (143,3)
+ locations   l  l 1 b 68  l  l 2 b 134  l  l 2 b 138
+   [15] (143,3) :empty_line:text
+   [15] (144,4)
+ locations   l  l 1 b 68  l  l 2 b 134  l  l 2 b 138
+   [16] (144,4) :paragraph
+    [17] (0,0) :text
+    [17] (4,1)
+    [18] (4,1) :text
+    [18] (9,2)
+   [16] (286,6)
+ locations   l  l 1 b 68  l  l 2 b 134  l  l 2 b 138
+   [19] (286,6) :empty_line:text
+   [19] (287,7)
+ locations   l  l 1 b 68  l  l 2 b 134  l  l 2 b 138
+   [20] (287,7) :paragraph
+    [21] (0,0) @anchor
+    [21] (0,0)
+ locations   l  l 0 b 0
+    [22] (0,0) :text
+    [22] (1,1)
+   [20] (288,8)
+ locations   l  l 1 b 68  l  l 2 b 134  l  l 2 b 138  l  l 7 b 287
+   [23] (288,8) :empty_line:text
+   [23] (289,9)
+ locations   l  l 1 b 68  l  l 2 b 134  l  l 2 b 138  l  l 7 b 287
+   [24] (289,9) :paragraph
+    [25] (0,0) :text
+    [25] (10,1)
+   [24] (360,10)
+ locations   l  l 1 b 68  l  l 2 b 134  l  l 2 b 138  l  l 7 b 287
+   [26] (360,10) :empty_line:text
+   [26] (361,11)
+ locations   l  l 1 b 68  l  l 2 b 134  l  l 2 b 138  l  l 7 b 287
+  [3] (361,11)
+ locations   l  l 1 b 68  l  l 2 b 134  l  l 2 b 138  l  l 7 b 287
+  [27] (361,11) :empty_line_after_command:text
+  [27] (361,11)
+ locations   l  l 1 b 68  l  l 2 b 134  l  l 2 b 138  l  l 7 b 287
+ [1] (361,11)
+ locations   l  l 1 b 68  l  l 2 b 134  l  l 2 b 138  l  l 7 b 287
+
+                                                             aaa bb ada
+                                                   dad sff sd and dsdbf
+
+                                                                    dqs
+                                                                   sqdd
+
+
+
+                                                              new para.
+
+';
+
+1;

Index: t/results/test_count/multitable.pl
===================================================================
RCS file: t/results/test_count/multitable.pl
diff -N t/results/test_count/multitable.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/test_count/multitable.pl  23 Jan 2011 21:18:27 -0000      1.1
@@ -0,0 +1,464 @@
+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_trees{'multitable'} = {
+  'contents' => [
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'aaa'
+                }
+              ],
+              'parent' => {},
+              'type' => 'bracketed'
+            },
+            {
+              'parent' => {},
+              'text' => ' '
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'bb1'
+                }
+              ],
+              'parent' => {},
+              'type' => 'bracketed'
+            },
+            {
+              'parent' => {},
+              'text' => ' '
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'ccc'
+                }
+              ],
+              'parent' => {},
+              'type' => 'bracketed'
+            },
+            {
+              'parent' => {},
+              'text' => '
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'block_line_arg'
+        }
+      ],
+      'cmdname' => 'multitable',
+      'contents' => [
+        {
+          'contents' => [],
+          'parent' => {},
+          'type' => 'before_item'
+        },
+        {
+          'contents' => [
+            {
+              'cmdname' => 'item',
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'aaa '
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'paragraph'
+                }
+              ],
+              'extra' => {
+                'cell_number' => 1
+              },
+              'parent' => {}
+            },
+            {
+              'cmdname' => 'tab',
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'bb '
+                    },
+                    {
+                      'args' => [
+                        {
+                          'contents' => [
+                            {
+                              'parent' => {},
+                              'text' => 'anch 1'
+                            }
+                          ],
+                          'parent' => {},
+                          'type' => 'brace_command_arg'
+                        }
+                      ],
+                      'cmdname' => 'anchor',
+                      'contents' => [],
+                      'extra' => {
+                        'brace_command_contents' => [
+                          [
+                            {}
+                          ]
+                        ],
+                        'node_content' => [
+                          {}
+                        ],
+                        'normalized' => 'anch-1'
+                      },
+                      'line_nr' => {
+                        'file_name' => '',
+                        'line_nr' => 3,
+                        'macro' => ''
+                      },
+                      'parent' => {}
+                    },
+                    {
+                      'parent' => {},
+                      'text' => '
+'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'paragraph'
+                }
+              ],
+              'extra' => {
+                'cell_number' => 2
+              },
+              'parent' => {}
+            },
+            {
+              'cmdname' => 'tab',
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => 'ccc
+'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'paragraph'
+                }
+              ],
+              'extra' => {
+                'cell_number' => 3
+              },
+              'parent' => {}
+            }
+          ],
+          'extra' => {
+            'row_number' => 1
+          },
+          'parent' => {},
+          'type' => 'row'
+        },
+        {
+          'contents' => [
+            {
+              'cmdname' => 'item',
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                }
+              ],
+              'extra' => {
+                'cell_number' => 1
+              },
+              'parent' => {}
+            },
+            {
+              'cmdname' => 'tab',
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'contents' => [
+                    {
+                      'args' => [
+                        {
+                          'contents' => [
+                            {
+                              'parent' => {},
+                              'text' => 'anch2'
+                            }
+                          ],
+                          'parent' => {},
+                          'type' => 'brace_command_arg'
+                        }
+                      ],
+                      'cmdname' => 'anchor',
+                      'contents' => [],
+                      'extra' => {
+                        'brace_command_contents' => [
+                          [
+                            {}
+                          ]
+                        ],
+                        'node_content' => [
+                          {}
+                        ],
+                        'normalized' => 'anch2'
+                      },
+                      'line_nr' => {
+                        'file_name' => '',
+                        'line_nr' => 5,
+                        'macro' => ''
+                      },
+                      'parent' => {}
+                    },
+                    {
+                      'parent' => {},
+                      'text' => '
+'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'paragraph'
+                }
+              ],
+              'extra' => {
+                'cell_number' => 2
+              },
+              'parent' => {}
+            }
+          ],
+          'extra' => {
+            'row_number' => 2
+          },
+          'parent' => {},
+          'type' => 'row'
+        }
+      ],
+      'extra' => {
+        'max_columns' => 3,
+        'prototypes' => [
+          {
+            'contents' => [],
+            'parent' => {},
+            'type' => 'bracketed_multitable_prototype'
+          },
+          {
+            'contents' => [],
+            'parent' => {},
+            'type' => 'bracketed_multitable_prototype'
+          },
+          {
+            'contents' => [],
+            'parent' => {},
+            'type' => 'bracketed_multitable_prototype'
+          }
+        ]
+      },
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'multitable'}{'contents'}[0]{'parent'} = 
$result_trees{'multitable'};
+$result_trees{'multitable'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'} 
= $result_trees{'multitable'}{'contents'}[1]{'args'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'multitable'}{'contents'}[1]{'args'}[0]{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'} 
= $result_trees{'multitable'}{'contents'}[1]{'args'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'} 
= $result_trees{'multitable'}{'contents'}[1]{'args'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'args'}[0]{'contents'}[3]{'contents'}[0]{'parent'}
 = $result_trees{'multitable'}{'contents'}[1]{'args'}[0]{'contents'}[3];
+$result_trees{'multitable'}{'contents'}[1]{'args'}[0]{'contents'}[3]{'parent'} 
= $result_trees{'multitable'}{'contents'}[1]{'args'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'args'}[0]{'contents'}[4]{'parent'} 
= $result_trees{'multitable'}{'contents'}[1]{'args'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'args'}[0]{'contents'}[5]{'contents'}[0]{'parent'}
 = $result_trees{'multitable'}{'contents'}[1]{'args'}[0]{'contents'}[5];
+$result_trees{'multitable'}{'contents'}[1]{'args'}[0]{'contents'}[5]{'parent'} 
= $result_trees{'multitable'}{'contents'}[1]{'args'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'args'}[0]{'contents'}[6]{'parent'} 
= $result_trees{'multitable'}{'contents'}[1]{'args'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'multitable'}{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[0]{'parent'} = 
$result_trees{'multitable'}{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'multitable'}{'contents'}[1]{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'extra'}{'brace_command_contents'}[0][0]
 = 
$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'extra'}{'node_content'}[0]
 = 
$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'parent'}
 = 
$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[2]{'parent'}
 = 
$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'parent'}
 = $result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'parent'}
 = $result_trees{'multitable'}{'contents'}[1]{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[2];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'contents'}[1]{'parent'}
 = $result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[2];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'contents'}[2]{'parent'}
 = $result_trees{'multitable'}{'contents'}[1]{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[1]{'parent'} = 
$result_trees{'multitable'}{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'multitable'}{'contents'}[1]{'contents'}[2];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'args'}[0]{'parent'}
 = 
$result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'contents'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'brace_command_contents'}[0][0]
 = 
$result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'node_content'}[0]
 = 
$result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'contents'}[1]{'parent'}
 = 
$result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'contents'}[1]{'parent'}
 = $result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'contents'}[1]{'parent'}
 = $result_trees{'multitable'}{'contents'}[1]{'contents'}[2];
+$result_trees{'multitable'}{'contents'}[1]{'contents'}[2]{'parent'} = 
$result_trees{'multitable'}{'contents'}[1];
+$result_trees{'multitable'}{'contents'}[1]{'extra'}{'prototypes'}[0]{'contents'}
 = 
$result_trees{'multitable'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'contents'};
+$result_trees{'multitable'}{'contents'}[1]{'extra'}{'prototypes'}[0]{'parent'} 
= $result_trees{'multitable'}{'contents'}[1]{'args'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'extra'}{'prototypes'}[1]{'contents'}
 = 
$result_trees{'multitable'}{'contents'}[1]{'args'}[0]{'contents'}[3]{'contents'};
+$result_trees{'multitable'}{'contents'}[1]{'extra'}{'prototypes'}[1]{'parent'} 
= $result_trees{'multitable'}{'contents'}[1]{'args'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'extra'}{'prototypes'}[2]{'contents'}
 = 
$result_trees{'multitable'}{'contents'}[1]{'args'}[0]{'contents'}[5]{'contents'};
+$result_trees{'multitable'}{'contents'}[1]{'extra'}{'prototypes'}[2]{'parent'} 
= $result_trees{'multitable'}{'contents'}[1]{'args'}[0];
+$result_trees{'multitable'}{'contents'}[1]{'parent'} = 
$result_trees{'multitable'};
+$result_trees{'multitable'}{'contents'}[2]{'parent'} = 
$result_trees{'multitable'};
+
+$result_texis{'multitable'} = '
address@hidden {aaa} {bb1} {ccc}
address@hidden aaa @tab bb @anchor{anch 1}
address@hidden ccc
address@hidden @tab @anchor{anch2}
address@hidden multitable
+';
+
+
+$result_texts{'multitable'} = '
+aaa bb 
+ccc
+
+';
+
+$result_errors{'multitable'} = [];
+
+
+
+$result_converted{'debugcount'}->{'multitable'} = ' [1] (0,0) :text_root
+  [2] (0,0) :empty_line:text
+  [2] (1,1)
+  [3] (1,1) @multitable
+   [4] (0,0) :bracketed_multitable_prototype
+    [5] (0,0) :text
+    [5] (0,0)
+   [4] (0,0)
+   [6] (0,0) :bracketed_multitable_prototype
+    [7] (0,0) :text
+    [7] (0,0)
+   [6] (0,0)
+   [8] (0,0) :bracketed_multitable_prototype
+    [9] (0,0) :text
+    [9] (0,0)
+   [8] (0,0)
+   [10] (1,1) :before_item
+   [10] (1,1)
+   [11] (1,1) :row
+    [12] (1,1) @item
+     [13] (0,0) :empty_spaces_after_command:text
+     [13] (0,0)
+     [14] (0,0) :paragraph
+      [15] (0,0) :text
+      [15] (4,1)
+     [14] (4,1)
+    [12] (1,1)
+    [16] (1,1) @tab
+     [17] (0,0) :empty_spaces_after_command:text
+     [17] (0,0)
+     [18] (0,0) :paragraph
+      [19] (0,0) :text
+      [19] (2,0)
+      [20] (2,0) @anchor
+      [20] (2,0)
+ locations   l  l 0 b 2
+      [21] (2,0) :text
+      [21] (2,0)
+     [18] (3,1)
+    [16] (1,1)
+    [22] (1,1) @tab
+     [23] (0,0) :empty_spaces_after_command:text
+     [23] (0,0)
+     [24] (0,0) :paragraph
+      [25] (0,0) :text
+      [25] (4,1)
+     [24] (4,1)
+    [22] (1,1)
+   [11] (17,2)
+ locations   l  l 1 b 9
+   [26] (17,2) :row
+    [27] (17,2) @item
+     [28] (0,0) :empty_spaces_after_command:text
+     [28] (0,0)
+    [27] (17,2)
+ locations   l  l 1 b 9
+    [29] (17,2) @tab
+     [30] (0,0) :empty_spaces_after_command:text
+     [30] (0,0)
+     [31] (0,0) :paragraph
+      [32] (0,0) @anchor
+      [32] (0,0)
+ locations   l  l 0 b 0
+      [33] (0,0) :text
+      [33] (0,0)
+     [31] (0,0)
+    [29] (17,2)
+ locations   l  l 1 b 9
+   [26] (24,3)
+ locations   l  l 1 b 9  l  l 2 b 23
+  [3] (24,3)
+ locations   l  l 1 b 9  l  l 2 b 23
+  [34] (24,3) :empty_line_after_command:text
+  [34] (24,3)
+ locations   l  l 1 b 9  l  l 2 b 23
+ [1] (24,3)
+ locations   l  l 1 b 9  l  l 2 b 23
+
+aaa   bb    ccc
+      
+';
+
+1;



reply via email to

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