[Top][All Lists]
[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 . '<' 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~', 'ẽ'],
+ ['@~n', 'simple encoding', chr(241),
+ 'ñ', 'ñ'],
+ ['@~{n}' , 'brace encoding', chr(241),
+ 'ñ', 'ñ'],
+ ['@address@hidden', 'dotless', chr(238), 'î',
+ 'î'],
+ ['@address@hidden', 'no 8bit dotless', 'i~', 'i~', 'ĩ'],
+ ['@address@hidden@dotless{i}}}', 'no 8 cplx dotless', 'i~=', 'i~=',
+ 'ĩ='],
+ ['@address@hidden@dotless{i}}}', 'complex dotless', chr(238).'=',
+ 'î=', 'î='],
+ ['@={@,address@hidden', 'complex encoding', chr(241).',=',
'ñ,=',
+
'ñ,='],
+ ['@udotaccent{r}', 'udotaccent', '.r', '.r', 'ṛ'],
+ ['@address@hidden', 'complex ubaraccent', 'a_=', 'a_=', 'a_='],
+ ['@address@hidden@`r}}', 'complex udotaccent', '.r`^', '.r`^', '.r`^'],
+ ['@address@hidden'{r}}', 'utf8 possible inside', 'r\'<',
'r\'<',
+ 'ŕ<'],
+ ['@address@hidden@\'address@hidden', 'command in accent', '=', '=', '=']
) {
test_enable_encoding($test);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- texinfo/tp Texinfo/Convert/Converter.pm Texinfo...,
Patrice Dumas <=