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/plain...


From: Patrice Dumas
Subject: texinfo/tp Texinfo/Convert/Plaintext.pm t/plain...
Date: Tue, 01 Mar 2011 21:44:54 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        11/03/01 21:44:54

Modified files:
        tp/Texinfo/Convert: Plaintext.pm 
        tp/t           : plaintext_tests.t 
Added files:
        tp/t/results/plaintext_tests: accent_command_punctuation.pl 
                                      commands_and_punctuation.pl 

Log message:
        Handle better punctuation and commands.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Plaintext.pm?cvsroot=texinfo&r1=1.103&r2=1.104
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/plaintext_tests.t?cvsroot=texinfo&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/plaintext_tests/accent_command_punctuation.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/plaintext_tests/commands_and_punctuation.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.103
retrieving revision 1.104
diff -u -b -r1.103 -r1.104
--- Texinfo/Convert/Plaintext.pm        1 Mar 2011 00:16:34 -0000       1.103
+++ Texinfo/Convert/Plaintext.pm        1 Mar 2011 21:44:53 -0000       1.104
@@ -177,6 +177,11 @@
   $code_style_commands{$command} = 1;
 }
 
+my %punctuation_no_arg_commands;
+foreach my $punctuation_command('enddots', 'exclamdown', 'questiondown') {
+  $punctuation_no_arg_commands{$punctuation_command} = 1;
+}
+
 my %upper_case_commands = (
  'sc' => 1,
  'var' => 1
@@ -1289,7 +1294,7 @@
     } elsif (defined($text_brace_no_arg_commands{$root->{'cmdname'}})) {
       my $text = Texinfo::Convert::Text::brace_no_arg_command($root, 
                                                     $self->{'encoding'});
-      if ($command eq 'enddots') {
+      if ($punctuation_no_arg_commands{$command}) {
         $result .= $self->_count_added($formatter->{'container'},
                     $formatter->{'container'}->add_next($text, undef, 1));
       } elsif ($command eq 'tie') {
@@ -1316,6 +1321,8 @@
       $result .= $self->_count_added($formatter->{'container'},
          $formatter->{'container'}->add_text(
           Texinfo::Convert::Text::text_accents($root, $self->{'encoding'})));
+      # in case the text added ends with punctuation
+      $formatter->{'container'}->inhibit_end_sentence();
       return $result;
     } elsif ($style_map{$command} 
          or ($root->{'type'} and $root->{'type'} eq 'definfoenclose_command')) 
{

Index: t/plaintext_tests.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/plaintext_tests.t,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- t/plaintext_tests.t 26 Feb 2011 11:16:56 -0000      1.9
+++ t/plaintext_tests.t 1 Mar 2011 21:44:54 -0000       1.10
@@ -36,6 +36,10 @@
 10AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
BBBBB
 11AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
BBBBB
 '],
+['commands_and_punctuation',
+'address@hidden   and now inhibit.@: Now dots @dots{} and enddots @enddots{} 
and'],
+['accent_command_punctuation',
+'@dotaccent{e} after'],
 ['empty_line_in_example_end',
 '@example
 in example

Index: t/results/plaintext_tests/accent_command_punctuation.pl
===================================================================
RCS file: t/results/plaintext_tests/accent_command_punctuation.pl
diff -N t/results/plaintext_tests/accent_command_punctuation.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/plaintext_tests/accent_command_punctuation.pl     1 Mar 2011 
21:44:54 -0000       1.1
@@ -0,0 +1,60 @@
+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{'accent_command_punctuation'} = {
+  'contents' => [
+    {
+      'contents' => [
+        {
+          'args' => [
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'e'
+                }
+              ],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'dotaccent',
+          'contents' => [],
+          'line_nr' => {
+            'file_name' => '',
+            'line_nr' => 1,
+            'macro' => ''
+          },
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => ' after'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'accent_command_punctuation'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
 = 
$result_trees{'accent_command_punctuation'}{'contents'}[0]{'contents'}[0]{'args'}[0];
+$result_trees{'accent_command_punctuation'}{'contents'}[0]{'contents'}[0]{'args'}[0]{'parent'}
 = $result_trees{'accent_command_punctuation'}{'contents'}[0]{'contents'}[0];
+$result_trees{'accent_command_punctuation'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'accent_command_punctuation'}{'contents'}[0];
+$result_trees{'accent_command_punctuation'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'accent_command_punctuation'}{'contents'}[0];
+$result_trees{'accent_command_punctuation'}{'contents'}[0]{'parent'} = 
$result_trees{'accent_command_punctuation'};
+
+$result_texis{'accent_command_punctuation'} = '@dotaccent{e} after';
+
+
+$result_texts{'accent_command_punctuation'} = 'e. after';
+
+$result_errors{'accent_command_punctuation'} = [];
+
+
+
+$result_converted{'plaintext'}->{'accent_command_punctuation'} = 'e. after
+';
+
+1;

Index: t/results/plaintext_tests/commands_and_punctuation.pl
===================================================================
RCS file: t/results/plaintext_tests/commands_and_punctuation.pl
diff -N t/results/plaintext_tests/commands_and_punctuation.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/plaintext_tests/commands_and_punctuation.pl       1 Mar 2011 
21:44:54 -0000       1.1
@@ -0,0 +1,93 @@
+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_and_punctuation'} = {
+  'contents' => [
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'SomthingA'
+        },
+        {
+          'cmdname' => '.',
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => '   and now inhibit.'
+        },
+        {
+          'cmdname' => ':',
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => ' Now dots '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'dots',
+          'contents' => [],
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => ' and enddots '
+        },
+        {
+          'args' => [
+            {
+              'contents' => [],
+              'parent' => {},
+              'type' => 'brace_command_arg'
+            }
+          ],
+          'cmdname' => 'enddots',
+          'contents' => [],
+          'parent' => {}
+        },
+        {
+          'parent' => {},
+          'text' => ' and'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    }
+  ],
+  'type' => 'text_root'
+};
+$result_trees{'commands_and_punctuation'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'commands_and_punctuation'}{'contents'}[0];
+$result_trees{'commands_and_punctuation'}{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'commands_and_punctuation'}{'contents'}[0];
+$result_trees{'commands_and_punctuation'}{'contents'}[0]{'contents'}[2]{'parent'}
 = $result_trees{'commands_and_punctuation'}{'contents'}[0];
+$result_trees{'commands_and_punctuation'}{'contents'}[0]{'contents'}[3]{'parent'}
 = $result_trees{'commands_and_punctuation'}{'contents'}[0];
+$result_trees{'commands_and_punctuation'}{'contents'}[0]{'contents'}[4]{'parent'}
 = $result_trees{'commands_and_punctuation'}{'contents'}[0];
+$result_trees{'commands_and_punctuation'}{'contents'}[0]{'contents'}[5]{'args'}[0]{'parent'}
 = $result_trees{'commands_and_punctuation'}{'contents'}[0]{'contents'}[5];
+$result_trees{'commands_and_punctuation'}{'contents'}[0]{'contents'}[5]{'parent'}
 = $result_trees{'commands_and_punctuation'}{'contents'}[0];
+$result_trees{'commands_and_punctuation'}{'contents'}[0]{'contents'}[6]{'parent'}
 = $result_trees{'commands_and_punctuation'}{'contents'}[0];
+$result_trees{'commands_and_punctuation'}{'contents'}[0]{'contents'}[7]{'args'}[0]{'parent'}
 = $result_trees{'commands_and_punctuation'}{'contents'}[0]{'contents'}[7];
+$result_trees{'commands_and_punctuation'}{'contents'}[0]{'contents'}[7]{'parent'}
 = $result_trees{'commands_and_punctuation'}{'contents'}[0];
+$result_trees{'commands_and_punctuation'}{'contents'}[0]{'contents'}[8]{'parent'}
 = $result_trees{'commands_and_punctuation'}{'contents'}[0];
+$result_trees{'commands_and_punctuation'}{'contents'}[0]{'parent'} = 
$result_trees{'commands_and_punctuation'};
+
+$result_texis{'commands_and_punctuation'} = 'address@hidden   and now 
inhibit.@: Now dots @dots{} and enddots @enddots{} and';
+
+
+$result_texts{'commands_and_punctuation'} = 'SomthingA.   and now inhibit. Now 
dots ... and enddots ... and';
+
+$result_errors{'commands_and_punctuation'} = [];
+
+
+
+$result_converted{'plaintext'}->{'commands_and_punctuation'} = 'SomthingA.  
and now inhibit. Now dots ... and enddots ...  and
+';
+
+1;



reply via email to

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