texinfo-commits
[Top][All Lists]
Advanced

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

texinfo/tp MANIFEST Makefile.am Texinfo/Common....


From: Patrice Dumas
Subject: texinfo/tp MANIFEST Makefile.am Texinfo/Common....
Date: Thu, 29 Sep 2011 08:18:14 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        11/09/29 08:18:14

Modified files:
        tp             : MANIFEST Makefile.am 
        tp/Texinfo     : Common.pm Parser.pm 
        tp/Texinfo/Convert: Converter.pm HTML.pm Text.pm Unicode.pm 
Added files:
        tp/Texinfo     : Encoding.pm 

Log message:
        Put encoding definition and aliases in Texinfo/Encoding.pm.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/MANIFEST?cvsroot=texinfo&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Makefile.am?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Common.pm?cvsroot=texinfo&r1=1.64&r2=1.65
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Parser.pm?cvsroot=texinfo&r1=1.307&r2=1.308
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Encoding.pm?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Converter.pm?cvsroot=texinfo&r1=1.40&r2=1.41
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/HTML.pm?cvsroot=texinfo&r1=1.153&r2=1.154
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Text.pm?cvsroot=texinfo&r1=1.58&r2=1.59
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Unicode.pm?cvsroot=texinfo&r1=1.15&r2=1.16

Patches:
Index: MANIFEST
===================================================================
RCS file: /sources/texinfo/texinfo/tp/MANIFEST,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- MANIFEST    25 Sep 2011 22:07:12 -0000      1.7
+++ MANIFEST    29 Sep 2011 08:18:13 -0000      1.8
@@ -9,6 +9,7 @@
 Texinfo/Parser.pm
 Texinfo/Report.pm
 Texinfo/Common.pm
+Texinfo/Encoding.pm
 Texinfo/Structuring.pm
 Texinfo/Documentlanguages.pm
 Texinfo/Convert/Texinfo.pm

Index: Makefile.am
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Makefile.am,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- Makefile.am 25 Sep 2011 22:07:13 -0000      1.2
+++ Makefile.am 29 Sep 2011 08:18:13 -0000      1.3
@@ -32,6 +32,7 @@
  Texinfo/Parser.pm \
  Texinfo/Report.pm \
  Texinfo/Common.pm \
+ Texinfo/Encoding.pm \
  Texinfo/Structuring.pm \
  Texinfo/Documentlanguages.pm
 

Index: Texinfo/Common.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Common.pm,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -b -r1.64 -r1.65
--- Texinfo/Common.pm   28 Sep 2011 23:02:56 -0000      1.64
+++ Texinfo/Common.pm   29 Sep 2011 08:18:13 -0000      1.65
@@ -29,8 +29,6 @@
 use Config;
 use File::Spec;
 
-use Encode;
-
 use Texinfo::Documentlanguages;
 
 require Exporter;
@@ -680,40 +678,6 @@
 
 $root_commands{'node'} = 1;
 
-
-
-# charset related definitions.
-
-our %perl_charset_to_html = (
-              'utf8'       => 'utf-8',
-              'utf-8-strict'       => 'utf-8',
-              'ascii'      => 'us-ascii',
-              'shiftjis'      => 'shift_jis',
-);
-
-# encoding name normalization to html-compatible encoding names
-our %encoding_aliases = (
-              'latin1' => 'iso-8859-1',
-);
-
-foreach my $perl_charset (keys(%perl_charset_to_html)) {
-   $encoding_aliases{$perl_charset} = $perl_charset_to_html{$perl_charset};
-   $encoding_aliases{$perl_charset_to_html{$perl_charset}}
-        = $perl_charset_to_html{$perl_charset};
-}
-our %eight_bit_encoding_aliases = (
-  "iso-8859-1",  'iso8859_1',
-  "iso-8859-2",  'iso8859_2',
-  "iso-8859-15", 'iso8859_15',
-  "koi8-r",      'koi8',
-  "koi8-u",      'koi8',
-);
-
-foreach my $encoding (keys(%eight_bit_encoding_aliases)) {
-  $encoding_aliases{$encoding} = $encoding;
-  $encoding_aliases{$eight_bit_encoding_aliases{$encoding}} = $encoding;
-}
-
 our @MONTH_NAMES =
     (
      'January', 'February', 'March', 'April', 'May',
@@ -796,27 +760,6 @@
   return @messages;
 }
 
-our %canonical_texinfo_encodings;
-# These are the encodings from the texinfo manual
-foreach my $canonical_encoding('us-ascii', 'utf-8', 'iso-8859-1',
-  'iso-8859-15','iso-8859-2','koi8-r', 'koi8-u') {
-  $canonical_texinfo_encodings{$canonical_encoding} = 1;
-}
-
-sub encoding_alias ($)
-{
-  my $encoding = shift;
-  my $canonical_texinfo_encoding;
-  $canonical_texinfo_encoding 
-    = $encoding if ($canonical_texinfo_encodings{lc($encoding)});
-  my $perl_encoding = Encode::resolve_alias($encoding);
-  my $canonical_output_encoding;
-  if ($perl_encoding) {
-    $canonical_output_encoding = $encoding_aliases{$perl_encoding};
-  }
-  return ($canonical_texinfo_encoding, $perl_encoding, 
$canonical_output_encoding);
-}
-
 # This should do the job, or at least don't do wrong if $self
 # is not defined, as could be the case if called from 
 # Texinfo::Convert::Text.

Index: Texinfo/Parser.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Parser.pm,v
retrieving revision 1.307
retrieving revision 1.308
diff -u -b -r1.307 -r1.308
--- Texinfo/Parser.pm   28 Sep 2011 21:44:21 -0000      1.307
+++ Texinfo/Parser.pm   29 Sep 2011 08:18:14 -0000      1.308
@@ -45,6 +45,8 @@
 use Texinfo::Common;
 # Error reporting and counting, translation of strings.
 use Texinfo::Report;
+# encoding_alias
+use Texinfo::Encoding;
 
 # to expand file names in @include and similar @-commands
 use Texinfo::Convert::Text;
@@ -2710,10 +2712,10 @@
           }
         } elsif ($command eq 'documentencoding') {
           my ($texinfo_encoding, $perl_encoding, $output_encoding)
-            = Texinfo::Common::encoding_alias($text);
+            = Texinfo::Encoding::encoding_alias($text);
           $self->line_warn (sprintf($self->__("Encoding `%s' is not a 
canonical texinfo encoding"), 
                                    $text), $line_nr)
-            if (!$texinfo_encoding);
+            if (!$texinfo_encoding or $texinfo_encoding ne lc($text));
           if (!$perl_encoding) {
             $self->line_warn (sprintf($self->__("unrecognized encoding name 
`%s'"), 
                        $text), $line_nr);

Index: Texinfo/Convert/Converter.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Converter.pm,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -b -r1.40 -r1.41
--- Texinfo/Convert/Converter.pm        17 Sep 2011 22:31:55 -0000      1.40
+++ Texinfo/Convert/Converter.pm        29 Sep 2011 08:18:14 -0000      1.41
@@ -808,7 +808,7 @@
       return Texinfo::Convert::Text::unicode_accents($accent, $format_accents,
                                                      $in_upper_case);
     } elsif ($self->{'encoding_name'} 
-           and 
$Texinfo::Common::eight_bit_encoding_aliases{$self->{'encoding_name'}}) {
+           and 
$Texinfo::Encoding::eight_bit_encoding_aliases{$self->{'encoding_name'}}) {
       return Texinfo::Convert::Text::eight_bit_accents($accent, 
                                       $self->{'encoding_name'}, 
                                       $format_accents,

Index: Texinfo/Convert/HTML.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/HTML.pm,v
retrieving revision 1.153
retrieving revision 1.154
diff -u -b -r1.153 -r1.154
--- Texinfo/Convert/HTML.pm     26 Sep 2011 22:44:37 -0000      1.153
+++ Texinfo/Convert/HTML.pm     29 Sep 2011 08:18:14 -0000      1.154
@@ -4046,8 +4046,8 @@
             and $self->{'encoding_name'} 
             and 
$Texinfo::Convert::Unicode::unicode_character_brace_no_arg_commands{$command}
             and ($self->{'encoding_name'} eq 'utf-8'
-                 or 
($Texinfo::Common::eight_bit_encoding_aliases{$self->{'encoding_name'}}
-                    and 
$Texinfo::Convert::Text::unicode_to_eight_bit{$Texinfo::Common::eight_bit_encoding_aliases{$self->{'encoding_name'}}}->{$Texinfo::Convert::Unicode::unicode_map{$command}}))
+                 or 
($Texinfo::Encoding::eight_bit_encoding_aliases{$self->{'encoding_name'}}
+                    and 
$Texinfo::Convert::Unicode::unicode_to_eight_bit{$Texinfo::Encoding::eight_bit_encoding_aliases{$self->{'encoding_name'}}}->{$Texinfo::Convert::Unicode::unicode_map{$command}}))
             and 
!$self->_use_entity_is_entity($default_commands_formatting{$context}->{$command}))
 {
           $self->{'commands_formatting'}->{$context}->{$command}
             = 
$Texinfo::Convert::Unicode::unicode_character_brace_no_arg_commands{$command}

Index: Texinfo/Convert/Text.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Text.pm,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -b -r1.58 -r1.59
--- Texinfo/Convert/Text.pm     28 Sep 2011 23:02:57 -0000      1.58
+++ Texinfo/Convert/Text.pm     29 Sep 2011 08:18:14 -0000      1.59
@@ -156,377 +156,7 @@
 );
 
 my %accent_commands = %Texinfo::Common::accent_commands;
-
-our %unicode_to_eight_bit = (
-   'iso8859_1' => {
-      '00A0' => 'A0',
-      '00A1' => 'A1',
-      '00A2' => 'A2',
-      '00A3' => 'A3',
-      '00A4' => 'A4',
-      '00A5' => 'A5',
-      '00A6' => 'A6',
-      '00A7' => 'A7',
-      '00A8' => 'A8',
-      '00A9' => 'A9',
-      '00AA' => 'AA',
-      '00AB' => 'AB',
-      '00AC' => 'AC',
-      '00AD' => 'AD',
-      '00AE' => 'AE',
-      '00AF' => 'AF',
-      '00B0' => 'B0',
-      '00B1' => 'B1',
-      '00B2' => 'B2',
-      '00B3' => 'B3',
-      '00B4' => 'B4',
-      '00B5' => 'B5',
-      '00B6' => 'B6',
-      '00B7' => 'B7',
-      '00B8' => 'B8',
-      '00B9' => 'B9',
-      '00BA' => 'BA',
-      '00BB' => 'BB',
-      '00BC' => 'BC',
-      '00BD' => 'BD',
-      '00BE' => 'BE',
-      '00BF' => 'BF',
-      '00C0' => 'C0',
-      '00C1' => 'C1',
-      '00C2' => 'C2',
-      '00C3' => 'C3',
-      '00C4' => 'C4',
-      '00C5' => 'C5',
-      '00C6' => 'C6',
-      '00C7' => 'C7',
-      '00C7' => 'C7',
-      '00C8' => 'C8',
-      '00C9' => 'C9',
-      '00CA' => 'CA',
-      '00CB' => 'CB',
-      '00CC' => 'CC',
-      '00CD' => 'CD',
-      '00CE' => 'CE',
-      '00CF' => 'CF',
-      '00D0' => 'D0',
-      '00D1' => 'D1',
-      '00D2' => 'D2',
-      '00D3' => 'D3',
-      '00D4' => 'D4',
-      '00D5' => 'D5',
-      '00D6' => 'D6',
-      '00D7' => 'D7',
-      '00D8' => 'D8',
-      '00D9' => 'D9',
-      '00DA' => 'DA',
-      '00DB' => 'DB',
-      '00DC' => 'DC',
-      '00DD' => 'DD',
-      '00DE' => 'DE',
-      '00DF' => 'DF',
-      '00E0' => 'E0',
-      '00E1' => 'E1',
-      '00E2' => 'E2',
-      '00E3' => 'E3',
-      '00E4' => 'E4',
-      '00E5' => 'E5',
-      '00E6' => 'E6',
-      '00E7' => 'E7',
-      '00E8' => 'E8',
-      '00E9' => 'E9',
-      '00EA' => 'EA',
-      '00EB' => 'EB',
-      '00EC' => 'EC',
-      '00ED' => 'ED',
-      '00EE' => 'EE',
-      '00EF' => 'EF',
-      '00F0' => 'F0',
-      '00F1' => 'F1',
-      '00F2' => 'F2',
-      '00F3' => 'F3',
-      '00F4' => 'F4',
-      '00F5' => 'F5',
-      '00F6' => 'F6',
-      '00F7' => 'F7',
-      '00F8' => 'F8',
-      '00F9' => 'F9',
-      '00FA' => 'FA',
-      '00FB' => 'FB',
-      '00FC' => 'FC',
-      '00FD' => 'FD',
-      '00FE' => 'FE',
-      '00FF' => 'FF',
-   },
-   'iso8859_15' => {
-      '00A0' => 'A0',
-      '00A1' => 'A1',
-      '00A2' => 'A2',
-      '00A3' => 'A3',
-      '20AC' => 'A4',
-      '00A5' => 'A5',
-      '0160' => 'A6',
-      '00A7' => 'A7',
-      '0161' => 'A8',
-      '00A9' => 'A9',
-      '00AA' => 'AA',
-      '00AB' => 'AB',
-      '00AC' => 'AC',
-      '00AD' => 'AD',
-      '00AE' => 'AE',
-      '00AF' => 'AF',
-      '00B0' => 'B0',
-      '00B1' => 'B1',
-      '00B2' => 'B2',
-      '00B3' => 'B3',
-      '017D' => 'B4',
-      '00B5' => 'B5',
-      '00B6' => 'B6',
-      '00B7' => 'B7',
-      '017E' => 'B8',
-      '00B9' => 'B9',
-      '00BA' => 'BA',
-      '00BB' => 'BB',
-      '0152' => 'BC',
-      '0153' => 'BD',
-      '0178' => 'BE',
-      '00BF' => 'BF',
-      '00C0' => 'C0',
-      '00C1' => 'C1',
-      '00C2' => 'C2',
-      '00C3' => 'C3',
-      '00C4' => 'C4',
-      '00C5' => 'C5',
-      '00C6' => 'C6',
-      '00C7' => 'C7',
-      '00C8' => 'C8',
-      '00C9' => 'C9',
-      '00CA' => 'CA',
-      '00CB' => 'CB',
-      '00CC' => 'CC',
-      '00CD' => 'CD',
-      '00CE' => 'CE',
-      '00CF' => 'CF',
-      '00D0' => 'D0',
-      '00D1' => 'D1',
-      '00D2' => 'D2',
-      '00D3' => 'D3',
-      '00D4' => 'D4',
-      '00D5' => 'D5',
-      '00D6' => 'D6',
-      '00D7' => 'D7',
-      '00D8' => 'D8',
-      '00D9' => 'D9',
-      '00DA' => 'DA',
-      '00DB' => 'DB',
-      '00DC' => 'DC',
-      '00DD' => 'DD',
-      '00DE' => 'DE',
-      '00DF' => 'DF',
-      '00E0' => 'E0',
-      '00E1' => 'E1',
-      '00E2' => 'E2',
-      '00E3' => 'E3',
-      '00E4' => 'E4',
-      '00E5' => 'E5',
-      '00E6' => 'E6',
-      '00E7' => 'E7',
-      '00E8' => 'E8',
-      '00E9' => 'E9',
-      '00EA' => 'EA',
-      '00EB' => 'EB',
-      '00EC' => 'EC',
-      '00ED' => 'ED',
-      '00EE' => 'EE',
-      '00EF' => 'EF',
-      '00F0' => 'F0',
-      '00F1' => 'F1',
-      '00F2' => 'F2',
-      '00F3' => 'F3',
-      '00F4' => 'F4',
-      '00F5' => 'F5',
-      '00F6' => 'F6',
-      '00F7' => 'F7',
-      '00F8' => 'F8',
-      '00F9' => 'F9',
-      '00FA' => 'FA',
-      '00FB' => 'FB',
-      '00FC' => 'FC',
-      '00FD' => 'FD',
-      '00FE' => 'FE',
-      '00FF' => 'FF',
-   },
-   'iso8859_2' => {
-      '00A0' => 'A0',
-      '0104' => 'A1',
-      '02D8' => 'A2',
-      '0141' => 'A3',
-      '00A4' => 'A4',
-      '013D' => 'A5',
-      '015A' => 'A6',
-      '00A7' => 'A7',
-      '00A8' => 'A8',
-      '015E' => 'AA',
-      '0164' => 'AB',
-      '0179' => 'AC',
-      '00AD' => 'AD',
-      '017D' => 'AE',
-      '017B' => 'AF',
-      '00B0' => 'B0',
-      '0105' => 'B1',
-      '02DB' => 'B2',
-      '0142' => 'B3',
-      '00B4' => 'B4',
-      '013E' => 'B5',
-      '015B' => 'B6',
-      '02C7' => 'B7',
-      '00B8' => 'B8',
-      '0161' => 'B9',
-      '015F' => 'BA',
-      '0165' => 'BB',
-      '017A' => 'BC',
-      '02DD' => 'BD',
-      '017E' => 'BE',
-      '017C' => 'BF',
-      '0154' => 'C0',
-      '00C1' => 'C1',
-      '00C2' => 'C2',
-      '0102' => 'C3',
-      '00C4' => 'C4',
-      '0139' => 'C5',
-      '0106' => 'C6',
-      '00C7' => 'C7',
-      '010C' => 'C8',
-      '00C9' => 'C9',
-      '0118' => 'CA',
-      '00CB' => 'CB',
-      '011A' => 'CC',
-      '00CD' => 'CD',
-      '00CE' => 'CE',
-      '010E' => 'CF',
-      '0110' => 'D0',
-      '0143' => 'D1',
-      '0147' => 'D2',
-      '00D3' => 'D3',
-      '00D4' => 'D4',
-      '0150' => 'D5',
-      '00D6' => 'D6',
-      '00D7' => 'D7',
-      '0158' => 'D8',
-      '016E' => 'D9',
-      '00DA' => 'DA',
-      '0170' => 'DB',
-      '00DC' => 'DC',
-      '00DD' => 'DD',
-      '0162' => 'DE',
-      '00DF' => 'DF',
-      '0155' => 'E0',
-      '00E1' => 'E1',
-      '00E2' => 'E2',
-      '0103' => 'E3',
-      '00E4' => 'E4',
-      '013A' => 'E5',
-      '0107' => 'E6',
-      '00E7' => 'E7',
-      '010D' => 'E8',
-      '00E9' => 'E9',
-      '0119' => 'EA',
-      '00EB' => 'EB',
-      '011B' => 'EC',
-      '00ED' => 'ED',
-      '00EE' => 'EE',
-      '010F' => 'EF',
-      '0111' => 'F0',
-      '0144' => 'F1',
-      '0148' => 'F2',
-      '00F3' => 'F3',
-      '00F4' => 'F4',
-      '0151' => 'F5',
-      '00F6' => 'F6',
-      '00F7' => 'F7',
-      '0159' => 'F8',
-      '016F' => 'F9',
-      '00FA' => 'FA',
-      '0171' => 'FB',
-      '00FC' => 'FC',
-      '00FD' => 'FD',
-      '0163' => 'FE',
-      '02D9' => 'FF',
-   },
-   'koi8' => {
-      '0415' => 'A3',
-      '0454' => 'A4',
-      '0456' => 'A6',
-      '0457' => 'A7',
-      '04D7' => 'B3',
-      '0404' => 'B4',
-      '0406' => 'B6',
-      '0407' => 'B7',
-      '042E' => 'C0',
-      '0430' => 'C1',
-      '0431' => 'C2',
-      '0446' => 'C3',
-      '0434' => 'C4',
-      '0435' => 'C5',
-      '0444' => 'C6',
-      '0433' => 'C7',
-      '0445' => 'C8',
-      '0438' => 'C9',
-      '0439' => 'CA',
-      '043A' => 'CB',
-      '043B' => 'CC',
-      '043C' => 'CD',
-      '043D' => 'CE',
-      '043E' => 'CF',
-      '043F' => 'D0',
-      '044F' => 'D1',
-      '0440' => 'D2',
-      '0441' => 'D3',
-      '0442' => 'D4',
-      '0443' => 'D5',
-      '0436' => 'D6',
-      '0432' => 'D7',
-      '044C' => 'D8',
-      '044B' => 'D9',
-      '0437' => 'DA',
-      '0448' => 'DB',
-      '044D' => 'DC',
-      '0449' => 'DD',
-      '0447' => 'DE',
-      '044A' => 'DF',
-      '042D' => 'E0',
-      '0410' => 'E1',
-      '0411' => 'E2',
-      '0426' => 'E3',
-      '0414' => 'E4',
-      '0415' => 'E5',
-      '0424' => 'E6',
-      '0413' => 'E7',
-      '0425' => 'E8',
-      '0418' => 'E9',
-      '0419' => 'EA',
-      '041A' => 'EB',
-      '041B' => 'EC',
-      '041C' => 'ED',
-      '041D' => 'EE',
-      '041E' => 'EF',
-      '041F' => 'F0',
-      '042F' => 'F1',
-      '0420' => 'F2',
-      '0421' => 'F3',
-      '0422' => 'F4',
-      '0423' => 'F5',
-      '0416' => 'F6',
-      '0412' => 'F7',
-      '042C' => 'F8',
-      '042B' => 'F9',
-      '0417' => 'FA',
-      '0428' => 'FB',
-      '042D' => 'FC',
-      '0429' => 'FD',
-      '0427' => 'FE',
-      '042A' => 'FF',
-   },
-);
+my %unicode_to_eight_bit = %Texinfo::Convert::Unicode::unicode_to_eight_bit;
 
 our %formatting_misc_commands;
 foreach my $command ('verbatiminclude', 'sp', 'center', 'exdent', 
@@ -696,7 +326,7 @@
   }
 
   my $encoding_map_name 
-       = $Texinfo::Common::eight_bit_encoding_aliases{$encoding};
+       = $Texinfo::Encoding::eight_bit_encoding_aliases{$encoding};
   # At this point we have the utf8 encoded results for the accent
   # commands stack, with all the intermediate results.
   # For each one we'll check if it is possible to encode it in the 
@@ -833,7 +463,7 @@
   if ($encoding and $encoding eq 'utf-8') {
     return unicode_accents($accent, \&ascii_accent, $in_upper_case);
   } elsif ($encoding 
-           and $Texinfo::Common::eight_bit_encoding_aliases{$encoding}) {
+           and $Texinfo::Encoding::eight_bit_encoding_aliases{$encoding}) {
     return eight_bit_accents($accent, $encoding, \&ascii_accent, 
$in_upper_case);
   } else {
     my $result = ascii_accents($accent, $in_upper_case);
@@ -857,8 +487,8 @@
   if ($encoding
       and (($encoding eq 'utf-8' 
             and 
$Texinfo::Convert::Unicode::unicode_character_brace_no_arg_commands{$command})
-           or ($Texinfo::Common::eight_bit_encoding_aliases{$encoding}
-               and 
$unicode_to_eight_bit{$Texinfo::Common::eight_bit_encoding_aliases{$encoding}}->{$Texinfo::Convert::Unicode::unicode_map{$command}})))
 {
+           or ($Texinfo::Encoding::eight_bit_encoding_aliases{$encoding}
+               and 
$unicode_to_eight_bit{$Texinfo::Encoding::eight_bit_encoding_aliases{$encoding}}->{$Texinfo::Convert::Unicode::unicode_map{$command}})))
 {
     $result = 
$Texinfo::Convert::Unicode::unicode_character_brace_no_arg_commands{$command};
   } elsif ($options and $options->{'sort_string'} 
            and $sort_brace_no_arg_commands{$command}) {

Index: Texinfo/Convert/Unicode.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Unicode.pm,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- Texinfo/Convert/Unicode.pm  6 Sep 2011 20:20:44 -0000       1.15
+++ Texinfo/Convert/Unicode.pm  29 Sep 2011 08:18:14 -0000      1.16
@@ -1,4 +1,4 @@
-# Unicode.pm: handle conversion to unicode.
+# Unicode.pm: handle conversion to and from unicode.
 #
 # Copyright 2010, 2011 Free Software Foundation, Inc.
 # 
@@ -610,6 +610,376 @@
   }
 }
 
+our %unicode_to_eight_bit = (
+   'iso8859_1' => {
+      '00A0' => 'A0',
+      '00A1' => 'A1',
+      '00A2' => 'A2',
+      '00A3' => 'A3',
+      '00A4' => 'A4',
+      '00A5' => 'A5',
+      '00A6' => 'A6',
+      '00A7' => 'A7',
+      '00A8' => 'A8',
+      '00A9' => 'A9',
+      '00AA' => 'AA',
+      '00AB' => 'AB',
+      '00AC' => 'AC',
+      '00AD' => 'AD',
+      '00AE' => 'AE',
+      '00AF' => 'AF',
+      '00B0' => 'B0',
+      '00B1' => 'B1',
+      '00B2' => 'B2',
+      '00B3' => 'B3',
+      '00B4' => 'B4',
+      '00B5' => 'B5',
+      '00B6' => 'B6',
+      '00B7' => 'B7',
+      '00B8' => 'B8',
+      '00B9' => 'B9',
+      '00BA' => 'BA',
+      '00BB' => 'BB',
+      '00BC' => 'BC',
+      '00BD' => 'BD',
+      '00BE' => 'BE',
+      '00BF' => 'BF',
+      '00C0' => 'C0',
+      '00C1' => 'C1',
+      '00C2' => 'C2',
+      '00C3' => 'C3',
+      '00C4' => 'C4',
+      '00C5' => 'C5',
+      '00C6' => 'C6',
+      '00C7' => 'C7',
+      '00C7' => 'C7',
+      '00C8' => 'C8',
+      '00C9' => 'C9',
+      '00CA' => 'CA',
+      '00CB' => 'CB',
+      '00CC' => 'CC',
+      '00CD' => 'CD',
+      '00CE' => 'CE',
+      '00CF' => 'CF',
+      '00D0' => 'D0',
+      '00D1' => 'D1',
+      '00D2' => 'D2',
+      '00D3' => 'D3',
+      '00D4' => 'D4',
+      '00D5' => 'D5',
+      '00D6' => 'D6',
+      '00D7' => 'D7',
+      '00D8' => 'D8',
+      '00D9' => 'D9',
+      '00DA' => 'DA',
+      '00DB' => 'DB',
+      '00DC' => 'DC',
+      '00DD' => 'DD',
+      '00DE' => 'DE',
+      '00DF' => 'DF',
+      '00E0' => 'E0',
+      '00E1' => 'E1',
+      '00E2' => 'E2',
+      '00E3' => 'E3',
+      '00E4' => 'E4',
+      '00E5' => 'E5',
+      '00E6' => 'E6',
+      '00E7' => 'E7',
+      '00E8' => 'E8',
+      '00E9' => 'E9',
+      '00EA' => 'EA',
+      '00EB' => 'EB',
+      '00EC' => 'EC',
+      '00ED' => 'ED',
+      '00EE' => 'EE',
+      '00EF' => 'EF',
+      '00F0' => 'F0',
+      '00F1' => 'F1',
+      '00F2' => 'F2',
+      '00F3' => 'F3',
+      '00F4' => 'F4',
+      '00F5' => 'F5',
+      '00F6' => 'F6',
+      '00F7' => 'F7',
+      '00F8' => 'F8',
+      '00F9' => 'F9',
+      '00FA' => 'FA',
+      '00FB' => 'FB',
+      '00FC' => 'FC',
+      '00FD' => 'FD',
+      '00FE' => 'FE',
+      '00FF' => 'FF',
+   },
+   'iso8859_15' => {
+      '00A0' => 'A0',
+      '00A1' => 'A1',
+      '00A2' => 'A2',
+      '00A3' => 'A3',
+      '20AC' => 'A4',
+      '00A5' => 'A5',
+      '0160' => 'A6',
+      '00A7' => 'A7',
+      '0161' => 'A8',
+      '00A9' => 'A9',
+      '00AA' => 'AA',
+      '00AB' => 'AB',
+      '00AC' => 'AC',
+      '00AD' => 'AD',
+      '00AE' => 'AE',
+      '00AF' => 'AF',
+      '00B0' => 'B0',
+      '00B1' => 'B1',
+      '00B2' => 'B2',
+      '00B3' => 'B3',
+      '017D' => 'B4',
+      '00B5' => 'B5',
+      '00B6' => 'B6',
+      '00B7' => 'B7',
+      '017E' => 'B8',
+      '00B9' => 'B9',
+      '00BA' => 'BA',
+      '00BB' => 'BB',
+      '0152' => 'BC',
+      '0153' => 'BD',
+      '0178' => 'BE',
+      '00BF' => 'BF',
+      '00C0' => 'C0',
+      '00C1' => 'C1',
+      '00C2' => 'C2',
+      '00C3' => 'C3',
+      '00C4' => 'C4',
+      '00C5' => 'C5',
+      '00C6' => 'C6',
+      '00C7' => 'C7',
+      '00C8' => 'C8',
+      '00C9' => 'C9',
+      '00CA' => 'CA',
+      '00CB' => 'CB',
+      '00CC' => 'CC',
+      '00CD' => 'CD',
+      '00CE' => 'CE',
+      '00CF' => 'CF',
+      '00D0' => 'D0',
+      '00D1' => 'D1',
+      '00D2' => 'D2',
+      '00D3' => 'D3',
+      '00D4' => 'D4',
+      '00D5' => 'D5',
+      '00D6' => 'D6',
+      '00D7' => 'D7',
+      '00D8' => 'D8',
+      '00D9' => 'D9',
+      '00DA' => 'DA',
+      '00DB' => 'DB',
+      '00DC' => 'DC',
+      '00DD' => 'DD',
+      '00DE' => 'DE',
+      '00DF' => 'DF',
+      '00E0' => 'E0',
+      '00E1' => 'E1',
+      '00E2' => 'E2',
+      '00E3' => 'E3',
+      '00E4' => 'E4',
+      '00E5' => 'E5',
+      '00E6' => 'E6',
+      '00E7' => 'E7',
+      '00E8' => 'E8',
+      '00E9' => 'E9',
+      '00EA' => 'EA',
+      '00EB' => 'EB',
+      '00EC' => 'EC',
+      '00ED' => 'ED',
+      '00EE' => 'EE',
+      '00EF' => 'EF',
+      '00F0' => 'F0',
+      '00F1' => 'F1',
+      '00F2' => 'F2',
+      '00F3' => 'F3',
+      '00F4' => 'F4',
+      '00F5' => 'F5',
+      '00F6' => 'F6',
+      '00F7' => 'F7',
+      '00F8' => 'F8',
+      '00F9' => 'F9',
+      '00FA' => 'FA',
+      '00FB' => 'FB',
+      '00FC' => 'FC',
+      '00FD' => 'FD',
+      '00FE' => 'FE',
+      '00FF' => 'FF',
+   },
+   'iso8859_2' => {
+      '00A0' => 'A0',
+      '0104' => 'A1',
+      '02D8' => 'A2',
+      '0141' => 'A3',
+      '00A4' => 'A4',
+      '013D' => 'A5',
+      '015A' => 'A6',
+      '00A7' => 'A7',
+      '00A8' => 'A8',
+      '015E' => 'AA',
+      '0164' => 'AB',
+      '0179' => 'AC',
+      '00AD' => 'AD',
+      '017D' => 'AE',
+      '017B' => 'AF',
+      '00B0' => 'B0',
+      '0105' => 'B1',
+      '02DB' => 'B2',
+      '0142' => 'B3',
+      '00B4' => 'B4',
+      '013E' => 'B5',
+      '015B' => 'B6',
+      '02C7' => 'B7',
+      '00B8' => 'B8',
+      '0161' => 'B9',
+      '015F' => 'BA',
+      '0165' => 'BB',
+      '017A' => 'BC',
+      '02DD' => 'BD',
+      '017E' => 'BE',
+      '017C' => 'BF',
+      '0154' => 'C0',
+      '00C1' => 'C1',
+      '00C2' => 'C2',
+      '0102' => 'C3',
+      '00C4' => 'C4',
+      '0139' => 'C5',
+      '0106' => 'C6',
+      '00C7' => 'C7',
+      '010C' => 'C8',
+      '00C9' => 'C9',
+      '0118' => 'CA',
+      '00CB' => 'CB',
+      '011A' => 'CC',
+      '00CD' => 'CD',
+      '00CE' => 'CE',
+      '010E' => 'CF',
+      '0110' => 'D0',
+      '0143' => 'D1',
+      '0147' => 'D2',
+      '00D3' => 'D3',
+      '00D4' => 'D4',
+      '0150' => 'D5',
+      '00D6' => 'D6',
+      '00D7' => 'D7',
+      '0158' => 'D8',
+      '016E' => 'D9',
+      '00DA' => 'DA',
+      '0170' => 'DB',
+      '00DC' => 'DC',
+      '00DD' => 'DD',
+      '0162' => 'DE',
+      '00DF' => 'DF',
+      '0155' => 'E0',
+      '00E1' => 'E1',
+      '00E2' => 'E2',
+      '0103' => 'E3',
+      '00E4' => 'E4',
+      '013A' => 'E5',
+      '0107' => 'E6',
+      '00E7' => 'E7',
+      '010D' => 'E8',
+      '00E9' => 'E9',
+      '0119' => 'EA',
+      '00EB' => 'EB',
+      '011B' => 'EC',
+      '00ED' => 'ED',
+      '00EE' => 'EE',
+      '010F' => 'EF',
+      '0111' => 'F0',
+      '0144' => 'F1',
+      '0148' => 'F2',
+      '00F3' => 'F3',
+      '00F4' => 'F4',
+      '0151' => 'F5',
+      '00F6' => 'F6',
+      '00F7' => 'F7',
+      '0159' => 'F8',
+      '016F' => 'F9',
+      '00FA' => 'FA',
+      '0171' => 'FB',
+      '00FC' => 'FC',
+      '00FD' => 'FD',
+      '0163' => 'FE',
+      '02D9' => 'FF',
+   },
+   'koi8' => {
+      '0415' => 'A3',
+      '0454' => 'A4',
+      '0456' => 'A6',
+      '0457' => 'A7',
+      '04D7' => 'B3',
+      '0404' => 'B4',
+      '0406' => 'B6',
+      '0407' => 'B7',
+      '042E' => 'C0',
+      '0430' => 'C1',
+      '0431' => 'C2',
+      '0446' => 'C3',
+      '0434' => 'C4',
+      '0435' => 'C5',
+      '0444' => 'C6',
+      '0433' => 'C7',
+      '0445' => 'C8',
+      '0438' => 'C9',
+      '0439' => 'CA',
+      '043A' => 'CB',
+      '043B' => 'CC',
+      '043C' => 'CD',
+      '043D' => 'CE',
+      '043E' => 'CF',
+      '043F' => 'D0',
+      '044F' => 'D1',
+      '0440' => 'D2',
+      '0441' => 'D3',
+      '0442' => 'D4',
+      '0443' => 'D5',
+      '0436' => 'D6',
+      '0432' => 'D7',
+      '044C' => 'D8',
+      '044B' => 'D9',
+      '0437' => 'DA',
+      '0448' => 'DB',
+      '044D' => 'DC',
+      '0449' => 'DD',
+      '0447' => 'DE',
+      '044A' => 'DF',
+      '042D' => 'E0',
+      '0410' => 'E1',
+      '0411' => 'E2',
+      '0426' => 'E3',
+      '0414' => 'E4',
+      '0415' => 'E5',
+      '0424' => 'E6',
+      '0413' => 'E7',
+      '0425' => 'E8',
+      '0418' => 'E9',
+      '0419' => 'EA',
+      '041A' => 'EB',
+      '041B' => 'EC',
+      '041C' => 'ED',
+      '041D' => 'EE',
+      '041E' => 'EF',
+      '041F' => 'F0',
+      '042F' => 'F1',
+      '0420' => 'F2',
+      '0421' => 'F3',
+      '0422' => 'F4',
+      '0423' => 'F5',
+      '0416' => 'F6',
+      '0412' => 'F7',
+      '042C' => 'F8',
+      '042B' => 'F9',
+      '0417' => 'FA',
+      '0428' => 'FB',
+      '042D' => 'FC',
+      '0429' => 'FD',
+      '0427' => 'FE',
+      '042A' => 'FF',
+   },
+);
 
 # currently unused
 my %makeinfo_transliterate_map = (
@@ -866,7 +1236,7 @@
     if ($character =~ /\p{Unicode::EastAsianWidth::InFullwidth}/) {
       $width += 2;
     } elsif ($character =~ /\pM/) {
-      # a mark, consider it to be of lenght 0.
+      # a mark, consider it to be of lenght 0.
     } elsif ($character =~ /\p{IsPrint}/) {
       $width += 1;
     }

Index: Texinfo/Encoding.pm
===================================================================
RCS file: Texinfo/Encoding.pm
diff -N Texinfo/Encoding.pm
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ Texinfo/Encoding.pm 29 Sep 2011 08:18:13 -0000      1.1
@@ -0,0 +1,153 @@
+# Encoding.pm: Encodings definitions and aliases.
+#
+# Copyright 2010, 2011 Free Software Foundation, Inc.
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License,
+# or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# 
+# Original author: Patrice Dumas <address@hidden>
+# Parts (also from Patrice Dumas) come from texi2html.pl or texi2html.init.
+
+package Texinfo::Encoding;
+
+use strict;
+
+use Encode;
+
+require Exporter;
+use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
address@hidden = qw(Exporter);
+
+# Items to export into callers namespace by default. Note: do not export
+# names by default without a very good reason. Use EXPORT_OK instead.
+# Do not simply export all your public functions/methods/constants.
+
+# This allows declaration       use Texinfo::Covert::Text ':all';
+# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
+# will save memory.
+%EXPORT_TAGS = ( 'all' => [ qw(
+  encoding_alias
+) ] );
+
address@hidden = ( @{ $EXPORT_TAGS{'all'} } );
+
address@hidden = qw(
+);
+
+# charset related definitions.
+
+our %perl_charset_to_html = (
+              'utf8'       => 'utf-8',
+              'utf-8-strict'       => 'utf-8',
+              'ascii'      => 'us-ascii',
+              'shiftjis'      => 'shift_jis',
+);
+
+# encoding name normalization to html-compatible encoding names
+our %encoding_aliases = (
+              'latin1' => 'iso-8859-1',
+);
+
+foreach my $perl_charset (keys(%perl_charset_to_html)) {
+   $encoding_aliases{$perl_charset} = $perl_charset_to_html{$perl_charset};
+   $encoding_aliases{$perl_charset_to_html{$perl_charset}}
+        = $perl_charset_to_html{$perl_charset};
+}
+our %eight_bit_encoding_aliases = (
+  "iso-8859-1",  'iso8859_1',
+  "iso-8859-2",  'iso8859_2',
+  "iso-8859-15", 'iso8859_15',
+  "koi8-r",      'koi8',
+  "koi8-u",      'koi8',
+);
+
+foreach my $encoding (keys(%eight_bit_encoding_aliases)) {
+  $encoding_aliases{$encoding} = $encoding;
+  $encoding_aliases{$eight_bit_encoding_aliases{$encoding}} = $encoding;
+}
+
+our %canonical_texinfo_encodings;
+# These are the encodings from the texinfo manual
+foreach my $canonical_encoding('us-ascii', 'utf-8', 'iso-8859-1',
+  'iso-8859-15','iso-8859-2','koi8-r', 'koi8-u') {
+  $canonical_texinfo_encodings{$canonical_encoding} = 1;
+}
+
+sub encoding_alias ($)
+{
+  my $encoding = shift;
+  my $canonical_texinfo_encoding;
+  $canonical_texinfo_encoding
+    = $encoding if ($canonical_texinfo_encodings{lc($encoding)});
+  my $perl_encoding = Encode::resolve_alias($encoding);
+  my $canonical_output_encoding;
+  if ($perl_encoding) {
+    $canonical_output_encoding = $encoding_aliases{$perl_encoding};
+  }
+  foreach my $possible_encoding ($encoding, $canonical_output_encoding, 
+                                            $perl_encoding) {
+    if (defined($possible_encoding)
+        and $canonical_texinfo_encodings{lc($possible_encoding)}) {
+      $canonical_texinfo_encoding = $possible_encoding;
+    }
+  }
+  return ($canonical_texinfo_encoding, $perl_encoding, 
$canonical_output_encoding);
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Texinfo::Encoding - Encodings and encoding aliases
+
+=head1 SYNOPSIS
+
+  use Texinfo::Encoding qw(encoding_alias);
+
+  my ($canonical_texinfo_encoding, $perl_encoding, 
+      $canonical_output_encoding) = encoding_alias($encoding);
+
+=head1 DESCRIPTION
+
+Texinfo::Encoding takes care of encoding definition and aliasing.
+
+=head1 METHODS
+
+=over
+
+=item ($canonical_texinfo_encoding, $perl_encoding, 
$canonical_output_encoding) = encoding_alias($encoding)
+
+Taking an encoding name as argument, the function returns the 
+corresponding canonical Texinfo encoding I<$canonical_texinfo_encoding> 
+as described in the Texinfo manual (or undef), an encoding name suitable 
+for perl I<$perl_encoding>, and an encoding name suitable for most 
+output formaats, especially HTML, I<$canonical_output_encoding>. 
+
+=back
+
+=head1 AUTHOR
+
+Patrice Dumas, E<lt>address@hidden<gt>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+
+This library is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License,
+or (at your option) any later version.
+
+=cut



reply via email to

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