texinfo-commits
[Top][All Lists]
Advanced

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

texinfo/tp Texinfo/Convert/Plaintext.pm t/05par...


From: Patrice Dumas
Subject: texinfo/tp Texinfo/Convert/Plaintext.pm t/05par...
Date: Tue, 23 Nov 2010 22:07:41 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        10/11/23 22:07:41

Modified files:
        tp/Texinfo/Convert: Plaintext.pm 
        tp/t           : 05paragraph.t 
Added files:
        tp/t/results/paragraph: paragraph_indent_asis.pl 

Log message:
        Handle @firstparagraphindent asis.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Plaintext.pm?cvsroot=texinfo&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/05paragraph.t?cvsroot=texinfo&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/paragraph/paragraph_indent_asis.pl?cvsroot=texinfo&rev=1.1

Patches:
Index: Texinfo/Convert/Plaintext.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Plaintext.pm,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- Texinfo/Convert/Plaintext.pm        23 Nov 2010 19:46:37 -0000      1.19
+++ Texinfo/Convert/Plaintext.pm        23 Nov 2010 22:07:40 -0000      1.20
@@ -267,6 +267,7 @@
                                    }];
   $converter->{'formatters'} = [$converter->new_formatter('line')];
   $converter->{'formatters'}->[-1]->{'_top_formatter'} = 1;
+  %{$converter->{'ignored_types'}} = %ignored_types;
   return $converter;
 }
 
@@ -487,7 +488,7 @@
   # NUMBER_FOOTNOTES SPLIT_SIZE IN_ENCODING FILLCOLUMN ENABLE_ENCODING
   # OUT_ENCODING ENCODING_NAME
 
-  if (($root->{'type'} and $ignored_types{$root->{'type'}})
+  if (($root->{'type'} and $self->{'ignored_types'}->{$root->{'type'}})
        or ($root->{'cmdname'} and $ignored_commands{$root->{'cmdname'}})) {
     print STDERR "IGNORED\n" if ($self->{'debug'});
     return '';
@@ -503,6 +504,8 @@
     if (!$formatter->{'_top_formatter'}) {
       $result .= $formatter->{'container'}->add_text(
                       $self->process_text($root, $formatter));
+    } elsif ($root->{'type'} and $root->{'type'} eq 
'empty_spaces_before_paragraph') {
+      $result .= $root->{'text'};
     # ignore text outside of any format, but warn if ignored text not empty
     } elsif ($root->{'text'} =~ /\S/) {
       warn "BUG: ignored text not empty `$root->{'text'}'\n";
@@ -839,8 +842,18 @@
           $self->{$root->{'cmdname'}} = 1;
         } elsif ($root->{'extra'} and $root->{'extra'}->{'misc_args'} 
                  and exists($root->{'extra'}->{'misc_args'}->[0])) {
-          $self->{$root->{'cmdname'}} = $root->{'extra'}->{'misc_args'}->[0]
-              if (!$self->{'set'}->{$root->{'cmdname'}});
+          if (!$self->{'set'}->{$root->{'cmdname'}}) {
+            $self->{$root->{'cmdname'}} = $root->{'extra'}->{'misc_args'}->[0];
+            if ($root->{'cmdname'} eq 'paragraphindent') {
+              if ($root->{'extra'}->{'misc_args'}->[0] eq 'asis') {
+                delete 
$self->{'ignored_types'}->{'empty_spaces_before_paragraph'};
+              } else {
+                $self->{$root->{'cmdname'}} = 0 
+                  if ($root->{'extra'}->{'misc_args'}->[0] eq 'none');
+                $self->{'ignored_types'}->{'empty_spaces_before_paragraph'} = 
1;
+              }
+            }
+          }
         }
         return '';
       }
@@ -874,15 +887,8 @@
   if ($root->{'type'}) {
     if ($root->{'type'} eq 'paragraph') {
       $self->{'empty_lines_count'} = 0;
-      # FIXME indenting.  First and not first paragraph.
-      # FIXME also beware of 'asis'! The space before has to be kept then.
-      #       it should be just before the paragraph. 
-      #       Maybe just handle empty_spaces_before_paragraph instead of
-      #       ignoring it?
-      # my $paragraphindent = get_conf('paragraphindent');
-      # $paragraphindent = 0 if ($paragraphindent eq 'none');
-      # if ($paragraphindent ne 'asis' and $paragraphindent and 
$line_char_counter == 0 and (defined($content->{'paragraph_in_element_nr'})) 
and ($info_state->{'indent_para'} or (!defined($info_state->{'indent_para'}) 
and ($content->{'paragraph_in_element_nr'} or (get_conf('firstparagraphindent') 
eq 'insert')))))
       my $conf;
+      # indent. Not first paragraph.
       if ($self->{'format_context'}->[-1]->{'cmdname'} eq '_top_format'
           and ($self->{'format_context'}->[-1]->{'paragraph_count'} 
               or $self->{'firstparagraphindent'} eq 'insert') 

Index: t/05paragraph.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/05paragraph.t,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- t/05paragraph.t     23 Nov 2010 19:46:37 -0000      1.9
+++ t/05paragraph.t     23 Nov 2010 22:07:40 -0000      1.10
@@ -30,7 +30,18 @@
 p before sp
 @sp 4
 inew p after sp'
-]);
+],
+['paragraph_indent_asis',
+'@paragraphindent asis
+
+  para
+  fff
+
address@hidden
+  in quotation
address@hidden quotation
+
+']);
 
 my @test_invalid = (
 ['paragraph_in_style_command',

Index: t/results/paragraph/paragraph_indent_asis.pl
===================================================================
RCS file: t/results/paragraph/paragraph_indent_asis.pl
diff -N t/results/paragraph/paragraph_indent_asis.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/paragraph/paragraph_indent_asis.pl        23 Nov 2010 22:07:40 
-0000      1.1
@@ -0,0 +1,170 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors 
+   %result_indices %result_sectioning %result_nodes %result_menus
+   %result_floats %result_converted);
+
+$result_trees{'paragraph_indent_asis'} = {
+  'contents' => [
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => ' ',
+              'type' => 'empty_spaces_after_command'
+            },
+            {
+              'parent' => {},
+              'text' => 'asis'
+            },
+            {
+              'parent' => {},
+              'text' => '
+',
+              'type' => 'spaces_at_end'
+            }
+          ],
+          'parent' => {},
+          'type' => 'misc_line_arg'
+        }
+      ],
+      'cmdname' => 'paragraphindent',
+      'extra' => {
+        'misc_args' => [
+          'asis'
+        ]
+      },
+      'line_nr' => {
+        'file_name' => '',
+        'line_nr' => 1,
+        'macro' => ''
+      },
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'parent' => {},
+      'text' => '  ',
+      'type' => 'empty_spaces_before_paragraph'
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'para
+'
+        },
+        {
+          'parent' => {},
+          'text' => '  fff
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'quotation',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'parent' => {},
+          'text' => '  ',
+          'type' => 'empty_spaces_before_paragraph'
+        },
+        {
+          'contents' => [
+            {
+              'parent' => {},
+              'text' => 'in quotation
+'
+            }
+          ],
+          'parent' => {},
+          'type' => 'paragraph'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'paragraph_indent_asis'}{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'paragraph_indent_asis'}{'contents'}[0]{'args'}[0];
+$result_trees{'paragraph_indent_asis'}{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'paragraph_indent_asis'}{'contents'}[0]{'args'}[0];
+$result_trees{'paragraph_indent_asis'}{'contents'}[0]{'args'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'paragraph_indent_asis'}{'contents'}[0]{'args'}[0];
+$result_trees{'paragraph_indent_asis'}{'contents'}[0]{'args'}[0]{'parent'} = 
$result_trees{'paragraph_indent_asis'}{'contents'}[0];
+$result_trees{'paragraph_indent_asis'}{'contents'}[0]{'parent'} = 
$result_trees{'paragraph_indent_asis'};
+$result_trees{'paragraph_indent_asis'}{'contents'}[1]{'parent'} = 
$result_trees{'paragraph_indent_asis'};
+$result_trees{'paragraph_indent_asis'}{'contents'}[2]{'parent'} = 
$result_trees{'paragraph_indent_asis'};
+$result_trees{'paragraph_indent_asis'}{'contents'}[3]{'contents'}[0]{'parent'} 
= $result_trees{'paragraph_indent_asis'}{'contents'}[3];
+$result_trees{'paragraph_indent_asis'}{'contents'}[3]{'contents'}[1]{'parent'} 
= $result_trees{'paragraph_indent_asis'}{'contents'}[3];
+$result_trees{'paragraph_indent_asis'}{'contents'}[3]{'parent'} = 
$result_trees{'paragraph_indent_asis'};
+$result_trees{'paragraph_indent_asis'}{'contents'}[4]{'parent'} = 
$result_trees{'paragraph_indent_asis'};
+$result_trees{'paragraph_indent_asis'}{'contents'}[5]{'contents'}[0]{'parent'} 
= $result_trees{'paragraph_indent_asis'}{'contents'}[5];
+$result_trees{'paragraph_indent_asis'}{'contents'}[5]{'contents'}[1]{'parent'} 
= $result_trees{'paragraph_indent_asis'}{'contents'}[5];
+$result_trees{'paragraph_indent_asis'}{'contents'}[5]{'contents'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'paragraph_indent_asis'}{'contents'}[5]{'contents'}[2];
+$result_trees{'paragraph_indent_asis'}{'contents'}[5]{'contents'}[2]{'parent'} 
= $result_trees{'paragraph_indent_asis'}{'contents'}[5];
+$result_trees{'paragraph_indent_asis'}{'contents'}[5]{'parent'} = 
$result_trees{'paragraph_indent_asis'};
+$result_trees{'paragraph_indent_asis'}{'contents'}[6]{'parent'} = 
$result_trees{'paragraph_indent_asis'};
+$result_trees{'paragraph_indent_asis'}{'contents'}[7]{'parent'} = 
$result_trees{'paragraph_indent_asis'};
+
+$result_texis{'paragraph_indent_asis'} = '@paragraphindent asis
+
+  para
+  fff
+
address@hidden
+  in quotation
address@hidden quotation
+
+';
+
+
+$result_texts{'paragraph_indent_asis'} = '
+para
+  fff
+
+in quotation
+
+';
+
+$result_errors{'paragraph_indent_asis'} = [];
+
+
+
+$result_converted{'plaintext'}->{'paragraph_indent_asis'} = '
+  para fff
+
+       in quotation
+
+';
+
+1;



reply via email to

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