texinfo-commits
[Top][All Lists]
Advanced

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

texinfo/tp Texinfo/Convert/Converter.pm Texinfo...


From: Patrice Dumas
Subject: texinfo/tp Texinfo/Convert/Converter.pm Texinfo...
Date: Wed, 01 Jun 2011 21:30:13 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        11/06/01 21:30:12

Modified files:
        tp/Texinfo/Convert: Converter.pm HTML.pm 
        tp/t           : accents.t 

Log message:
        Handle better numeric entities.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Converter.pm?cvsroot=texinfo&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/HTML.pm?cvsroot=texinfo&r1=1.72&r2=1.73
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/accents.t?cvsroot=texinfo&r1=1.10&r2=1.11

Patches:
Index: Texinfo/Convert/Converter.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Converter.pm,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- Texinfo/Convert/Converter.pm        28 May 2011 23:27:39 -0000      1.17
+++ Texinfo/Convert/Converter.pm        1 Jun 2011 21:30:10 -0000       1.18
@@ -608,10 +608,10 @@
         and defined($xml_accent_text_with_entities{$accent}) 
         and ($text =~ /^[$xml_accent_text_with_entities{$accent}]$/));
   if ($use_numeric_entities
-      and exists($Texinfo::Convert::unicode_accented_letters{$accent}) 
-      and 
exists($Texinfo::Convert::unicode_accented_letters{$accent}->{$text})) {
+      and 
exists($Texinfo::Convert::Unicode::unicode_accented_letters{$accent}) 
+      and 
exists($Texinfo::Convert::Unicode::unicode_accented_letters{$accent}->{$text})) 
{
     return '&#' . 
-      hex($Texinfo::Convert::unicode_accented_letters{$accent}->{$text}). ';';
+      
hex($Texinfo::Convert::Unicode::unicode_accented_letters{$accent}->{$text}). 
';';
   }
   return $text . '&lt;' if ($accent eq 'v');
   return Texinfo::Convert::Text::ascii_accent($text, $command);

Index: Texinfo/Convert/HTML.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/HTML.pm,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -b -r1.72 -r1.73
--- Texinfo/Convert/HTML.pm     31 May 2011 23:55:20 -0000      1.72
+++ Texinfo/Convert/HTML.pm     1 Jun 2011 21:30:10 -0000       1.73
@@ -770,6 +770,7 @@
   'TOP_NODE_FILE_TARGET' => 'index',
   'TRANSLITERATE_FILE_NAMES' => 1,
   'USE_LINKS'            => 1,
+  'USE_NUMERIC_ENTITY'   => 1,
   'DATE_IN_HEADER'       => 0,
   'AVOID_MENU_REDUNDANCY' => 0,
   'HEADERS'              => 1,

Index: t/accents.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/accents.t,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- t/accents.t 22 Mar 2011 19:34:55 -0000      1.10
+++ t/accents.t 1 Jun 2011 21:30:11 -0000       1.11
@@ -1,12 +1,14 @@
 use strict;
 
 use Test::More;
-BEGIN { plan tests => 23 };
+BEGIN { plan tests => 50 };
 
 use lib '../texi2html/lib/Unicode-EastAsianWidth/lib/';
 use lib '../texi2html/lib/libintl-perl/lib/';
 use lib '../texi2html/lib/Text-Unidecode/lib/';
 use Texinfo::Convert::Text;
+use Texinfo::Convert::Converter;
+use Texinfo::Convert::HTML;
 use Texinfo::Parser;
 
 ok(1, "modules loading");
@@ -47,11 +49,21 @@
   my $texi = $test->[0];
   my $name = $test->[1]; 
   my $reference = $test->[2]; 
+  my $reference_xml = $test->[3];
+  my $reference_xml_entity = $test->[4];
   my $parser = Texinfo::Parser::parser({'context' => 'preformatted'});
-  my $tree = $parser->parse_texi_text($texi);
+  my $text_root = $parser->parse_texi_text($texi);
+  my $tree = $text_root->{'contents'}->[0];
   my $result = 
-       Texinfo::Convert::Text::eight_bit_accents($tree->{'contents'}->[0], 
+       Texinfo::Convert::Text::eight_bit_accents($tree, 
     'iso-8859-1', \&Texinfo::Convert::Text::ascii_accent);
+  my $html_converter = Texinfo::Convert::HTML->converter();
+  $html_converter->{'conf'}->{'USE_NUMERIC_ENTITY'} = 0;
+  my $result_xml = Texinfo::Convert::Converter::xml_accents($html_converter, 
+                                                            $tree);
+  $html_converter->{'conf'}->{'USE_NUMERIC_ENTITY'} = 1;
+  my $result_xml_entity 
+      = Texinfo::Convert::Converter::xml_accents($html_converter, $tree);
   if (defined($reference)) {
     #ok (Encode::decode('iso-8859-1', $reference) eq $result, $name);
     #ok ($reference eq Encode::encode('iso-8859-1', $result), $name);
@@ -65,22 +77,42 @@
     print STDERR "$name ($ord)--> utf8: ".Encode::encode('utf8', $result).
         " latin1: ".Encode::encode('iso-8859-1', $result)."\n";
   }
+  if (defined($reference_xml)) {
+    is ($result_xml, $reference_xml, "$name xml");
+  } else {
+    print STDERR "$name xml: $result_xml\n";
+    #print STDERR "<p>$texi $name xml: $result_xml\n</p>";
+  }
+  if (defined($reference_xml_entity)) {
+    is ($result_xml_entity, $reference_xml_entity, "$name xml");
+  } else {
+    print STDERR "$name xml entity: $result_xml_entity\n";
+    #print STDERR "<p>$texi $name xml entity: $result_xml_entity\n</p>";
+  }
 }
 
 # some come from encodings/weird_accents.texi
 foreach my $test (
-        ['@~e',                   'no 8bit encoding',    "e~"],
-        ['@~n',                   'simple encoding',     chr(241)],
-        ['@~{n}' ,                'brace encoding',      chr(241)],
-        ['@address@hidden',       'dotless',             chr(238)],
-        ['@address@hidden',       'no 8bit dotless',     'i~'],
-        ['@address@hidden@dotless{i}}}',   'no 8 cplx dotless',   'i~='],
-        ['@address@hidden@dotless{i}}}',   'complex dotless',     
chr(238).'='],
-        ['@={@,address@hidden',         'complex encoding',    chr(241).',='],
-        ['@udotaccent{r}',        'udotaccent',          '.r'],
-        ['@address@hidden',    'complex ubaraccent',  'a_='],
-        ['@address@hidden@`r}}',  'complex udotaccent',  '.r`^' ],
-        ['@address@hidden@\'address@hidden', 'command in accent',   '=']
+  ['@~e',                   'no 8bit encoding',    "e~", 'e~', '&#7869;'],
+  ['@~n',                   'simple encoding',     chr(241), 
+                                                   '&ntilde;', '&ntilde;'],
+  ['@~{n}' ,                'brace encoding',      chr(241), 
+                                                   '&ntilde;', '&ntilde;'],
+  ['@address@hidden',       'dotless',             chr(238), '&icirc;', 
+                                                             '&icirc;'],
+  ['@address@hidden',       'no 8bit dotless',     'i~', 'i~', '&#297;'],
+  ['@address@hidden@dotless{i}}}',   'no 8 cplx dotless',   'i~=', 'i~=', 
+                                                          '&#297;='],
+  ['@address@hidden@dotless{i}}}',   'complex dotless',     chr(238).'=', 
+                                                   '&icirc;=', '&icirc;='],
+  ['@={@,address@hidden',         'complex encoding',    chr(241).',=', 
'&ntilde;,=',
+                                                                  
'&ntilde;,='],
+  ['@udotaccent{r}',        'udotaccent',          '.r', '.r', '&#7771;'],
+  ['@address@hidden',    'complex ubaraccent',  'a_=', 'a_=', 'a_='],
+  ['@address@hidden@`r}}',  'complex udotaccent',  '.r`^', '.r`^', '.r`^'],
+  ['@address@hidden'{r}}',            'utf8 possible inside', 'r\'<', 
'r\'&lt;', 
+                                                    '&#341;&lt;'],
+  ['@address@hidden@\'address@hidden', 'command in accent',   '=', '=', '=']
                  ) {
   test_enable_encoding($test);
 }



reply via email to

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