texinfo-commits
[Top][All Lists]
Advanced

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

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


From: Patrice Dumas
Subject: texinfo/tp texi2any.pl Texinfo/Parser.pm Texinf...
Date: Sun, 20 Mar 2011 20:29:02 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        11/03/20 20:29:01

Modified files:
        tp             : texi2any.pl 
        tp/Texinfo     : Parser.pm 
        tp/Texinfo/Convert: Info.pm Plaintext.pm 
        tp/t           : test_utils.pl 
Added files:
        tp/t           : languages.t 
        tp/t/results/languages: simple.pl 

Log message:
        Remove illicit characters in comments.
        Search better for document strings.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/texi2any.pl?cvsroot=texinfo&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Parser.pm?cvsroot=texinfo&r1=1.225&r2=1.226
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Info.pm?cvsroot=texinfo&r1=1.47&r2=1.48
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Plaintext.pm?cvsroot=texinfo&r1=1.122&r2=1.123
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/test_utils.pl?cvsroot=texinfo&r1=1.74&r2=1.75
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/languages.t?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/languages/simple.pl?cvsroot=texinfo&rev=1.1

Patches:
Index: texi2any.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/texi2any.pl,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- texi2any.pl 20 Mar 2011 13:00:30 -0000      1.24
+++ texi2any.pl 20 Mar 2011 20:29:00 -0000      1.25
@@ -84,6 +84,9 @@
 #my $messages_textdomain = 'texinfo';
 my $messages_textdomain = '@PACKAGE@';
 $messages_textdomain = 'texinfo' if ($messages_textdomain eq '@'.'PACKAGE@');
+my $strings_textdomain = '@PACKAGE@' . '_document';
+# FIXME use texinfo
+$strings_textdomain = 'texi2html_document' if ($strings_textdomain eq 
'@'.'PACKAGE@' . '_document');
 
 sub __($) {
   my $msgid = shift;
@@ -117,6 +120,28 @@
 Locale::Messages->select_package ('gettext_pp');
 
 if ($0 =~ /\.pl$/) {
+  # in case of out of source build, the locales directory should
+  # FIXME srcdir
+  # be in the same directory or in the srcdir, 
+  # FIXME
+  # or in the texi2html directory
+  my $locales_dir_found = 0;
+  foreach my $locales_dir ("$srcdir/locales", "./locales", 
'../texi2html/locales') {
+    if (-d $locales_dir) {
+      Locale::Messages::bindtextdomain ($strings_textdomain, $locales_dir);
+      $locales_dir_found = 1;
+      last;
+    }
+  }
+  if (!$locales_dir_found) {
+    warn "Locales dir for document strings not found\n";
+  }
+} else {
+  Locale::Messages::bindtextdomain ($strings_textdomain, "$datadir/locale");
+}
+Locale::Messages::bindtextdomain ($messages_textdomain, "$datadir/locale");
+
+if ($0 =~ /\.pl$/) {
   unshift @INC, "$srcdir/lib/Unicode-EastAsianWidth/lib";
 } elsif ('@USE_EXTERNAL_EASTASIANWIDTH@' ne 'yes') {
   unshift @INC, "$pkgdatadir/lib/Unicode-EastAsianWidth/lib";

Index: Texinfo/Parser.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Parser.pm,v
retrieving revision 1.225
retrieving revision 1.226
diff -u -b -r1.225 -r1.226
--- Texinfo/Parser.pm   19 Mar 2011 10:09:33 -0000      1.225
+++ Texinfo/Parser.pm   20 Mar 2011 20:29:00 -0000      1.226
@@ -92,12 +92,14 @@
 # gettext.
 Locale::Messages->select_package ('gettext_pp');
 
-my $strings_textdomain = 'texinfo_document';
+#my $strings_textdomain = 'texinfo_document';
+# FIXME use texinfo_document
+my $strings_textdomain = 'texi2html_document';
 my $messages_textdomain = 'texinfo';
 
 # libintl converts between encodings but doesn't decode them into the
 # perl internal format.  This is only caled if the encoding is a proper
-# perl encoding.
+# perl encoding.
 sub encode_i18n_string($$)
 {
   my $string = shift;
@@ -106,7 +108,7 @@
 }
 
 # handle translations of in-document strings.
-sub gdt($$$;$)
+sub gdt($$;$$)
 {
   my $self = shift;
   my $message = shift;
@@ -148,12 +150,12 @@
     # always try us-ascii, the charset should always be a subset of
     # all charset, and should resort to @-commands if needed for non
     # ascii characters
-    if ($encoding and $encoding ne 'us-ascii') {
+    if (!$encoding or ($encoding and $encoding ne 'us-ascii')) {
       $locales .= "$language.us-ascii:";
     }
   }
   $locales =~ s/:$//;
-  #print STDERR "$locales\n";
+  #print STDERR "$locales $message\n";
   # END FIXME
 
   Locale::Messages::nl_putenv("LANGUAGE=$locales");
@@ -224,7 +226,7 @@
   # this is the initial context.  It is put at the bottom of the 
   # 'context_stack'
   'context' => '_root',
-  # the stack of the macros being expanded (more recent are first)
+  # the stack of the macros being expanded (more recent are first)
   'macro_stack' => [],
   # these are the user-added indices.  May be an array reference on names
   # or an hash reference in the same format than %index_names below
@@ -244,7 +246,7 @@
                               # in the `HTML Xref' node.  Value should be
                               # a node/anchor or float in the tree.
   'novalidate' => 0,          # same as setting @novalidate.
-  'perl_encoding' => undef,   # perl encoding name, set from @documentencoding
+  'perl_encoding' => undef,   # perl encoding name, set from @documentencoding
   'encoding_name' => undef,   # Current encoding set by @documentencoding
                               # and normalized
   'documentlanguage' => undef, 
@@ -252,7 +254,7 @@
                               # @documentlanguage
   'ENABLE_ENCODING' => 1,     # corresponds to --enable-encoding.
   'MAX_MACRO_CALL_NESTING' => 100000, # max number of nested macro calls
-  'TOP_NODE_UP' => '(dir)'    # up node of Top node
+  'TOP_NODE_UP' => '(dir)'    # up node of Top node
 );
 
 # The commands in initialization_overrides are not set in the document if
@@ -286,9 +288,9 @@
 #                         is also in that structure.
 # misc_commands           the same than %misc_commands below, but with index
 #                         entry commands dynamically added
-# close_paragraph_commands      same than %close_paragraph_command, but with
+# close_paragraph_commands      same than %close_paragraph_command, but with
 #                               insertcopying removed if INLINE_INSERTCOPYING
-# close_preformatted_commands   same than %close_preformatted_command, but 
with
+# close_preformatted_commands   same than %close_preformatted_command, but with
 #                               insertcopying removed if INLINE_INSERTCOPYING
 # no_paragraph_commands   the same than %default_no_paragraph_commands
 #                         below, with index
@@ -306,7 +308,7 @@
 #                         on index_entry.
 # floats                  key is the normalized float type, value is an array
 #                         reference holding all the floats.
-# internal_references     an array holding all the internal references.
+# internal_references     an array holding all the internal references.
 
 # set                     points to the value set when initializing, for
 #                         configuration items that are not to be overriden
@@ -1098,7 +1100,7 @@
   $current = _close_all_style_commands($self, $current, $line_nr);
   if ($current->{'type'} and $current->{'type'} eq 'preformatted') {
     print STDERR "CLOSE PREFORMATTED\n" if ($self->{'DEBUG'});
-    # completly remove void preformatted contexts
+    # completly remove void preformatted contexts
     if (address@hidden>{'contents'}}) {
       my $removed = pop @{$current->{'parent'}->{'contents'}};
       print STDERR "popping $removed->{'type'}\n" if ($self->{'DEBUG'});
@@ -1108,12 +1110,12 @@
   return $current;
 }
 
-# close formats
+# close formats
 sub _close_command_cleanup($$$) {
   my $self = shift;
   my $current = shift;
 # remove the dynamic counters in multitable, they are not of use in the final
-# tree
+# tree
   return unless ($current->{'cmdname'});
   if ($current->{'cmdname'} eq 'multitable') {
     foreach my $row (@{$current->{'contents'}}) {
@@ -1148,7 +1150,7 @@
           $end->{'parent'} = $current;
           push @{$current->{'contents'}}, $end;
         }
-        # remove empty before_items
+        # remove empty before_items
         if (address@hidden>{'contents'}}) {
           if ($leading_spaces) {
             my $space = shift @{$current->{'contents'}};
@@ -1752,8 +1754,8 @@
   my @result;
   my @args = @{$def_map{$command}};
   my $arg_type;
-  # Even when $arg_type is not set, that is for def* that is not documented
-  # to take args, everything is as is arg_type was set to arg.
+  # Even when $arg_type is not set, that is for def* that is not documented
+  # to take args, everything is as is arg_type was set to arg.
   $arg_type = pop @args if ($args[-1] eq 'arg' or $args[-1] eq 'argtype');
   foreach my $arg (@args) {
     #print STDERR "$command $arg"._print_current($contents[0]);
@@ -1871,7 +1873,7 @@
   $current->{'extra'}->{'index_entry'} = $index_entry;
 }
 
-# This is always called at command closing.
+# This is always called at command closing.
 sub _remove_empty_content_arguments($)
 {
   my $current = shift;
@@ -2029,7 +2031,7 @@
         $arg = undef;
       }
       push @{$self->{'context_stack'}}, 'preformatted';
-      # MENU_COMMENT open
+      # MENU_COMMENT open
       $menu_entry = undef;
     } else {
       print STDERR "MENU ENTRY END LINE\n" if ($self->{'DEBUG'});
@@ -2072,7 +2074,7 @@
         $def_parsed_hash->{$arg->[0]} = $arg->[1];
       }
       $current->{'parent'}->{'extra'}->{'def_parsed_hash'} = $def_parsed_hash;
-      # do an standard index entry tree
+      # do an standard index entry tree
       my $index_entry = $def_parsed_hash->{'name'};
       if (defined($index_entry)) {
         if ($def_parsed_hash->{'class'}) {
@@ -2088,7 +2090,7 @@
           }
         }
         my $index_contents;
-        # 'root_line' is the container returned by gdt.
+        # 'root_line' is the container returned by gdt.
         if ($index_entry->{'type'} and $index_entry->{'type'} eq 'root_line') {
           $index_contents = $index_entry->{'contents'};
         } else {
@@ -2402,7 +2404,7 @@
         }
       }
     } elsif ($command eq 'listoffloats') {
-      # Empty listoffloats is allowed
+      # Empty listoffloats is allowed
       _parse_float_type($current);
       #if (!_parse_float_type($current)) {
       #  $self->line_error (sprintf($self->__("address@hidden missing 
argument"), 
@@ -2448,14 +2450,14 @@
           $self->_close_command_cleanup($closed_command);
           $end->{'parent'} = $closed_command;
 
-          # register @insertcopying as a macro if INLINE_INSERTCOPYING is set.
+          # register @insertcopying as a macro if INLINE_INSERTCOPYING is set.
           if ($end_command eq 'copying' and $self->{'INLINE_INSERTCOPYING'}) {
-            # remove the end of line following @copying.
+            # remove the end of line following @copying.
             my @contents = @{$closed_command->{'contents'}};
             shift @contents if ($contents[0] and $contents[0]->{'type'}
                and ($contents[0]->{'type'} eq 'empty_line_after_command'
                     or $contents[0]->{'type'} eq 
'empty_spaces_after_command'));
-            # the macrobody is the @copying content converted to Texinfo.
+            # the macrobody is the @copying content converted to Texinfo.
             my $body = Texinfo::Convert::Texinfo::convert(
                          {'contents' => address@hidden);
             
@@ -2533,7 +2535,7 @@
                and $current->{'contents'}->[-2]->{'type'}
                and $current->{'contents'}->[-2]->{'type'} eq 
'empty_line_after_command'))) {
     # empty line after a @menu or before a preformatted. Reparent to the menu
-    # or other format
+    # or other format
     if ($current->{'type'}
         and $current->{'type'} eq 'preformatted') {
       my $parent = $current->{'parent'};
@@ -3169,16 +3171,16 @@
               # the push @{$current->{'contents'}}, {}; prevents a trailing
               # text to be merged, to avoid having the value tree modified.
               } elsif (ref($self->{'values'}->{$value}) eq 'ARRAY') {
-                # we don't know for sure, but if we don't do it here it 
-                # won't be done
+                # we don't know for sure, but if we don't do it here it 
+                # won't be done
                 _abort_empty_line ($self, $current);
                 foreach my $content (@{$self->{'values'}->{$value}}) {
                   push @{$current->{'contents'}}, $content;
                 }
                 push @{$current->{'contents'}}, {};
               } elsif (ref($self->{'values'}->{$value}) eq 'HASH') {
-                # we don't know for sure, but if we don't do it here it 
-                # won't be done
+                # we don't know for sure, but if we don't do it here it 
+                # won't be done
                 _abort_empty_line ($self, $current);
                 my $content = $self->{'values'}->{$value};
                 push @{$current->{'contents'}}, $content;
@@ -3221,7 +3223,7 @@
         if ($current->{'parent'}) { 
           if ($current->{'parent'}->{'cmdname'}) {
           # FIXME in all the cases below, there is an error message even if
-          # the command is an unknown command
+          # the command is an unknown command
             if ($accent_commands{$current->{'parent'}->{'cmdname'}}            
                
                 and !$in_accent_commands{$command}) {
               $self->line_warn (sprintf($self->__("address@hidden should not 
appear in address@hidden"), 
@@ -3572,7 +3574,7 @@
               }
             } elsif ($command =~ /^ifnot(.*)/) {
               $ifvalue_true = 1 if !($self->{'expanded_formats_hash'}->{$1}
-                    # exception as explained in the texinfo manual
+                    # exception as explained in the texinfo manual
                     or ($1 eq 'info' 
                         and $self->{'expanded_formats_hash'}->{'plaintext'}));
               print STDERR "CONDITIONAL address@hidden format $1: 
$ifvalue_true\n" if ($self->{'DEBUG'});

Index: Texinfo/Convert/Info.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Info.pm,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -b -r1.47 -r1.48
--- Texinfo/Convert/Info.pm     20 Mar 2011 13:00:30 -0000      1.47
+++ Texinfo/Convert/Info.pm     20 Mar 2011 20:29:01 -0000      1.48
@@ -56,12 +56,12 @@
 
   my $result;
 
-  # determine input file base name
+  # determine input file base name
   my $input_basename;
   if (defined($self->{'info'}->{'input_file_name'})) {
     $input_basename = $self->{'info'}->{'input_file_name'};
   } else {
-    # This could happen if called on a piece of texinfo
+    # This could happen if called on a piece of texinfo
     $input_basename = '';
   }
   $input_basename =~ s/^.*\///;
@@ -74,7 +74,7 @@
         and $self->{'extra'}->{'setfilename'}->{'extra'}
         and 
defined($self->{'extra'}->{'setfilename'}->{'extra'}->{'text_arg'}));
 
-  # determine output file and output file name
+  # determine output file and output file name
   if (!defined($self->{'OUTFILE'})) {
     if (defined($setfilename)) {
       $self->{'OUTFILE'} = $setfilename;
@@ -89,7 +89,7 @@
       $self->{'OUTFILE'} = "$self->{'SUBDIR'}/$self->{'OUTFILE'}";
     }
   } else {
-    # no splitting when writing to the null device or to stdout
+    # no splitting when writing to the null device or to stdout
     if ($Texinfo::Common::null_device_file{$self->{'OUTFILE'}} 
          or $self->{'OUTFILE'} eq '-') {
       $self->{'SPLIT_SIZE'} = undef;
@@ -97,8 +97,8 @@
   }
 
   my $output_basename = $self->{'OUTFILE'};
-  # this is a case that should happen rarely: one wants to get 
-  # the result in a string and there is a setfilename.
+  # this is a case that should happen rarely: one wants to get 
+  # the result in a string and there is a setfilename.
   if ($self->{'OUTFILE'} eq '' and defined($setfilename)) {
     $output_basename = $setfilename;
   }
@@ -228,7 +228,7 @@
   if ($out_file_nr > 1) {
     $tag_text .=  "(Indirect)\n";
   }
-  # This may happen for anchors in @insertcopying
+  # This may happen for anchors in @insertcopying
   my %seen_anchors;
   foreach my $label (@{$self->{'count_context'}->[-1]->{'locations'}}) {
     next unless ($label->{'root'} and $label->{'root'}->{'extra'} 
@@ -273,14 +273,14 @@
 {
   my $self = shift;
 
-  # FIXME version/program
+  # FIXME version/program
   #my $text = "This is $self->{'output_filename'}, produced by makeinfo 
version 4.13 from $self->{'input_basename'}.";
   my $paragraph = Texinfo::Convert::Paragraph->new();
   #my $result = $paragraph->add_text($text);
   my $result = $paragraph->add_text("This is ");
-  # This ensures that spaces in file are kept.
+  # This ensures that spaces in file are kept.
   $result .= $paragraph->add_next($self->{'output_filename'});
-  # FIXME version/program
+  # FIXME version/program
   $result .= $paragraph->add_text(', produced by makeinfo version 4.13 from ');
   $result .= $paragraph->add_next($self->{'input_basename'});
   $result .= $paragraph->add_text('.');
@@ -348,7 +348,7 @@
     return '';
   }
 
-  # this is not redone for each index, only once
+  # this is not redone for each index, only once
   if (!defined($self->{'index_entries'}) and $self->{'parser'}) {
 
     my ($index_names, $merged_indices, $index_entries)
@@ -372,7 +372,7 @@
   $self->_add_text_count($heading);
   $self->_add_lines_count(3);
 
-  # first determine the line numbers for the spacing of their formatting
+  # first determine the line numbers for the spacing of their formatting
   my %line_nrs;
   my %entry_nodes;
   my $max_index_line_nr_string_length = 0;
@@ -382,7 +382,7 @@
 
     if (defined 
($self->{'index_entries_line_location'}->{$entry->{'command'}})) {
       $line_nr = 
$self->{'index_entries_line_location'}->{$entry->{'command'}}->{'lines'};
-      # ignore index entries in special regions that haven't been seen
+      # ignore index entries in special regions that haven't been seen
     } elsif ($entry->{'region'}) {
       $ignored_entries{$entry} = 1;
       next;
@@ -408,7 +408,7 @@
     $line_nrs{$entry} = $line_nr;
   }
 
-  # this is used to count entries that are the same
+  # this is used to count entries that are the same
   my %entry_counts = ();
 
   foreach my $entry (@{$self->{'index_entries'}->{$index_name}}) {
@@ -449,9 +449,9 @@
 
     if (!defined($node)) {
       $node_text = $self->gdt('(outside of any node)');
-      # Warn, but only once.
-      # FIXME when outside of sectioning commands this message was already
-      # done by the Parser.
+      # Warn, but only once.
+      # FIXME when outside of sectioning commands this message was already
+      # done by the Parser.
       if (!$self->{'index_entries_no_node'}->{$entry}) {
         $self->line_warn (sprintf($self->__("Entry for index `%s' outside of 
any node"),
                                  $index_name), 
$entry->{'command'}->{'line_nr'});
@@ -525,7 +525,7 @@
     $self->_add_text_count("\n");
   }
 
-  # May happen when only converting a fragment
+  # May happen when only converting a fragment
   my $output_filename = $self->{'output_filename'};
   if (defined($self->{'output_filename'})) {
     $output_filename = $self->{'output_filename'};
@@ -587,8 +587,8 @@
     my $image_file;
     foreach my $extension (@extensions) {
       if ($self->Texinfo::Parser::_locate_include_file ($basefile.$extension)) 
{
-        # use the basename and not the file found.  It is agreed that it is
-        # better, since in any case the files are moved.
+        # use the basename and not the file found.  It is agreed that it is
+        # better, since in any case the files are moved.
         $image_file = $basefile.$extension;
         last; 
       }

Index: Texinfo/Convert/Plaintext.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Plaintext.pm,v
retrieving revision 1.122
retrieving revision 1.123
diff -u -b -r1.122 -r1.123
--- Texinfo/Convert/Plaintext.pm        20 Mar 2011 13:00:30 -0000      1.122
+++ Texinfo/Convert/Plaintext.pm        20 Mar 2011 20:29:01 -0000      1.123
@@ -56,7 +56,7 @@
 
 $VERSION = '0.01';
 
-# misc commands that are of use for formatting.
+# misc commands that are of use for formatting.
 my %formatting_misc_commands = 
%Texinfo::Convert::Text::formatting_misc_commands;
 
 my $NO_NUMBER_FOOTNOTE_SYMBOL = '*';
@@ -233,8 +233,8 @@
   'paragraphindent'      => 3,
   'firstparagraphindent' => 'none',
   'ENABLE_ENCODING'      => 1,
-# this default is for Info, but also when doing Texinfo fragments.  So this 
-# has to be explicitly set to 0 when doing real plaintext.
+# this default is for Info, but also when doing Texinfo fragments.  So this 
+# has to be explicitly set to 0 when doing real plaintext.
   'SHOW_MENU'            => 1,
   'footnotestyle'        => 'end',
   'fillcolumn'           => 72,
@@ -288,14 +288,14 @@
         and !$self->{'perl_encoding'}) {
       $self->{'encoding_name'} = $root->{'extra'}->{'encoding_name'};
       $self->{'perl_encoding'} = $root->{'extra'}->{'perl_encoding'};
-      # the following does not work with shifijs.  The encoding
-      # has to be set only once by open_out. 
+      # the following does not work with shifijs.  The encoding
+      # has to be set only once by open_out. 
       #if (defined($self->{'fh'})) {
       #  my $encoding = $self->{'perl_encoding'};
       #  my $filehandle = $self->{'fh'};
       #  if ($encoding eq 'utf8' or $encoding eq 'utf-8-strict') {
       #    binmode($filehandle, ':utf8');
-      #  } else { # FIXME also right for shiftijs or similar encodings?
+      #  } else { # FIXME also right for shiftijs or similar encodings?
       #    binmode($filehandle, ':bytes');
       #  }
       #  binmode($filehandle, ":encoding($encoding)");
@@ -443,8 +443,8 @@
 
   %{$converter->{'ignored_types'}} = %ignored_types;
   %{$converter->{'ignored_commands'}} = %ignored_commands;
-  # this is dynamic because raw formats may either be full comma,nds if
-  # isolated, or simple text if in a paragraph
+  # this is dynamic because raw formats may either be full comma,nds if
+  # isolated, or simple text if in a paragraph
   %{$converter->{'format_context_commands'}} = 
%default_format_context_commands;
   %{$converter->{'preformatted_context_commands'}} 
      = %default_preformatted_context_commands;
@@ -872,7 +872,7 @@
     my $line_bytes_begin = 0;
     my $line_bytes_end = 0;
     my $chomped = chomp($line);
-    # for debugging.
+    # for debugging.
     my $orig_line = $line;
     $line_bytes_end -= $self->count_bytes($chomped);
     $line =~ s/^(\s*)//;
@@ -946,11 +946,11 @@
       if ($top_section->{'level'} < $root_level);
   }
 
-  # FIXME return bytes count?
+  # FIXME return bytes count?
   my $result = '';
   my $lines_count = 0;
-  # This is done like that because the tree may not be well formed if
-  # there is a @part after a @chapter for example.
+  # This is done like that because the tree may not be well formed if
+  # there is a @part after a @chapter for example.
   foreach my $top_section (@{$section_root->{'section_childs'}}) {
     my $section = $top_section;
  SECTION:
@@ -1016,7 +1016,7 @@
   return '';
 }
 
-# no error in plaintext
+# no error in plaintext
 sub _error_outside_of_any_node($$)
 {
   my $self = shift;
@@ -1171,9 +1171,9 @@
   }
   my $result = '';
 
-  # First handle empty lines. This has to be done before the handling
-  # of text below to be sure that an empty line is always processed
-  # especially
+  # First handle empty lines. This has to be done before the handling
+  # of text below to be sure that an empty line is always processed
+  # especially
   if ($root->{'type'} and ($root->{'type'} eq 'empty_line' 
                            or $root->{'type'} eq 'after_description_line')) {
     if ($self->{'DEBUG'}) {
@@ -1194,7 +1194,7 @@
     }
   }
 
-  # process text
+  # process text
   if (defined($root->{'text'})) {
     if (!$formatter->{'_top_formatter'}) {
       if ($root->{'type'} and $root->{'type'} eq 'raw') {
@@ -1206,7 +1206,7 @@
                        $self->_process_text($root, $formatter)));
       }
       return $result;
-    # the following is only possible if paragraphindent is set to asis
+    # the following is only possible if paragraphindent is set to asis
     } elsif ($root->{'type'} and $root->{'type'} eq 
'empty_spaces_before_paragraph') {
       $self->_add_text_count($root->{'text'});
       return $root->{'text'};
@@ -1231,8 +1231,8 @@
   if ($root->{'extra'} and $root->{'extra'}->{'index_entry'}
       and !$self->{'multiple_pass'} and !$self->{'in_copying_header'}) {
     my $location = $self->_add_location($root);
-    # remove a 'lines' from $location if at the very end of a node
-    # since it will lead to the next node otherwise.
+    # remove a 'lines' from $location if at the very end of a node
+    # since it will lead to the next node otherwise.
     if ($root->{'cmdname'} and $root->{'cmdname'} =~ /index/) {
       my $following_not_empty;
       my @parents = @{$self->{'current_roots'}};
@@ -1265,9 +1265,9 @@
             if ($self->{'DEBUG'});
         $location->{'lines'}--;
       }
-      # special case for index entry not associated with a node but seen. 
-      # this will be an index entry in @copying, in @insertcopying.
     }
+    # special case for index entry not associated with a node but seen. 
+    # this will be an index entry in @copying, in @insertcopying.
     if (!$root->{'extra'}->{'index_entry'}->{'node'} and $self->{'node'}) {
       $location->{'node'} = $self->{'node'};
     }
@@ -1336,8 +1336,8 @@
       $result .= $self->_count_added($formatter->{'container'},
          $formatter->{'container'}->add_text($accented_text));
       # in case the text added ends with punctuation.  
-      # If the text is empty (likely because of an error) previous 
-      # punctuation will be cancelled, we don't want that.
+      # If the text is empty (likely because of an error) previous 
+      # punctuation will be cancelled, we don't want that.
       $formatter->{'container'}->inhibit_end_sentence()
         if ($accented_text ne '');
       return $result;
@@ -1446,7 +1446,7 @@
           unshift @{$self->{'current_contents'}->[-1]}, 
             {'contents' => $root->{'extra'}->{'brace_command_contents'}->[2]};
         } elsif (defined($root->{'extra'}->{'brace_command_contents'}->[0])) {
-          # no mangling of --- and similar in url.
+          # no mangling of --- and similar in url.
           my $url = {'type' => 'code',
               'contents' => $root->{'extra'}->{'brace_command_contents'}->[0]};
           if (scalar(@{$root->{'extra'}->{'brace_command_contents'}}) == 2
@@ -1505,9 +1505,9 @@
         my @args = @{$root->{'extra'}->{'brace_command_contents'}};
         $args[0] = [{'text' => ''}] if (!defined($args[0]));
 
-        # normalize node name, to get a ref with the right formatting
-        # FIXME as a consequence, the line numbers appearing in case of errors
-        # correspond to the node lines numbers, and not the @ref.
+        # normalize node name, to get a ref with the right formatting
+        # FIXME as a consequence, the line numbers appearing in case of errors
+        # correspond to the node lines numbers, and not the @ref.
         my $node_content;
         if ($root->{'extra'}->{'node_argument'} 
             and $root->{'extra'}->{'node_argument'}->{'normalized'}
@@ -1575,7 +1575,7 @@
           # FIXME this is a bit strange.
           $file = [{'text' => '()'}];
         }
-        # FIXME why define the name if there is a file argument?
+        # FIXME why define the name if there is a file argument?
         if ($file and !$name) {
           @$name = ({'type' => 'code',
                     'contents' => $node_content});
@@ -1596,8 +1596,8 @@
         }
         #unshift @{$self->{'current_contents'}->[-1]}, @contents;
         $result = $self->_convert({'contents' => address@hidden);
-        # we could use $formatter, but in case it was changed in _convert 
-        # we play it safe.
+        # we could use $formatter, but in case it was changed in _convert 
+        # we play it safe.
         my $pending = $result 
             .$self->{'formatters'}->[-1]->{'container'}->get_pending();
         if ($command ne 'pxref') {
@@ -1713,10 +1713,10 @@
              };
         $self->{'format_context'}->[-1]->{'indent_level'}++
            if ($indented_commands{$root->{'cmdname'}});
-        # open a preformatted container, if the command opening the 
-        # preformatted context is not a classical preformatted 
+        # open a preformatted container, if the command opening the 
+        # preformatted context is not a classical preformatted 
         # command (ie if it is menu or verbatim, and not example or  
-        # similar)
+        # similar)
         if ($self->{'preformatted_context_commands'}->{$root->{'cmdname'}}
             and ! $preformatted_commands{$root->{'cmdname'}}) {
           $preformatted = $self->new_formatter('unfilled');
@@ -1820,7 +1820,7 @@
         my $heading = $self->convert_line({'type' => 'frenchspacing',
                          'contents' => $contents});
         pop @{$self->{'count_context'}};
-        # FIXME address@hidden and @c?
+        # FIXME @* and @c?
         my $heading_underlined = 
              Texinfo::Convert::Text::heading ($root, $heading, 
                                               $self->{'NUMBER_SECTIONS'});
@@ -1882,7 +1882,7 @@
                  $root->{'extra'}->{'item_number'}) . '. '));
       } elsif ($root->{'parent'}->{'extra'}->{'block_command_line_contents'}) {
         
-        # FIXME convert_line and no array of contents?
+        # FIXME convert_line and no array of contents?
         $result = $self->_convert(
           {'contents' => 
              
address@hidden>{'parent'}->{'extra'}->{'block_command_line_contents'}->[0]},
@@ -1897,7 +1897,7 @@
       $self->{'text_element_context'}->[-1]->{'counter'} += 
          Texinfo::Convert::Unicode::string_width($result);
       $self->{'empty_lines_count'} = 0 unless ($result eq '');
-    # open a multitable cell
+    # open a multitable cell
     } elsif ($root->{'cmdname'} eq 'headitem' or $root->{'cmdname'} eq 'item'
              or $root->{'cmdname'} eq 'tab') {
       my $cell_width = 
$self->{'format_context'}->[-1]->{'columns_size'}->[$root->{'extra'}->{'cell_number'}-1];
@@ -2028,8 +2028,8 @@
             push @{$self->{'context'}}, 'listoffloats';
             # FIXME should there be some indentation?
             my $tree = {'contents' => $caption->{'args'}->[0]->{'contents'}};
-            # the following does nothing since there are paragraphs within
-            # the shortcaption.
+            # the following does nothing since there are paragraphs within
+            # the shortcaption.
             #if ($caption->{'cmdname'} eq 'shortcaption') {
             #  $tree->{'type'} = 'frenchspacing';
             #}
@@ -2113,10 +2113,10 @@
     #} els
     if ($unknown_command and !($root->{'extra'} 
                                and $root->{'extra'}->{'index_entry'})
-        # commands like def*x are not processed above, since only the def_line
-        # associated is processed. If they have no name and no category they 
-        # are not considered as index entries either so they have a specific
-        # condition
+        # commands like def*x are not processed above, since only the def_line
+        # associated is processed. If they have no name and no category they 
+        # are not considered as index entries either so they have a specific
+        # condition
         and !($def_commands{$root->{'cmdname'}} 
               and $root->{'cmdname'} =~ /x$/)) {
       warn "Unhandled $root->{'cmdname'}\n";
@@ -2124,7 +2124,7 @@
     }
   }
 
-  # open 'type' constructs.
+  # open 'type' constructs.
   my $paragraph;
   if ($root->{'type'}) {
     if ($root->{'type'} eq 'paragraph') {
@@ -2220,9 +2220,9 @@
       foreach my $arg (@{$root->{'args'}}) {
         if ($arg->{'type'} eq 'menu_entry_node') {
           if ($menu_entry_internal_node) {
-            # check that after space collapse the info reader will find the
-            # node.  But always expand what the user provided for the 
-            # menu entry, to keep the user defined spacing.
+            # check that after space collapse the info reader will find the
+            # node.  But always expand what the user provided for the 
+            # menu entry, to keep the user defined spacing.
             my $saved_error_nrs = $self->{'error_nrs'};
             my $saved_error_errors_warnings = $self->{'errors_warnings'};
             $self->{'errors_warnings'} = [];
@@ -2238,8 +2238,8 @@
             $self->{'error_nrs'} = $saved_error_nrs;
             $self->{'errors_warnings'} = $saved_error_errors_warnings;
             # trailing spaces for node in menu are not very predictable.
-            # therefore they are ignored, and they are ignored in both
-            # case, in case there where protected spaces at the end of a node.
+            # therefore they are ignored, and they are ignored in both
+            # case, in case there where protected spaces at the end of a node.
             $internal_node =~ s/\s*$//;
             $menu_node =~ s/\s*$//;
             if ($internal_node ne $menu_node) {
@@ -2270,7 +2270,7 @@
     }
   }
 
-  # The processing of contents is done here.
+  # The processing of contents is done here.
   if ($root->{'contents'}) {
     my @contents = @{$root->{'contents'}};
     push @{$self->{'current_contents'}}, address@hidden;
@@ -2419,7 +2419,7 @@
         = $self->{'empty_lines_count'};
     }
   }
-  # close paragraphs and preformatted
+  # close paragraphs and preformatted
   if ($paragraph) {
     $result .= $self->_count_added($paragraph->{'container'},
                                    $paragraph->{'container'}->end());
@@ -2445,7 +2445,7 @@
     delete $self->{'text_element_context'}->[-1]->{'counter'};
   }
 
-  # close commands
+  # close commands
   if ($root->{'cmdname'}) {
     if ($root->{'cmdname'} eq 'float') {
       if ($self->{'DEBUG'}) {
@@ -2521,11 +2521,11 @@
           $self->{'empty_lines_count'} = 0;
         }
         if ($caption) {
-          # FIXME not sure it is right.
+          # FIXME not sure it is right.
           $self->{'format_context'}->[-1]->{'paragraph_count'} = 0;
           my $tree = $caption->{'args'}->[0];
-          # the frenchspacing is ignored since there are paragraphs within
-          # the shortcaption.
+          # the frenchspacing is ignored since there are paragraphs within
+          # the shortcaption.
           #if ($caption->{'cmdname'} eq 'shortcaption') {
           #  $tree = {'type' => 'frenchspacing',
           #           'contents' => [$caption->{'args'}->[0]]};
@@ -2543,7 +2543,7 @@
     }
 
   
-    # close the contexts and register the cells
+    # close the contexts and register the cells
     if ($self->{'preformatted_context_commands'}->{$root->{'cmdname'}}) {
       my $old_context = pop @{$self->{'context'}};
       die "Not a preformatted context: $old_context"

Index: t/test_utils.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/test_utils.pl,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -b -r1.74 -r1.75
--- t/test_utils.pl     6 Mar 2011 14:43:59 -0000       1.74
+++ t/test_utils.pl     20 Mar 2011 20:29:01 -0000      1.75
@@ -26,6 +26,11 @@
    %result_indices %result_sectioning %result_nodes %result_menus
    %result_floats %result_converted %result_converted_errors);
 
+my $strings_textdomain = 'texi2html_document';
+Locale::Messages->select_package ('gettext_pp');
+# FIXME use texinfo instead of texi2html
+Locale::Messages::bindtextdomain ('texi2html_document', 
'../texi2html/locales');
+
 ok(1);
 
 my %formats = (

Index: t/languages.t
===================================================================
RCS file: t/languages.t
diff -N t/languages.t
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/languages.t       20 Mar 2011 20:29:01 -0000      1.1
@@ -0,0 +1,25 @@
+use strict;
+
+require 't/test_utils.pl';
+
+my @test_cases = (
+['simple',
+'@documentlanguage fr
+
address@hidden Top
+
address@hidden AAA BBB CCC
address@hidden defivar
+'],
+);
+
+foreach my $test (@test_cases) {
+  push @{$test->[2]->{'test_formats'}}, 'plaintext';
+}
+
+our ($arg_test_case, $arg_generate, $arg_debug);
+
+run_all ('languages', address@hidden, $arg_test_case,
+   $arg_generate, $arg_debug);
+
+1;

Index: t/results/languages/simple.pl
===================================================================
RCS file: t/results/languages/simple.pl
diff -N t/results/languages/simple.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/languages/simple.pl       20 Mar 2011 20:29:01 -0000      1.1
@@ -0,0 +1,354 @@
+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);
+
+use utf8;
+
+$result_trees{'simple'} = {
+  'contents' => [
+    {
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => ' ',
+                  'type' => 'empty_spaces_after_command'
+                },
+                {
+                  'parent' => {},
+                  'text' => 'fr'
+                },
+                {
+                  'parent' => {},
+                  'text' => '
+',
+                  'type' => 'spaces_at_end'
+                }
+              ],
+              'parent' => {},
+              'type' => 'misc_line_arg'
+            }
+          ],
+          'cmdname' => 'documentlanguage',
+          'extra' => {
+            'text_arg' => 'fr'
+          },
+          'line_nr' => {
+            'file_name' => '',
+            'line_nr' => 1,
+            'macro' => ''
+          },
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        }
+      ],
+      'parent' => {},
+      'type' => 'text_root'
+    },
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'parent' => {},
+              'text' => 'Top'
+            },
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'spaces_at_end'
+            }
+          ],
+          'parent' => {},
+          'type' => 'misc_line_arg'
+        }
+      ],
+      'cmdname' => 'node',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line'
+        },
+        {
+          'cmdname' => 'defivar',
+          'contents' => [
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => ' ',
+                      'type' => 'empty_spaces_after_command'
+                    },
+                    {
+                      'parent' => {},
+                      'text' => 'AAA BBB CCC
+'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'block_line_arg'
+                }
+              ],
+              'extra' => {
+                'def_args' => [
+                  [
+                    'category',
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {
+                            'contents' => [],
+                            'type' => 'bracketed'
+                          },
+                          'text' => 'Instance Variable'
+                        }
+                      ],
+                      'parent' => undef,
+                      'type' => 'bracketed_def_content'
+                    }
+                  ],
+                  [
+                    'spaces',
+                    {
+                      'text' => ' ',
+                      'type' => 'spaces'
+                    }
+                  ],
+                  [
+                    'class',
+                    {
+                      'text' => 'AAA'
+                    }
+                  ],
+                  [
+                    'spaces',
+                    {
+                      'text' => ' ',
+                      'type' => 'spaces'
+                    }
+                  ],
+                  [
+                    'name',
+                    {
+                      'text' => 'BBB'
+                    }
+                  ],
+                  [
+                    'spaces',
+                    {
+                      'text' => ' ',
+                      'type' => 'spaces'
+                    }
+                  ],
+                  [
+                    'arg',
+                    {
+                      'text' => 'CCC'
+                    }
+                  ]
+                ],
+                'def_command' => 'defivar',
+                'def_parsed_hash' => {
+                  'category' => {},
+                  'class' => {},
+                  'name' => {}
+                },
+                'index_entry' => {
+                  'command' => {},
+                  'content' => [
+                    {},
+                    {},
+                    {
+                      'parent' => {
+                        'contents' => [],
+                        'type' => 'root_line'
+                      },
+                      'text' => ' de '
+                    },
+                    {},
+                    {}
+                  ],
+                  'index_at_command' => 'defivar',
+                  'index_name' => 'vr',
+                  'index_prefix' => 'v',
+                  'node' => {},
+                  'number' => 1
+                },
+                'original_def_cmdname' => 'defivar'
+              },
+              'parent' => {},
+              'type' => 'def_line'
+            },
+            {
+              'args' => [
+                {
+                  'contents' => [
+                    {
+                      'parent' => {},
+                      'text' => ' ',
+                      'type' => 'empty_spaces_after_command'
+                    },
+                    {
+                      'parent' => {},
+                      'text' => 'defivar'
+                    },
+                    {
+                      'parent' => {},
+                      'text' => '
+',
+                      'type' => 'spaces_at_end'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'misc_line_arg'
+                }
+              ],
+              'cmdname' => 'end',
+              'extra' => {
+                'command' => {},
+                'command_argument' => 'defivar',
+                'text_arg' => 'defivar'
+              },
+              'line_nr' => {
+                'file_name' => '',
+                'line_nr' => 6,
+                'macro' => ''
+              },
+              'parent' => {}
+            }
+          ],
+          'extra' => {
+            'end_command' => {}
+          },
+          'line_nr' => {
+            'file_name' => '',
+            'line_nr' => 5,
+            'macro' => ''
+          },
+          'parent' => {}
+        }
+      ],
+      'extra' => {
+        'node_content' => [
+          {}
+        ],
+        'nodes_manuals' => [
+          {
+            'node_content' => [],
+            'normalized' => 'Top'
+          }
+        ],
+        'normalized' => 'Top'
+      },
+      'line_nr' => {
+        'file_name' => '',
+        'line_nr' => 3,
+        'macro' => ''
+      },
+      'parent' => {}
+    }
+  ],
+  'type' => 'document_root'
+};
+$result_trees{'simple'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'simple'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'simple'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'simple'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'simple'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'simple'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'simple'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'simple'}{'contents'}[0]{'contents'}[0];
+$result_trees{'simple'}{'contents'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'simple'}{'contents'}[0];
+$result_trees{'simple'}{'contents'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'simple'}{'contents'}[0];
+$result_trees{'simple'}{'contents'}[0]{'parent'} = $result_trees{'simple'};
+$result_trees{'simple'}{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'} = 
$result_trees{'simple'}{'contents'}[1]{'args'}[0];
+$result_trees{'simple'}{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'} = 
$result_trees{'simple'}{'contents'}[1]{'args'}[0];
+$result_trees{'simple'}{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'} = 
$result_trees{'simple'}{'contents'}[1]{'args'}[0];
+$result_trees{'simple'}{'contents'}[1]{'args'}[0]{'parent'} = 
$result_trees{'simple'}{'contents'}[1];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[0]{'parent'} = 
$result_trees{'simple'}{'contents'}[1];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'args'}[0];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'def_args'}[0][1]{'contents'}[0]{'parent'}{'contents'}
 = 
$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'def_args'}[0][1]{'contents'};
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'def_parsed_hash'}{'category'}
 = 
$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'def_args'}[0][1];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'def_parsed_hash'}{'class'}
 = 
$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'def_args'}[2][1];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'def_parsed_hash'}{'name'}
 = 
$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'def_args'}[4][1];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'index_entry'}{'command'}
 = $result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'index_entry'}{'content'}[0]
 = 
$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'def_args'}[4][1];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'index_entry'}{'content'}[2]{'parent'}{'contents'}
 = 
$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'index_entry'}{'content'};
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'index_entry'}{'content'}[3]
 = 
$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'def_args'}[2][1];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'extra'}{'index_entry'}{'node'}
 = $result_trees{'simple'}{'contents'}[1];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[0]{'parent'} 
= $result_trees{'simple'}{'contents'}[1]{'contents'}[1];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[1]{'parent'}
 = 
$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[2]{'parent'}
 = 
$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'args'}[0]{'parent'}
 = $result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'extra'}{'command'}
 = $result_trees{'simple'}{'contents'}[1]{'contents'}[1];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'parent'} 
= $result_trees{'simple'}{'contents'}[1]{'contents'}[1];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'extra'}{'end_command'} 
= $result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'simple'}{'contents'}[1]{'contents'}[1]{'parent'} = 
$result_trees{'simple'}{'contents'}[1];
+$result_trees{'simple'}{'contents'}[1]{'extra'}{'node_content'}[0] = 
$result_trees{'simple'}{'contents'}[1]{'args'}[0]{'contents'}[1];
+$result_trees{'simple'}{'contents'}[1]{'extra'}{'nodes_manuals'}[0]{'node_content'}
 = $result_trees{'simple'}{'contents'}[1]{'extra'}{'node_content'};
+$result_trees{'simple'}{'contents'}[1]{'parent'} = $result_trees{'simple'};
+
+$result_texis{'simple'} = '@documentlanguage fr
+
address@hidden Top
+
address@hidden AAA BBB CCC
address@hidden defivar
+';
+
+
+$result_texts{'simple'} = '
+
+AAA BBB CCC
+';
+
+$result_sectioning{'simple'} = {};
+
+$result_nodes{'simple'} = {
+  'cmdname' => 'node',
+  'extra' => {
+    'normalized' => 'Top'
+  },
+  'node_up' => {
+    'extra' => {
+      'manual_content' => [
+        {
+          'text' => 'dir'
+        }
+      ]
+    }
+  }
+};
+
+$result_menus{'simple'} = {
+  'cmdname' => 'node',
+  'extra' => {
+    'normalized' => 'Top'
+  }
+};
+
+$result_errors{'simple'} = [];
+
+
+
+$result_converted{'plaintext'}->{'simple'} = ' -- Instance Variable de AAA: 
BBB CCC
+';
+
+1;



reply via email to

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