From 847a5fae45dac396d0f9e1bb61d5b4ff9d94cdcd Mon Sep 17 00:00:00 2001 From: Charles Bailey Date: Wed, 24 Jan 2001 06:37:02 +0000 Subject: SYN SYN p4raw-id: //depot/vmsperl@8535 --- ext/B/B.xs | 10 +- ext/B/B/Asmdata.pm | 55 ++- ext/B/B/Bytecode.pm | 9 - ext/B/B/C.pm | 13 +- ext/B/B/Concise.pm | 817 +++++++++++++++++++++++++++++++++++++++ ext/ByteLoader/byterun.c | 61 ++- ext/ByteLoader/byterun.h | 57 ++- ext/DynaLoader/dl_aix.xs | 2 +- ext/DynaLoader/dl_dllload.xs | 189 +++++++++ ext/DynaLoader/dl_dlopen.xs | 2 +- ext/Encode/Encode.xs | 29 +- ext/Encode/Encode/ascii.ucm | 136 +++++++ ext/Encode/Encode/cp1047.ucm | 264 +++++++++++++ ext/Encode/Encode/cp1250.ucm | 263 +++++++++++++ ext/Encode/Encode/cp37.ucm | 264 +++++++++++++ ext/Encode/Encode/dingbats.ucm | 261 +++++++++++++ ext/Encode/Encode/iso8859-1.ucm | 264 +++++++++++++ ext/Encode/Encode/iso8859-10.ucm | 264 +++++++++++++ ext/Encode/Encode/iso8859-13.ucm | 264 +++++++++++++ ext/Encode/Encode/iso8859-14.ucm | 264 +++++++++++++ ext/Encode/Encode/iso8859-15.ucm | 264 +++++++++++++ ext/Encode/Encode/iso8859-16.ucm | 264 +++++++++++++ ext/Encode/Encode/iso8859-2.ucm | 264 +++++++++++++ ext/Encode/Encode/iso8859-3.ucm | 257 ++++++++++++ ext/Encode/Encode/iso8859-4.ucm | 264 +++++++++++++ ext/Encode/Encode/iso8859-5.ucm | 264 +++++++++++++ ext/Encode/Encode/iso8859-6.ucm | 219 +++++++++++ ext/Encode/Encode/iso8859-7.ucm | 258 +++++++++++++ ext/Encode/Encode/iso8859-8.ucm | 226 +++++++++++ ext/Encode/Encode/iso8859-9.ucm | 264 +++++++++++++ ext/Encode/Encode/posix-bc.ucm | 264 +++++++++++++ ext/Encode/Encode/symbol.ucm | 262 +++++++++++++ ext/Encode/Makefile.PL | 37 +- ext/Encode/compile | 171 +++++--- ext/Encode/encode.h | 4 +- ext/IO/lib/IO/Socket/INET.pm | 11 +- ext/Opcode/Opcode.xs | 28 +- ext/Opcode/Safe.pm | 1 + ext/Socket/Socket.pm | 1 + 39 files changed, 6611 insertions(+), 200 deletions(-) create mode 100644 ext/B/B/Concise.pm create mode 100644 ext/DynaLoader/dl_dllload.xs create mode 100644 ext/Encode/Encode/ascii.ucm create mode 100644 ext/Encode/Encode/cp1047.ucm create mode 100644 ext/Encode/Encode/cp1250.ucm create mode 100644 ext/Encode/Encode/cp37.ucm create mode 100644 ext/Encode/Encode/dingbats.ucm create mode 100644 ext/Encode/Encode/iso8859-1.ucm create mode 100644 ext/Encode/Encode/iso8859-10.ucm create mode 100644 ext/Encode/Encode/iso8859-13.ucm create mode 100644 ext/Encode/Encode/iso8859-14.ucm create mode 100644 ext/Encode/Encode/iso8859-15.ucm create mode 100644 ext/Encode/Encode/iso8859-16.ucm create mode 100644 ext/Encode/Encode/iso8859-2.ucm create mode 100644 ext/Encode/Encode/iso8859-3.ucm create mode 100644 ext/Encode/Encode/iso8859-4.ucm create mode 100644 ext/Encode/Encode/iso8859-5.ucm create mode 100644 ext/Encode/Encode/iso8859-6.ucm create mode 100644 ext/Encode/Encode/iso8859-7.ucm create mode 100644 ext/Encode/Encode/iso8859-8.ucm create mode 100644 ext/Encode/Encode/iso8859-9.ucm create mode 100644 ext/Encode/Encode/posix-bc.ucm create mode 100644 ext/Encode/Encode/symbol.ucm (limited to 'ext') diff --git a/ext/B/B.xs b/ext/B/B.xs index ec9e578020..25d69e97bd 100644 --- a/ext/B/B.xs +++ b/ext/B/B.xs @@ -648,13 +648,19 @@ B::OP LOGOP_other(o) B::LOGOP o -#define LISTOP_children(o) o->op_children - MODULE = B PACKAGE = B::LISTOP PREFIX = LISTOP_ U32 LISTOP_children(o) B::LISTOP o + OP * kid = NO_INIT + int i = NO_INIT + CODE: + ST(0) = sv_newmortal(); + i = 0; + for (kid = o->op_first; kid; kid = kid->op_sibling) + i++; + sv_setiv(ST(0), i); #define PMOP_pmreplroot(o) o->op_pmreplroot #define PMOP_pmreplstart(o) o->op_pmreplstart diff --git a/ext/B/B/Asmdata.pm b/ext/B/B/Asmdata.pm index b412927ab4..dc176be962 100644 --- a/ext/B/B/Asmdata.pm +++ b/ext/B/B/Asmdata.pm @@ -114,34 +114,33 @@ $insn_data{op_private} = [90, \&PUT_U8, "GET_U8"]; $insn_data{op_first} = [91, \&PUT_opindex, "GET_opindex"]; $insn_data{op_last} = [92, \&PUT_opindex, "GET_opindex"]; $insn_data{op_other} = [93, \&PUT_opindex, "GET_opindex"]; -$insn_data{op_children} = [94, \&PUT_U32, "GET_U32"]; -$insn_data{op_pmreplroot} = [95, \&PUT_opindex, "GET_opindex"]; -$insn_data{op_pmreplrootgv} = [96, \&PUT_svindex, "GET_svindex"]; -$insn_data{op_pmreplstart} = [97, \&PUT_opindex, "GET_opindex"]; -$insn_data{op_pmnext} = [98, \&PUT_opindex, "GET_opindex"]; -$insn_data{pregcomp} = [99, \&PUT_pvcontents, "GET_pvcontents"]; -$insn_data{op_pmflags} = [100, \&PUT_U16, "GET_U16"]; -$insn_data{op_pmpermflags} = [101, \&PUT_U16, "GET_U16"]; -$insn_data{op_sv} = [102, \&PUT_svindex, "GET_svindex"]; -$insn_data{op_padix} = [103, \&PUT_U32, "GET_U32"]; -$insn_data{op_pv} = [104, \&PUT_pvcontents, "GET_pvcontents"]; -$insn_data{op_pv_tr} = [105, \&PUT_op_tr_array, "GET_op_tr_array"]; -$insn_data{op_redoop} = [106, \&PUT_opindex, "GET_opindex"]; -$insn_data{op_nextop} = [107, \&PUT_opindex, "GET_opindex"]; -$insn_data{op_lastop} = [108, \&PUT_opindex, "GET_opindex"]; -$insn_data{cop_label} = [109, \&PUT_pvindex, "GET_pvindex"]; -$insn_data{cop_stashpv} = [110, \&PUT_pvindex, "GET_pvindex"]; -$insn_data{cop_file} = [111, \&PUT_pvindex, "GET_pvindex"]; -$insn_data{cop_seq} = [112, \&PUT_U32, "GET_U32"]; -$insn_data{cop_arybase} = [113, \&PUT_I32, "GET_I32"]; -$insn_data{cop_line} = [114, \&PUT_U16, "GET_U16"]; -$insn_data{cop_warnings} = [115, \&PUT_svindex, "GET_svindex"]; -$insn_data{main_start} = [116, \&PUT_opindex, "GET_opindex"]; -$insn_data{main_root} = [117, \&PUT_opindex, "GET_opindex"]; -$insn_data{curpad} = [118, \&PUT_svindex, "GET_svindex"]; -$insn_data{push_begin} = [119, \&PUT_svindex, "GET_svindex"]; -$insn_data{push_init} = [120, \&PUT_svindex, "GET_svindex"]; -$insn_data{push_end} = [121, \&PUT_svindex, "GET_svindex"]; +$insn_data{op_pmreplroot} = [94, \&PUT_opindex, "GET_opindex"]; +$insn_data{op_pmreplrootgv} = [95, \&PUT_svindex, "GET_svindex"]; +$insn_data{op_pmreplstart} = [96, \&PUT_opindex, "GET_opindex"]; +$insn_data{op_pmnext} = [97, \&PUT_opindex, "GET_opindex"]; +$insn_data{pregcomp} = [98, \&PUT_pvcontents, "GET_pvcontents"]; +$insn_data{op_pmflags} = [99, \&PUT_U16, "GET_U16"]; +$insn_data{op_pmpermflags} = [100, \&PUT_U16, "GET_U16"]; +$insn_data{op_sv} = [101, \&PUT_svindex, "GET_svindex"]; +$insn_data{op_padix} = [102, \&PUT_U32, "GET_U32"]; +$insn_data{op_pv} = [103, \&PUT_pvcontents, "GET_pvcontents"]; +$insn_data{op_pv_tr} = [104, \&PUT_op_tr_array, "GET_op_tr_array"]; +$insn_data{op_redoop} = [105, \&PUT_opindex, "GET_opindex"]; +$insn_data{op_nextop} = [106, \&PUT_opindex, "GET_opindex"]; +$insn_data{op_lastop} = [107, \&PUT_opindex, "GET_opindex"]; +$insn_data{cop_label} = [108, \&PUT_pvindex, "GET_pvindex"]; +$insn_data{cop_stashpv} = [109, \&PUT_pvindex, "GET_pvindex"]; +$insn_data{cop_file} = [110, \&PUT_pvindex, "GET_pvindex"]; +$insn_data{cop_seq} = [111, \&PUT_U32, "GET_U32"]; +$insn_data{cop_arybase} = [112, \&PUT_I32, "GET_I32"]; +$insn_data{cop_line} = [113, \&PUT_U16, "GET_U16"]; +$insn_data{cop_warnings} = [114, \&PUT_svindex, "GET_svindex"]; +$insn_data{main_start} = [115, \&PUT_opindex, "GET_opindex"]; +$insn_data{main_root} = [116, \&PUT_opindex, "GET_opindex"]; +$insn_data{curpad} = [117, \&PUT_svindex, "GET_svindex"]; +$insn_data{push_begin} = [118, \&PUT_svindex, "GET_svindex"]; +$insn_data{push_init} = [119, \&PUT_svindex, "GET_svindex"]; +$insn_data{push_end} = [120, \&PUT_svindex, "GET_svindex"]; my ($insn_name, $insn_data); while (($insn_name, $insn_data) = each %insn_data) { diff --git a/ext/B/B/Bytecode.pm b/ext/B/B/Bytecode.pm index bea023a038..54d7c533c8 100644 --- a/ext/B/B/Bytecode.pm +++ b/ext/B/B/Bytecode.pm @@ -312,15 +312,6 @@ sub B::BINOP::bytecode { } } -sub B::LISTOP::bytecode { - my $op = shift; - my $children = $op->children unless $strip_syntree; - $op->B::BINOP::bytecode; - if (($op->type || !$compress_nullops) && !$strip_syntree) { - asm "op_children $children\n"; - } -} - sub B::LOOP::bytecode { my $op = shift; my $redoopix = $op->redoop->objix; diff --git a/ext/B/B/C.pm b/ext/B/B/C.pm index dac9417806..54fa46fb4f 100644 --- a/ext/B/B/C.pm +++ b/ext/B/B/C.pm @@ -225,11 +225,10 @@ sub B::LISTOP::save { my ($op, $level) = @_; my $sym = objsym($op); return $sym if defined $sym; - $listopsect->add(sprintf("s\\_%x, s\\_%x, NULL, %u, %u, %u, 0x%x, 0x%x, s\\_%x, s\\_%x, %u", + $listopsect->add(sprintf("s\\_%x, s\\_%x, NULL, %u, %u, %u, 0x%x, 0x%x, s\\_%x, s\\_%x", ${$op->next}, ${$op->sibling}, $op->targ, $op->type, $op_seq, $op->flags, - $op->private, ${$op->first}, ${$op->last}, - $op->children)); + $op->private, ${$op->first}, ${$op->last})); my $ix = $listopsect->index; $init->add(sprintf("listop_list[$ix].op_ppaddr = %s;", $op->ppaddr)); savesym($op, "(OP*)&listop_list[$ix]"); @@ -255,11 +254,11 @@ sub B::LOOP::save { #warn sprintf("LOOP: redoop %s, nextop %s, lastop %s\n", # peekop($op->redoop), peekop($op->nextop), # peekop($op->lastop)); # debug - $loopsect->add(sprintf("s\\_%x, s\\_%x, NULL, %u, %u, %u, 0x%x, 0x%x, s\\_%x, s\\_%x, %u, s\\_%x, s\\_%x, s\\_%x", + $loopsect->add(sprintf("s\\_%x, s\\_%x, NULL, %u, %u, %u, 0x%x, 0x%x, s\\_%x, s\\_%x, s\\_%x, s\\_%x, s\\_%x", ${$op->next}, ${$op->sibling}, $op->targ, $op->type, $op_seq, $op->flags, $op->private, ${$op->first}, ${$op->last}, - $op->children, ${$op->redoop}, ${$op->nextop}, + ${$op->redoop}, ${$op->nextop}, ${$op->lastop})); my $ix = $loopsect->index; $init->add(sprintf("loop_list[$ix].op_ppaddr = %s;", $op->ppaddr)); @@ -351,10 +350,10 @@ sub B::PMOP::save { # pmnext handling is broken in perl itself, I think. Bad op_pmnext # fields aren't noticed in perl's runtime (unless you try reset) but we # segfault when trying to dereference it to find op->op_pmnext->op_type - $pmopsect->add(sprintf("s\\_%x, s\\_%x, NULL, %u, %u, %u, 0x%x, 0x%x, s\\_%x, s\\_%x, %u, %s, %s, 0, 0, 0x%x, 0x%x", + $pmopsect->add(sprintf("s\\_%x, s\\_%x, NULL, %u, %u, %u, 0x%x, 0x%x, s\\_%x, s\\_%x, %s, %s, 0, 0, 0x%x, 0x%x", ${$op->next}, ${$op->sibling}, $op->targ, $op->type, $op_seq, $op->flags, $op->private, - ${$op->first}, ${$op->last}, $op->children, + ${$op->first}, ${$op->last}, $replrootfield, $replstartfield, $op->pmflags, $op->pmpermflags,)); my $pm = sprintf("pmop_list[%d]", $pmopsect->index); diff --git a/ext/B/B/Concise.pm b/ext/B/B/Concise.pm new file mode 100644 index 0000000000..cc894d325f --- /dev/null +++ b/ext/B/B/Concise.pm @@ -0,0 +1,817 @@ +package B::Concise; +# Copyright (C) 2000, 2001 Stephen McCamant. All rights reserved. +# This program is free software; you can redistribute and/or modify it +# under the same terms as Perl itself. + +our $VERSION = "0.51"; +use strict; +use B qw(class ppname main_start main_root main_cv cstring svref_2object + SVf_IOK SVf_NOK SVf_POK OPf_KIDS); + +my %style = + ("terse" => + ["(?(#label =>\n)?)(*( )*)#class (#addr) #name (?([#targ])?) " + . "#svclass~(?((#svaddr))?)~#svval~(?(label \"#coplabel\")?)\n", + "(*( )*)goto #class (#addr)\n", + "#class pp_#name"], + "concise" => + ["#hyphseq2 (*( (x( ;)x))*)<#classsym> " + . "#exname#arg(?([#targarglife])?)~#flags(?(/#private)?)(x(;~->#next)x)\n", + " (*( )*) goto #seq\n", + "(?(<#seq>)?)#exname#arg(?([#targarglife])?)"], + "linenoise" => + ["(x(;(*( )*))x)#noise#arg(?([#targarg])?)(x( ;\n)x)", + "gt_#seq ", + "(?(#seq)?)#noise#arg(?([#targarg])?)"], + "debug" => + ["#class (#addr)\n\top_next\t\t#nextaddr\n\top_sibling\t#sibaddr\n\t" + . "op_ppaddr\tPL_ppaddr[OP_#NAME]\n\top_type\t\t#typenum\n\top_seq\t\t" + . "#seqnum\n\top_flags\t#flagval\n\top_private\t#privval\n" + . "(?(\top_first\t#firstaddr\n)?)(?(\top_last\t\t#lastaddr\n)?)" + . "(?(\top_sv\t\t#svaddr\n)?)", + " GOTO #addr\n", + "#addr"], + "env" => [$ENV{B_CONCISE_FORMAT}, $ENV{B_CONCISE_GOTO_FORMAT}, + $ENV{B_CONCISE_TREE_FORMAT}], + ); + +my($format, $gotofmt, $treefmt); +my $curcv; +my($seq_base, $cop_seq_base); + +sub concise_cv { + my ($order, $cvref) = @_; + my $cv = svref_2object($cvref); + $curcv = $cv; + if ($order eq "exec") { + walk_exec($cv->START); + } elsif ($order eq "basic") { + walk_topdown($cv->ROOT, sub { $_[0]->concise($_[1]) }, 0); + } else { + print tree($cv->ROOT, 0) + } +} + +my $start_sym = "\e(0"; # "\cN" sometimes also works +my $end_sym = "\e(B"; # "\cO" respectively + +my @tree_decorations = + ([" ", "--", "+-", "|-", "| ", "`-", "-", 1], + [" ", "-", "+", "+", "|", "`", "", 0], + [" ", map("$start_sym$_$end_sym", "qq", "wq", "tq", "x ", "mq", "q"), 1], + [" ", map("$start_sym$_$end_sym", "q", "w", "t", "x", "m"), "", 0], + ); +my $tree_style = 0; + +my $base = 36; +my $big_endian = 1; + +my $order = "basic"; + +sub compile { + my @options = grep(/^-/, @_); + my @args = grep(!/^-/, @_); + my $do_main = 0; + ($format, $gotofmt, $treefmt) = @{$style{"concise"}}; + for my $o (@options) { + if ($o eq "-basic") { + $order = "basic"; + } elsif ($o eq "-exec") { + $order = "exec"; + } elsif ($o eq "-tree") { + $order = "tree"; + } elsif ($o eq "-compact") { + $tree_style |= 1; + } elsif ($o eq "-loose") { + $tree_style &= ~1; + } elsif ($o eq "-vt") { + $tree_style |= 2; + } elsif ($o eq "-ascii") { + $tree_style &= ~2; + } elsif ($o eq "-main") { + $do_main = 1; + } elsif ($o =~ /^-base(\d+)$/) { + $base = $1; + } elsif ($o eq "-bigendian") { + $big_endian = 1; + } elsif ($o eq "-littleendian") { + $big_endian = 0; + } elsif (exists $style{substr($o, 1)}) { + ($format, $gotofmt, $treefmt) = @{$style{substr($o, 1)}}; + } else { + warn "Option $o unrecognized"; + } + } + if (@args) { + return sub { + for my $objname (@args) { + $objname = "main::" . $objname unless $objname =~ /::/; + eval "concise_cv(\$order, \\&$objname)"; + die "concise_cv($order, \\&$objname) failed: $@" if $@; + } + } + } + if (!@args or $do_main) { + if ($order eq "exec") { + return sub { return if class(main_start) eq "NULL"; + $curcv = main_cv; + walk_exec(main_start) } + } elsif ($order eq "tree") { + return sub { return if class(main_root) eq "NULL"; + $curcv = main_cv; + print tree(main_root, 0) } + } elsif ($order eq "basic") { + return sub { return if class(main_root) eq "NULL"; + $curcv = main_cv; + walk_topdown(main_root, + sub { $_[0]->concise($_[1]) }, 0); } + } + } +} + +my %labels; +my $lastnext; + +my %opclass = ('OP' => "0", 'UNOP' => "1", 'BINOP' => "2", 'LOGOP' => "|", + 'LISTOP' => "@", 'PMOP' => "/", 'SVOP' => "\$", 'GVOP' => "*", + 'PVOP' => '"', 'LOOP' => "{", 'COP' => ";"); + +my @linenoise = + qw'# () sc ( @? 1 $* gv *{ m$ m@ m% m? p/ *$ $ $# & a& pt \\ s\\ rf bl + ` *? <> ?? ?/ r/ c/ // qr s/ /c y/ = @= C sC Cp sp df un BM po +1 +I + -1 -I 1+ I+ 1- I- ** * i* / i/ %$ i% x + i+ - i- . " << >> < i< + > i> <= i, >= i. == i= != i! s, s. s= s! s? b& b^ b| -0 -i + ! ~ a2 si cs rd sr e^ lg sq in %x %o ab le ss ve ix ri sf FL od ch cy + uf lf uc lc qm @ [f [ @[ eh vl ky dl ex % ${ @{ uk pk st jn ) )[ a@ + a% sl +] -] [- [+ so rv GS GW MS MW .. f. .f && || ^^ ?: &= |= -> s{ s} + v} ca wa di rs ;; ; ;d }{ { } {} f{ it {l l} rt }l }n }r dm }g }e ^o + ^c ^| ^# um bm t~ u~ ~d DB db ^s se ^g ^r {w }w pf pr ^O ^K ^R ^W ^d ^v + ^e ^t ^k t. fc ic fl .s .p .b .c .l .a .h g1 s1 g2 s2 ?. l? -R -W -X -r + -w -x -e -o -O -z -s -M -A -C -S -c -b -f -d -p -l -u -g -k -t -T -B cd + co cr u. cm ut r. l@ s@ r@ mD uD oD rD tD sD wD cD f$ w$ p$ sh e$ k$ g3 + g4 s4 g5 s5 T@ C@ L@ G@ A@ S@ Hg Hc Hr Hw Mg Mc Ms Mr Sg Sc So rq do {e + e} {t t} g6 G6 6e g7 G7 7e g8 G8 8e g9 G9 9e 6s 7s 8s 9s 6E 7E 8E 9E Pn + Pu GP SP EP Gn Gg GG SG EG g0 c$ lk t$ ;s n>'; + +my $chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + +sub op_flags { + my($x) = @_; + my(@v); + push @v, "v" if ($x & 3) == 1; + push @v, "s" if ($x & 3) == 2; + push @v, "l" if ($x & 3) == 3; + push @v, "K" if $x & 4; + push @v, "P" if $x & 8; + push @v, "R" if $x & 16; + push @v, "M" if $x & 32; + push @v, "S" if $x & 64; + push @v, "*" if $x & 128; + return join("", @v); +} + +sub base_n { + my $x = shift; + return "-" . base_n(-$x) if $x < 0; + my $str = ""; + do { $str .= substr($chars, $x % $base, 1) } while $x = int($x / $base); + $str = reverse $str if $big_endian; + return $str; +} + +sub seq { return $_[0]->seq ? base_n($_[0]->seq - $seq_base) : "-" } + +sub walk_topdown { + my($op, $sub, $level) = @_; + $sub->($op, $level); + if ($op->flags & OPf_KIDS) { + for (my $kid = $op->first; $$kid; $kid = $kid->sibling) { + walk_topdown($kid, $sub, $level + 1); + } + } + if (class($op) eq "PMOP" and $ {$op->pmreplroot}) { + walk_topdown($op->pmreplroot, $sub, $level + 1); + } +} + +sub walklines { + my($ar, $level) = @_; + for my $l (@$ar) { + if (ref($l) eq "ARRAY") { + walklines($l, $level + 1); + } else { + $l->concise($level); + } + } +} + +sub walk_exec { + my($top, $level) = @_; + my %opsseen; + my @lines; + my @todo = ([$top, \@lines]); + while (@todo and my($op, $targ) = @{shift @todo}) { + for (; $$op; $op = $op->next) { + last if $opsseen{$$op}++; + push @$targ, $op; + my $name = $op->name; + if ($name + =~ /^(or|and|(map|grep)while|entertry|range|cond_expr)$/) { + my $ar = []; + push @$targ, $ar; + push @todo, [$op->other, $ar]; + } elsif ($name eq "subst" and $ {$op->pmreplstart}) { + my $ar = []; + push @$targ, $ar; + push @todo, [$op->pmreplstart, $ar]; + } elsif ($name =~ /^enter(loop|iter)$/) { + $labels{$op->nextop->seq} = "NEXT"; + $labels{$op->lastop->seq} = "LAST"; + $labels{$op->redoop->seq} = "REDO"; + } + } + } + walklines(\@lines, 0); +} + +sub fmt_line { + my($hr, $fmt, $level) = @_; + my $text = $fmt; + $text =~ s/\(\?\(([^\#]*?)\#(\w+)([^\#]*?)\)\?\)/ + $hr->{$2} ? $1.$hr->{$2}.$3 : ""/eg; + $text =~ s/\(x\((.*?);(.*?)\)x\)/$order eq "exec" ? $1 : $2/egs; + $text =~ s/\(\*\(([^;]*?)\)\*\)/$1 x $level/egs; + $text =~ s/\(\*\((.*?);(.*?)\)\*\)/$1 x ($level - 1) . $2 x ($level>0)/egs; + $text =~ s/#([a-zA-Z]+)(\d+)/sprintf("%-$2s", $hr->{$1})/eg; + $text =~ s/#([a-zA-Z]+)/$hr->{$1}/eg; + $text =~ s/[ \t]*~+[ \t]*/ /g; + return $text; +} + +my %priv; +$priv{$_}{128} = "LVINTRO" + for ("pos", "substr", "vec", "threadsv", "gvsv", "rv2sv", "rv2hv", "rv2gv", + "rv2av", "rv2arylen", "aelem", "helem", "aslice", "hslice", "padsv", + "padav", "padhv"); +$priv{$_}{64} = "REFC" for ("leave", "leavesub", "leavesublv", "leavewrite"); +$priv{"aassign"}{64} = "COMMON"; +$priv{"aassign"}{32} = "PHASH"; +$priv{"sassign"}{64} = "BKWARD"; +$priv{$_}{64} = "RTIME" for ("match", "subst", "substcont"); +@{$priv{"trans"}}{1,2,4,8,16,64} = ("UTF", "IDENT", "SQUASH", "DEL", + "COMPL", "GROWS"); +$priv{"repeat"}{64} = "DOLIST"; +$priv{"leaveloop"}{64} = "CONT"; +@{$priv{$_}}{32,64,96} = ("DREFAV", "DREFHV", "DREFSV") + for ("entersub", map("rv2${_}v", "a", "s", "h", "g"), "aelem", "helem"); +$priv{"entersub"}{16} = "DBG"; +$priv{"entersub"}{32} = "TARG"; +@{$priv{$_}}{4,8,128} = ("INARGS","AMPER","NO()") for ("entersub", "rv2cv"); +$priv{"gv"}{32} = "EARLYCV"; +$priv{"aelem"}{16} = $priv{"helem"}{16} = "LVDEFER"; +$priv{$_}{16} = "OURINTR" for ("gvsv", "rv2sv", "rv2av", "rv2hv", "r2gv"); +$priv{$_}{16} = "TARGMY" + for (map(($_,"s$_"),"chop", "chomp"), + map(($_,"i_$_"), "postinc", "postdec", "multiply", "divide", "modulo", + "add", "subtract", "negate"), "pow", "concat", "stringify", + "left_shift", "right_shift", "bit_and", "bit_xor", "bit_or", + "complement", "atan2", "sin", "cos", "rand", "exp", "log", "sqrt", + "int", "hex", "oct", "abs", "length", "index", "rindex", "sprintf", + "ord", "chr", "crypt", "quotemeta", "join", "push", "unshift", "flock", + "chdir", "chown", "chroot", "unlink", "chmod", "utime", "rename", + "link", "symlink", "mkdir", "rmdir", "wait", "waitpid", "system", + "exec", "kill", "getppid", "getpgrp", "setpgrp", "getpriority", + "setpriority", "time", "sleep"); +@{$priv{"const"}}{8,16,32,64,128} = ("STRICT","ENTERED", "$[", "BARE", "WARN"); +$priv{"flip"}{64} = $priv{"flop"}{64} = "LINENUM"; +$priv{"list"}{64} = "GUESSED"; +$priv{"delete"}{64} = "SLICE"; +$priv{"exists"}{64} = "SUB"; +$priv{$_}{64} = "LOCALE" + for ("sort", "prtf", "sprintf", "slt", "sle", "seq", "sne", "sgt", "sge", + "scmp", "lc", "uc", "lcfirst", "ucfirst"); +@{$priv{"sort"}}{1,2,4} = ("NUM", "INT", "REV"); +$priv{"threadsv"}{64} = "SVREFd"; +$priv{$_}{16} = "INBIN" for ("open", "backtick"); +$priv{$_}{32} = "INCR" for ("open", "backtick"); +$priv{$_}{64} = "OUTBIN" for ("open", "backtick"); +$priv{$_}{128} = "OUTCR" for ("open", "backtick"); +$priv{"exit"}{128} = "VMS"; + +sub private_flags { + my($name, $x) = @_; + my @s; + for my $flag (128, 96, 64, 32, 16, 8, 4, 2, 1) { + if ($priv{$name}{$flag} and $x & $flag and $x >= $flag) { + $x -= $flag; + push @s, $priv{$name}{$flag}; + } + } + push @s, $x if $x; + return join(",", @s); +} + +sub concise_op { + my ($op, $level, $format) = @_; + my %h; + $h{exname} = $h{name} = $op->name; + $h{NAME} = uc $h{name}; + $h{class} = class($op); + $h{extarg} = $h{targ} = $op->targ; + $h{extarg} = "" unless $h{extarg}; + if ($h{name} eq "null" and $h{targ}) { + $h{exname} = "ex-" . substr(ppname($h{targ}), 3); + $h{extarg} = ""; + } elsif ($h{targ}) { + my $padname = (($curcv->PADLIST->ARRAY)[0]->ARRAY)[$h{targ}]; + if (defined $padname and class($padname) ne "SPECIAL") { + $h{targarg} = $padname->PV; + my $intro = $padname->NVX - $cop_seq_base; + my $finish = int($padname->IVX) - $cop_seq_base; + $finish = "end" if $finish == 999999999 - $cop_seq_base; + $h{targarglife} = "$h{targarg}:$intro,$finish"; + } else { + $h{targarglife} = $h{targarg} = "t" . $h{targ}; + } + } + $h{arg} = ""; + $h{svclass} = $h{svaddr} = $h{svval} = ""; + if ($h{class} eq "PMOP") { + my $precomp = $op->precomp; + $precomp = defined($precomp) ? "/$precomp/" : ""; + my $pmreplstart; + if ($ {$op->pmreplstart}) { + undef $lastnext; + $pmreplstart = "replstart->" . seq($op->pmreplstart); + $h{arg} = "(" . join(" ", $precomp, $pmreplstart) . ")"; + } else { + $h{arg} = "($precomp)"; + } + } elsif ($h{class} eq "PVOP" and $h{name} ne "trans") { + $h{arg} = '("' . $op->pv . '")'; + $h{svval} = '"' . $op->pv . '"'; + } elsif ($h{class} eq "COP") { + my $label = $op->label; + $h{coplabel} = $label; + $label = $label ? "$label: " : ""; + my $loc = $op->file; + $loc =~ s[.*/][]; + $loc .= ":" . $op->line; + my($stash, $cseq) = ($op->stash->NAME, $op->cop_seq - $cop_seq_base); + my $arybase = $op->arybase; + $arybase = $arybase ? ' $[=' . $arybase : ""; + $h{arg} = "($label$stash $cseq $loc$arybase)"; + } elsif ($h{class} eq "LOOP") { + $h{arg} = "(next->" . seq($op->nextop) . " last->" . seq($op->lastop) + . " redo->" . seq($op->redoop) . ")"; + } elsif ($h{class} eq "LOGOP") { + undef $lastnext; + $h{arg} = "(other->" . seq($op->other) . ")"; + } elsif ($h{class} eq "SVOP") { + my $sv = $op->sv; + $h{svclass} = class($sv); + $h{svaddr} = sprintf("%#x", $$sv); + if ($h{svclass} eq "GV") { + my $gv = $sv; + my $stash = $gv->STASH->NAME; + if ($stash eq "main") { + $stash = ""; + } else { + $stash = $stash . "::"; + } + $h{arg} = "(*$stash" . $gv->NAME . ")"; + $h{svval} = "*$stash" . $gv->NAME; + } else { + while (class($sv) eq "RV") { + $h{svval} .= "\\"; + $sv = $sv->RV; + } + if (class($sv) eq "SPECIAL") { + $h{svval} = ["Null", "sv_undef", "sv_yes", "sv_no"]->[$$sv]; + } elsif ($sv->FLAGS & SVf_NOK) { + $h{svval} = $sv->NV; + } elsif ($sv->FLAGS & SVf_IOK) { + $h{svval} = $sv->IV; + } elsif ($sv->FLAGS & SVf_POK) { + $h{svval} = cstring($sv->PV); + } + $h{arg} = "($h{svclass} $h{svval})"; + } + } + $h{seq} = $h{hyphseq} = seq($op); + $h{seq} = "" if $h{seq} eq "-"; + $h{seqnum} = $op->seq; + $h{next} = $op->next; + $h{next} = (class($h{next}) eq "NULL") ? "(end)" : seq($h{next}); + $h{nextaddr} = sprintf("%#x", $ {$op->next}); + $h{sibaddr} = sprintf("%#x", $ {$op->sibling}); + $h{firstaddr} = sprintf("%#x", $ {$op->first}) if $op->can("first"); + $h{lastaddr} = sprintf("%#x", $ {$op->last}) if $op->can("last"); + + $h{classsym} = $opclass{$h{class}}; + $h{flagval} = $op->flags; + $h{flags} = op_flags($op->flags); + $h{privval} = $op->private; + $h{private} = private_flags($h{name}, $op->private); + $h{addr} = sprintf("%#x", $$op); + $h{label} = $labels{$op->seq}; + $h{typenum} = $op->type; + $h{noise} = $linenoise[$op->type]; + return fmt_line(\%h, $format, $level); +} + +sub B::OP::concise { + my($op, $level) = @_; + if ($order eq "exec" and $lastnext and $$lastnext != $$op) { + my $h = {"seq" => seq($lastnext), "class" => class($lastnext), + "addr" => sprintf("%#x", $$lastnext)}; + print fmt_line($h, $gotofmt, $level+1); + } + $lastnext = $op->next; + print concise_op($op, $level, $format); +} + +sub tree { + my $op = shift; + my $level = shift; + my $style = $tree_decorations[$tree_style]; + my($space, $single, $kids, $kid, $nokid, $last, $lead, $size) = @$style; + my $name = concise_op($op, $level, $treefmt); + if (not $op->flags & OPf_KIDS) { + return $name . "\n"; + } + my @lines; + for (my $kid = $op->first; $$kid; $kid = $kid->sibling) { + push @lines, tree($kid, $level+1); + } + my $i; + for ($i = $#lines; substr($lines[$i], 0, 1) eq " "; $i--) { + $lines[$i] = $space . $lines[$i]; + } + if ($i > 0) { + $lines[$i] = $last . $lines[$i]; + while ($i-- > 1) { + if (substr($lines[$i], 0, 1) eq " ") { + $lines[$i] = $nokid . $lines[$i]; + } else { + $lines[$i] = $kid . $lines[$i]; + } + } + $lines[$i] = $kids . $lines[$i]; + } else { + $lines[0] = $single . $lines[0]; + } + return("$name$lead" . shift @lines, + map(" " x (length($name)+$size) . $_, @lines)); +} + +# This is a bit of a hack; the 2 and 15 were determined empirically. +# These need to stay the last things in the module. +$cop_seq_base = svref_2object(eval 'sub{0;}')->START->cop_seq + 2; +$seq_base = svref_2object(eval 'sub{}')->START->seq + 15; + +1; + +__END__ + +=head1 NAME + +B::Concise - Walk Perl syntax tree, printing concise info about ops + +=head1 SYNOPSIS + + perl -MO=Concise[,OPTIONS] foo.pl + +=head1 DESCRIPTION + +This compiler backend prints the internal OPs of a Perl program's syntax +tree in one of several space-efficient text formats suitable for debugging +the inner workings of perl or other compiler backends. It can print OPs in +the order they appear in the OP tree, in the order they will execute, or +in a text approximation to their tree structure, and the format of the +information displyed is customizable. Its function is similar to that of +perl's B<-Dx> debugging flag or the B module, but it is more +sophisticated and flexible. + +=head1 OPTIONS + +Arguments that don't start with a hyphen are taken to be the names of +subroutines to print the OPs of; if no such functions are specified, the +main body of the program (outside any subroutines, and not including use'd +or require'd files) is printed. + +=over 4 + +=item B<-basic> + +Print OPs in the order they appear in the OP tree (a preorder +traversal, starting at the root). The indentation of each OP shows its +level in the tree. This mode is the default, so the flag is included +simply for completeness. + +=item B<-exec> + +Print OPs in the order they would normally execute (for the majority +of constructs this is a postorder traversal of the tree, ending at the +root). In most cases the OP that usually follows a given OP will +appear directly below it; alternate paths are shown by indentation. In +cases like loops when control jumps out of a linear path, a 'goto' +line is generated. + +=item B<-tree> + +Print OPs in a text approximation of a tree, with the root of the tree +at the left and 'left-to-right' order of children transformed into +'top-to-bottom'. Because this mode grows both to the right and down, +it isn't suitable for large programs (unless you have a very wide +terminal). + +=item B<-compact> + +Use a tree format in which the minimum amount of space is used for the +lines connecting nodes (one character in most cases). This squeezes out +a few precious columns of screen real estate. + +=item B<-loose> + +Use a tree format that uses longer edges to separate OP nodes. This format +tends to look better than the compact one, especially in ASCII, and is +the default. + +=item B<-vt> + +Use tree connecting characters drawn from the VT100 line-drawing set. +This looks better if your terminal supports it. + +=item B<-ascii> + +Draw the tree with standard ASCII characters like C<+> and C<|>. These don't +look as clean as the VT100 characters, but they'll work with almost any +terminal (or the horizontal scrolling mode of less(1)) and are suitable +for text documentation or email. This is the default. + +=item B<-main> + +Include the main program in the output, even if subroutines were also +specified. + +=item B<-base>I + +Print OP sequence numbers in base I. If I is greater than 10, the +digit for 11 will be 'a', and so on. If I is greater than 36, the digit +for 37 will be 'A', and so on until 62. Values greater than 62 are not +currently supported. The default is 36. + +=item B<-bigendian> + +Print sequence numbers with the most significant digit first. This is the +usual convention for Arabic numerals, and the default. + +=item B<-littleendian> + +Print seqence numbers with the least significant digit first. + +=item B<-concise> + +Use the author's favorite set of formatting conventions. This is the +default, of course. + +=item B<-terse> + +Use formatting conventions that emulate the ouput of B. The +basic mode is almost indistinguishable from the real B, and the +exec mode looks very similar, but is in a more logical order and lacks +curly brackets. B doesn't have a tree mode, so the tree mode +is only vaguely reminiscient of B. + +=item B<-linenoise> + +Use formatting conventions in which the name of each OP, rather than being +written out in full, is represented by a one- or two-character abbreviation. +This is mainly a joke. + +=item B<-debug> + +Use formatting conventions reminiscient of B; these aren't +very concise at all. + +=item B<-env> + +Use formatting conventions read from the environment variables +C, C, and C. + +=back + +=head1 FORMATTING SPECIFICATIONS + +For each general style ('concise', 'terse', 'linenoise', etc.) there are +three specifications: one of how OPs should appear in the basic or exec +modes, one of how 'goto' lines should appear (these occur in the exec +mode only), and one of how nodes should appear in tree mode. Each has the +same format, described below. Any text that doesn't match a special +pattern is copied verbatim. + +=over 4 + +=item B<(x(>IB<;>IB<)x)> + +Generates I in exec mode, or I in basic mode. + +=item B<(*(>IB<)*)> + +Generates one copy of I for each indentation level. + +=item B<(*(>IB<;>IB<)*)> + +Generates one fewer copies of I than the indentation level, followed +by one copy of I if the indentation level is more than 0. + +=item B<(?(>IB<#>IIB<)?)> + +If the value of I is true (not empty or zero), generates the +value of I surrounded by I and I, otherwise +nothing. + +=item B<#>I + +Generates the value of the variable I. + +=item B<#>II + +Generates the value of I, left jutified to fill I spaces. + +=item B<~> + +Any number of tildes and surrounding whitespace will be collapsed to +a single space. + +=back + +The following variables are recognized: + +=over 4 + +=item B<#addr> + +The address of the OP, in hexidecimal. + +=item B<#arg> + +The OP-specific information of the OP (such as the SV for an SVOP, the +non-local exit pointers for a LOOP, etc.) enclosed in paretheses. + +=item B<#class> + +The B-determined class of the OP, in all caps. + +=item B<#classym> + +A single symbol abbreviating the class of the OP. + +=item B<#coplabel> + +The label of the statement or block the OP is the start of, if any. + +=item B<#exname> + +The name of the OP, or 'ex-foo' if the OP is a null that used to be a foo. + +=item B<#extarg> + +The target of the OP, or nothing for a nulled OP. + +=item B<#firstaddr> + +The address of the OP's first child, in hexidecimal. + +=item B<#flags> + +The OP's flags, abbreviated as a series of symbols. + +=item B<#flagval> + +The numeric value of the OP's flags. + +=item B<#hyphenseq> + +The sequence number of the OP, or a hyphen if it doesn't have one. + +=item B<#label> + +'NEXT', 'LAST', or 'REDO' if the OP is a target of one of those in exec +mode, or empty otherwise. + +=item B<#lastaddr> + +The address of the OP's last child, in hexidecimal. + +=item B<#name> + +The OP's name. + +=item B<#NAME> + +The OP's name, in all caps. + +=item B<#next> + +The sequence number of the OP's next OP. + +=item B<#nextaddr> + +The address of the OP's next OP, in hexidecimal. + +=item B<#noise> + +The two-character abbreviation for the OP's name. + +=item B<#private> + +The OP's private flags, rendered with abbreviated names if possible. + +=item B<#privval> + +The numeric value of the OP's private flags. + +=item B<#seq> + +The sequence number of the OP. + +=item B<#seqnum> + +The real sequence number of the OP, as a regular number and not adjusted +to be relative to the start of the real program. (This will generally be +a fairly large number because all of B is compiled before +your program is). + +=item B<#sibaddr> + +The address of the OP's next youngest sibling, in hexidecimal. + +=item B<#svaddr> + +The address of the OP's SV, if it has an SV, in hexidecimal. + +=item B<#svclass> + +The class of the OP's SV, if it has one, in all caps (e.g., 'IV'). + +=item B<#svval> + +The value of the OP's SV, if it has one, in a short human-readable format. + +=item B<#targ> + +The numeric value of the OP's targ. + +=item B<#targarg> + +The name of the variable the OP's targ refers to, if any, otherwise the +letter t followed by the OP's targ in decimal. + +=item B<#targarglife> + +Same as B<#targarg>, but followed by the COP sequence numbers that delimit +the variable's lifetime (or 'end' for a variable in an open scope) for a +variable. + +=item B<#typenum> + +The numeric value of the OP's type, in decimal. + +=back + +=head1 ABBREVIATIONS + +=head2 OP flags abbreviations + + v OPf_WANT_VOID Want nothing (void context) + s OPf_WANT_SCALAR Want single value (scalar context) + l OPf_WANT_LIST Want list of any length (list context) + K OPf_KIDS There is a firstborn child. + P OPf_PARENS This operator was parenthesized. + (Or block needs explicit scope entry.) + R OPf_REF Certified reference. + (Return container, not containee). + M OPf_MOD Will modify (lvalue). + S OPf_STACKED Some arg is arriving on the stack. + * OPf_SPECIAL Do something weird for this op (see op.h) + +=head2 OP class abbreviations + + 0 OP (aka BASEOP) An OP with no children + 1 UNOP An OP with one child + 2 BINOP An OP with two children + | LOGOP A control branch OP + @ LISTOP An OP that could have lots of children + / PMOP An OP with a regular expression + $ SVOP An OP with an SV + " PVOP An OP with a string + { LOOP An OP that holds pointers for a loop + ; COP An OP that marks the start of a statement + +=head1 AUTHOR + +Stephen McCamant, C + +=cut diff --git a/ext/ByteLoader/byterun.c b/ext/ByteLoader/byterun.c index 3e12790fb0..71cd8aa084 100644 --- a/ext/ByteLoader/byterun.c +++ b/ext/ByteLoader/byterun.c @@ -719,196 +719,189 @@ byterun(pTHXo_ register struct byteloader_state *bstate) cLOGOP->op_other = arg; break; } - case INSN_OP_CHILDREN: /* 94 */ - { - U32 arg; - BGET_U32(arg); - cLISTOP->op_children = arg; - break; - } - case INSN_OP_PMREPLROOT: /* 95 */ + case INSN_OP_PMREPLROOT: /* 94 */ { opindex arg; BGET_opindex(arg); cPMOP->op_pmreplroot = arg; break; } - case INSN_OP_PMREPLROOTGV: /* 96 */ + case INSN_OP_PMREPLROOTGV: /* 95 */ { svindex arg; BGET_svindex(arg); *(SV**)&cPMOP->op_pmreplroot = arg; break; } - case INSN_OP_PMREPLSTART: /* 97 */ + case INSN_OP_PMREPLSTART: /* 96 */ { opindex arg; BGET_opindex(arg); cPMOP->op_pmreplstart = arg; break; } - case INSN_OP_PMNEXT: /* 98 */ + case INSN_OP_PMNEXT: /* 97 */ { opindex arg; BGET_opindex(arg); *(OP**)&cPMOP->op_pmnext = arg; break; } - case INSN_PREGCOMP: /* 99 */ + case INSN_PREGCOMP: /* 98 */ { pvcontents arg; BGET_pvcontents(arg); BSET_pregcomp(PL_op, arg); break; } - case INSN_OP_PMFLAGS: /* 100 */ + case INSN_OP_PMFLAGS: /* 99 */ { U16 arg; BGET_U16(arg); cPMOP->op_pmflags = arg; break; } - case INSN_OP_PMPERMFLAGS: /* 101 */ + case INSN_OP_PMPERMFLAGS: /* 100 */ { U16 arg; BGET_U16(arg); cPMOP->op_pmpermflags = arg; break; } - case INSN_OP_SV: /* 102 */ + case INSN_OP_SV: /* 101 */ { svindex arg; BGET_svindex(arg); cSVOP->op_sv = arg; break; } - case INSN_OP_PADIX: /* 103 */ + case INSN_OP_PADIX: /* 102 */ { PADOFFSET arg; BGET_U32(arg); cPADOP->op_padix = arg; break; } - case INSN_OP_PV: /* 104 */ + case INSN_OP_PV: /* 103 */ { pvcontents arg; BGET_pvcontents(arg); cPVOP->op_pv = arg; break; } - case INSN_OP_PV_TR: /* 105 */ + case INSN_OP_PV_TR: /* 104 */ { op_tr_array arg; BGET_op_tr_array(arg); cPVOP->op_pv = arg; break; } - case INSN_OP_REDOOP: /* 106 */ + case INSN_OP_REDOOP: /* 105 */ { opindex arg; BGET_opindex(arg); cLOOP->op_redoop = arg; break; } - case INSN_OP_NEXTOP: /* 107 */ + case INSN_OP_NEXTOP: /* 106 */ { opindex arg; BGET_opindex(arg); cLOOP->op_nextop = arg; break; } - case INSN_OP_LASTOP: /* 108 */ + case INSN_OP_LASTOP: /* 107 */ { opindex arg; BGET_opindex(arg); cLOOP->op_lastop = arg; break; } - case INSN_COP_LABEL: /* 109 */ + case INSN_COP_LABEL: /* 108 */ { pvindex arg; BGET_pvindex(arg); cCOP->cop_label = arg; break; } - case INSN_COP_STASHPV: /* 110 */ + case INSN_COP_STASHPV: /* 109 */ { pvindex arg; BGET_pvindex(arg); BSET_cop_stashpv(cCOP, arg); break; } - case INSN_COP_FILE: /* 111 */ + case INSN_COP_FILE: /* 110 */ { pvindex arg; BGET_pvindex(arg); BSET_cop_file(cCOP, arg); break; } - case INSN_COP_SEQ: /* 112 */ + case INSN_COP_SEQ: /* 111 */ { U32 arg; BGET_U32(arg); cCOP->cop_seq = arg; break; } - case INSN_COP_ARYBASE: /* 113 */ + case INSN_COP_ARYBASE: /* 112 */ { I32 arg; BGET_I32(arg); cCOP->cop_arybase = arg; break; } - case INSN_COP_LINE: /* 114 */ + case INSN_COP_LINE: /* 113 */ { line_t arg; BGET_U16(arg); BSET_cop_line(cCOP, arg); break; } - case INSN_COP_WARNINGS: /* 115 */ + case INSN_COP_WARNINGS: /* 114 */ { svindex arg; BGET_svindex(arg); cCOP->cop_warnings = arg; break; } - case INSN_MAIN_START: /* 116 */ + case INSN_MAIN_START: /* 115 */ { opindex arg; BGET_opindex(arg); PL_main_start = arg; break; } - case INSN_MAIN_ROOT: /* 117 */ + case INSN_MAIN_ROOT: /* 116 */ { opindex arg; BGET_opindex(arg); PL_main_root = arg; break; } - case INSN_CURPAD: /* 118 */ + case INSN_CURPAD: /* 117 */ { svindex arg; BGET_svindex(arg); BSET_curpad(PL_curpad, arg); break; } - case INSN_PUSH_BEGIN: /* 119 */ + case INSN_PUSH_BEGIN: /* 118 */ { svindex arg; BGET_svindex(arg); BSET_push_begin(PL_beginav, arg); break; } - case INSN_PUSH_INIT: /* 120 */ + case INSN_PUSH_INIT: /* 119 */ { svindex arg; BGET_svindex(arg); BSET_push_init(PL_initav, arg); break; } - case INSN_PUSH_END: /* 121 */ + case INSN_PUSH_END: /* 120 */ { svindex arg; BGET_svindex(arg); diff --git a/ext/ByteLoader/byterun.h b/ext/ByteLoader/byterun.h index 1e67b8967e..f074f2d6cf 100644 --- a/ext/ByteLoader/byterun.h +++ b/ext/ByteLoader/byterun.h @@ -122,35 +122,34 @@ enum { INSN_OP_FIRST, /* 91 */ INSN_OP_LAST, /* 92 */ INSN_OP_OTHER, /* 93 */ - INSN_OP_CHILDREN, /* 94 */ - INSN_OP_PMREPLROOT, /* 95 */ - INSN_OP_PMREPLROOTGV, /* 96 */ - INSN_OP_PMREPLSTART, /* 97 */ - INSN_OP_PMNEXT, /* 98 */ - INSN_PREGCOMP, /* 99 */ - INSN_OP_PMFLAGS, /* 100 */ - INSN_OP_PMPERMFLAGS, /* 101 */ - INSN_OP_SV, /* 102 */ - INSN_OP_PADIX, /* 103 */ - INSN_OP_PV, /* 104 */ - INSN_OP_PV_TR, /* 105 */ - INSN_OP_REDOOP, /* 106 */ - INSN_OP_NEXTOP, /* 107 */ - INSN_OP_LASTOP, /* 108 */ - INSN_COP_LABEL, /* 109 */ - INSN_COP_STASHPV, /* 110 */ - INSN_COP_FILE, /* 111 */ - INSN_COP_SEQ, /* 112 */ - INSN_COP_ARYBASE, /* 113 */ - INSN_COP_LINE, /* 114 */ - INSN_COP_WARNINGS, /* 115 */ - INSN_MAIN_START, /* 116 */ - INSN_MAIN_ROOT, /* 117 */ - INSN_CURPAD, /* 118 */ - INSN_PUSH_BEGIN, /* 119 */ - INSN_PUSH_INIT, /* 120 */ - INSN_PUSH_END, /* 121 */ - MAX_INSN = 121 + INSN_OP_PMREPLROOT, /* 94 */ + INSN_OP_PMREPLROOTGV, /* 95 */ + INSN_OP_PMREPLSTART, /* 96 */ + INSN_OP_PMNEXT, /* 97 */ + INSN_PREGCOMP, /* 98 */ + INSN_OP_PMFLAGS, /* 99 */ + INSN_OP_PMPERMFLAGS, /* 100 */ + INSN_OP_SV, /* 101 */ + INSN_OP_PADIX, /* 102 */ + INSN_OP_PV, /* 103 */ + INSN_OP_PV_TR, /* 104 */ + INSN_OP_REDOOP, /* 105 */ + INSN_OP_NEXTOP, /* 106 */ + INSN_OP_LASTOP, /* 107 */ + INSN_COP_LABEL, /* 108 */ + INSN_COP_STASHPV, /* 109 */ + INSN_COP_FILE, /* 110 */ + INSN_COP_SEQ, /* 111 */ + INSN_COP_ARYBASE, /* 112 */ + INSN_COP_LINE, /* 113 */ + INSN_COP_WARNINGS, /* 114 */ + INSN_MAIN_START, /* 115 */ + INSN_MAIN_ROOT, /* 116 */ + INSN_CURPAD, /* 117 */ + INSN_PUSH_BEGIN, /* 118 */ + INSN_PUSH_INIT, /* 119 */ + INSN_PUSH_END, /* 120 */ + MAX_INSN = 120 }; enum { diff --git a/ext/DynaLoader/dl_aix.xs b/ext/DynaLoader/dl_aix.xs index 89b84396ef..b2c92d8070 100644 --- a/ext/DynaLoader/dl_aix.xs +++ b/ext/DynaLoader/dl_aix.xs @@ -305,7 +305,7 @@ static void caterr(char *s) p++; switch(atoi(s)) { case L_ERROR_TOOMANY: - strcat(errbuf, "to many errors"); + strcat(errbuf, "too many errors"); break; case L_ERROR_NOLIB: strcat(errbuf, "can't load library"); diff --git a/ext/DynaLoader/dl_dllload.xs b/ext/DynaLoader/dl_dllload.xs new file mode 100644 index 0000000000..fe6957ac20 --- /dev/null +++ b/ext/DynaLoader/dl_dllload.xs @@ -0,0 +1,189 @@ +/* dl_dllload.xs + * + * Platform: OS/390, possibly others that use dllload(),dllfree() (VM/ESA?). + * Authors: John Goodyear && Peter Prymmer + * Created: 28 October 2000 + * Modified: + * 16 January 2001 - based loosely on dl_dlopen.xs. + */ + +/* Porting notes: + + OS/390 Dynamic Loading functions: + + dllload + ------- + dllhandle * dllload(const char *dllName) + + This function takes the name of a dynamic object file and returns + a descriptor which can be used by dlllqueryfn() and/or dllqueryvar() + later. If dllName contains a slash, it is used to locate the dll. + If not then the LIBPATH environment variable is used to + search for the requested dll (at least within the HFS). + It returns NULL on error and sets errno. + + dllfree + ------- + int dllfree(dllhandle *handle); + + dllfree() decrements the load count for the dll and frees + it if the count is 0. It returns zero on success, and + non-zero on failure. + + dllqueryfn && dllqueryvar + ------------------------- + void (* dllqueryfn(dllhandle *handle, const char *function))(); + void * dllqueryvar(dllhandle *handle, const char *symbol); + + dllqueryfn() takes the handle returned from dllload() and the name + of a function to get the address of. If the function was found + a pointer is returned, otherwise NULL is returned. + + dllqueryvar() takes the handle returned from dllload() and the name + of a symbol to get the address of. If the variable was found a + pointer is returned, otherwise NULL is returned. + + The XS dl_find_symbol() first calls dllqueryfn(). If it fails + dlqueryvar() is then called. + + strerror + -------- + char * strerror(int errno) + + Returns a null-terminated string which describes the last error + that occurred with other functions (not necessarily unique to + dll loading). + + Return Types + ============ + In this implementation the two functions, dl_load_file() && + dl_find_symbol(), return (void *). This is primarily because the + dlopen() && dlsym() style dynamic linker calls return (void *). + We suspect that casting to (void *) may be easier than teaching XS + typemaps about the (dllhandle *) type. + + Dealing with Error Messages + =========================== + In order to make the handling of dynamic linking errors as generic as + possible you should store any error messages associated with your + implementation with the StoreError function. + + In the case of OS/390 the function strerror(errno) returns the error + message associated with the last dynamic link error. As the S/390 + dynamic linker functions dllload() && dllqueryvar() both return NULL + on error every call to an S/390 dynamic link routine is coded + like this: + + RETVAL = dllload(filename) ; + if (RETVAL == NULL) + SaveError("%s",strerror(errno)) ; + + Note that SaveError() takes a printf format string. Use a "%s" as + the first parameter if the error may contain any % characters. + + Other comments within the dl_dlopen.xs file may be helpful as well. +*/ + +#include "EXTERN.h" +#include "perl.h" +#include "XSUB.h" + +#include /* the dynamic linker include file for S/390 */ +#include /* strerror() and friends */ + +#include "dlutils.c" /* SaveError() etc */ + +static void +dl_private_init(pTHX) +{ + (void)dl_generic_private_init(aTHX); +} + +MODULE = DynaLoader PACKAGE = DynaLoader + +BOOT: + (void)dl_private_init(aTHX); + + +void * +dl_load_file(filename, flags=0) + char * filename + int flags + PREINIT: + int mode = 0; + CODE: +{ + DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dl_load_file(%s,%x):\n", filename,flags)); + /* add a (void *) dllload(filename) ; cast if needed */ + RETVAL = dllload(filename) ; + DLDEBUG(2,PerlIO_printf(Perl_debug_log, " libref=%lx\n", (unsigned long) RETVAL)); + ST(0) = sv_newmortal() ; + if (RETVAL == NULL) + SaveError(aTHX_ "%s",strerror(errno)) ; + else + sv_setiv( ST(0), PTR2IV(RETVAL)); +} + + +int +dl_unload_file(libref) + void * libref + CODE: + DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dl_unload_file(%lx):\n", PTR2ul(libref))); + /* RETVAL = (dllfree((dllhandle *)libref) == 0 ? 1 : 0); */ + RETVAL = (dllfree(libref) == 0 ? 1 : 0); + if (!RETVAL) + SaveError(aTHX_ "%s", strerror(errno)) ; + DLDEBUG(2,PerlIO_printf(Perl_debug_log, " retval = %d\n", RETVAL)); + OUTPUT: + RETVAL + + +void * +dl_find_symbol(libhandle, symbolname) + void * libhandle + char * symbolname + CODE: + DLDEBUG(2, PerlIO_printf(Perl_debug_log, + "dl_find_symbol(handle=%lx, symbol=%s)\n", + (unsigned long) libhandle, symbolname)); + if((RETVAL = (void*)dllqueryfn(libhandle, symbolname)) == NULL) + RETVAL = dllqueryvar(libhandle, symbolname); + DLDEBUG(2, PerlIO_printf(Perl_debug_log, + " symbolref = %lx\n", (unsigned long) RETVAL)); + ST(0) = sv_newmortal() ; + if (RETVAL == NULL) + SaveError(aTHX_ "%s",strerror(errno)) ; + else + sv_setiv( ST(0), PTR2IV(RETVAL)); + + +void +dl_undef_symbols() + PPCODE: + + + +# These functions should not need changing on any platform: + +void +dl_install_xsub(perl_name, symref, filename="$Package") + char * perl_name + void * symref + char * filename + CODE: + DLDEBUG(2,PerlIO_printf(Perl_debug_log, "dl_install_xsub(name=%s, symref=%lx)\n", + perl_name, (unsigned long) symref)); + ST(0) = sv_2mortal(newRV((SV*)newXS(perl_name, + (void(*)(pTHX_ CV *))symref, + filename))); + + +char * +dl_error() + CODE: + RETVAL = LastError ; + OUTPUT: + RETVAL + +# end. diff --git a/ext/DynaLoader/dl_dlopen.xs b/ext/DynaLoader/dl_dlopen.xs index 350b0d5074..e1b2a82410 100644 --- a/ext/DynaLoader/dl_dlopen.xs +++ b/ext/DynaLoader/dl_dlopen.xs @@ -112,7 +112,7 @@ SaveError("%s",dlerror()) ; Note that SaveError() takes a printf format string. Use a "%s" as - the first parameter if the error may contain and % characters. + the first parameter if the error may contain any % characters. */ diff --git a/ext/Encode/Encode.xs b/ext/Encode/Encode.xs index a7acd88e67..8aa51ff33d 100644 --- a/ext/Encode/Encode.xs +++ b/ext/Encode/Encode.xs @@ -64,12 +64,21 @@ PerlIOEncode_pushed(PerlIO *f, const char *mode,const char *arg,STRLEN len) XPUSHs(sv_2mortal(newSVpvn(arg,len))); PUTBACK; if (perl_call_method("getEncoding",G_SCALAR) != 1) - return -1; + { + /* should never happen */ + Perl_die(aTHX_ "Encode::getEncoding did not return a value"); + return -1; + } SPAGAIN; e->enc = POPs; PUTBACK; if (!SvROK(e->enc)) - return -1; + { + e->enc = Nullsv; + errno = EINVAL; + Perl_warner(aTHX_ WARN_IO, "Cannot find encoding \"%.*s\"", (int) len, arg); + return -1; + } SvREFCNT_inc(e->enc); FREETMPS; LEAVE; @@ -324,7 +333,13 @@ Encode_Define(pTHX_ encode_t *enc) HV *hash = get_hv("Encode::encoding",GV_ADD|GV_ADDMULTI); HV *stash = gv_stashpv("Encode::XS", TRUE); SV *sv = sv_bless(newRV_noinc(newSViv(PTR2IV(enc))),stash); - hv_store(hash,enc->name,strlen(enc->name),sv,0); + int i = 0; + while (enc->name[i]) + { + const char *name = enc->name[i++]; + hv_store(hash,name,strlen(name),SvREFCNT_inc(sv),0); + } + SvREFCNT_dec(sv); } void call_failure (SV *routine, U8* done, U8* dest, U8* orig) {} @@ -368,7 +383,7 @@ encode_method(pTHX_ encode_t *enc, encpage_t *dir, SV *src, int check) { STRLEN clen; UV ch = utf8_to_uv(s+slen,(SvCUR(src)-slen),&clen,0); - Perl_warner(aTHX_ WARN_UTF8, "\"\\x{%x}\" does not map to %s", ch, enc->name); + Perl_warner(aTHX_ WARN_UTF8, "\"\\x{%"UVxf"}\" does not map to %s", ch, enc->name[0]); /* FIXME: Skip over the character, copy in replacement and continue * but that is messy so for now just fail. */ @@ -383,7 +398,7 @@ encode_method(pTHX_ encode_t *enc, encpage_t *dir, SV *src, int check) { /* UTF-8 is supposed to be "Universal" so should not happen */ Perl_croak(aTHX_ "%s '%.*s' does not map to UTF-8", - enc->name, (SvCUR(src)-slen),s+slen); + enc->name[0], (int)(SvCUR(src)-slen),s+slen); } break; @@ -391,13 +406,13 @@ encode_method(pTHX_ encode_t *enc, encpage_t *dir, SV *src, int check) if (!check && ckWARN_d(WARN_UTF8)) { Perl_warner(aTHX_ WARN_UTF8, "Partial %s character", - (dir == enc->f_utf8) ? "UTF-8" : enc->name); + (dir == enc->f_utf8) ? "UTF-8" : enc->name[0]); } return &PL_sv_undef; default: Perl_croak(aTHX_ "Unexpected code %d converting %s %s", - code, (dir == enc->f_utf8) ? "to" : "from",enc->name); + code, (dir == enc->f_utf8) ? "to" : "from",enc->name[0]); return &PL_sv_undef; } } diff --git a/ext/Encode/Encode/ascii.ucm b/ext/Encode/Encode/ascii.ucm new file mode 100644 index 0000000000..b2b6d14905 --- /dev/null +++ b/ext/Encode/Encode/ascii.ucm @@ -0,0 +1,136 @@ +# Written by compile -n ascii -o Encode/ascii.ucm Encode/ascii.enc + "ascii" + 1 + 1 + \x3F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x04 |0 + \x05 |0 + \x06 |0 + \x07 |0 + \x08 |0 + \x09 |0 + \x0A |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x14 |0 + \x15 |0 + \x16 |0 + \x17 |0 + \x18 |0 + \x19 |0 + \x1A |0 + \x1B |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x25 |0 + \x26 |0 + \x27 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x30 |0 + \x31 |0 + \x32 |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x37 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x3C |0 + \x3D |0 + \x3E |0 + \x3F |0 + \x40 |0 + \x41 |0 + \x42 |0 + \x43 |0 + \x44 |0 + \x45 |0 + \x46 |0 + \x47 |0 + \x48 |0 + \x49 |0 + \x4A |0 + \x4B |0 + \x4C |0 + \x4D |0 + \x4E |0 + \x4F |0 + \x50 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x54 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x58 |0 + \x59 |0 + \x5A |0 + \x5B |0 + \x5C |0 + \x5D |0 + \x5E |0 + \x5F |0 + \x60 |0 + \x61 |0 + \x62 |0 + \x63 |0 + \x64 |0 + \x65 |0 + \x66 |0 + \x67 |0 + \x68 |0 + \x69 |0 + \x6A |0 + \x6B |0 + \x6C |0 + \x6D |0 + \x6E |0 + \x6F |0 + \x70 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x74 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \x78 |0 + \x79 |0 + \x7A |0 + \x7B |0 + \x7C |0 + \x7D |0 + \x7E |0 + \x7F |0 +END CHARMAP diff --git a/ext/Encode/Encode/cp1047.ucm b/ext/Encode/Encode/cp1047.ucm new file mode 100644 index 0000000000..6675f363fb --- /dev/null +++ b/ext/Encode/Encode/cp1047.ucm @@ -0,0 +1,264 @@ +# Written by compile -n cp1047 -o Encode/cp1047.ucm Encode/cp1047.enc + "cp1047" + 1 + 1 + \x6F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x37 |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x16 |0 + \x05 |0 + \x15 |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x3C |0 + \x3D |0 + \x32 |0 + \x26 |0 + \x18 |0 + \x19 |0 + \x3F |0 + \x27 |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x40 |0 + \x5A |0 + \x7F |0 + \x7B |0 + \x5B |0 + \x6C |0 + \x50 |0 + \x7D |0 + \x4D |0 + \x5D |0 + \x5C |0 + \x4E |0 + \x6B |0 + \x60 |0 + \x4B |0 + \x61 |0 + \xF0 |0 + \xF1 |0 + \xF2 |0 + \xF3 |0 + \xF4 |0 + \xF5 |0 + \xF6 |0 + \xF7 |0 + \xF8 |0 + \xF9 |0 + \x7A |0 + \x5E |0 + \x4C |0 + \x7E |0 + \x6E |0 + \x6F |0 + \x7C |0 + \xC1 |0 + \xC2 |0 + \xC3 |0 + \xC4 |0 + \xC5 |0 + \xC6 |0 + \xC7 |0 + \xC8 |0 + \xC9 |0 + \xD1 |0 + \xD2 |0 + \xD3 |0 + \xD4 |0 + \xD5 |0 + \xD6 |0 + \xD7 |0 + \xD8 |0 + \xD9 |0 + \xE2 |0 + \xE3 |0 + \xE4 |0 + \xE5 |0 + \xE6 |0 + \xE7 |0 + \xE8 |0 + \xE9 |0 + \xAD |0 + \xE0 |0 + \xBD |0 + \x5F |0 + \x6D |0 + \x79 |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \xA2 |0 + \xA3 |0 + \xA4 |0 + \xA5 |0 + \xA6 |0 + \xA7 |0 + \xA8 |0 + \xA9 |0 + \xC0 |0 + \x4F |0 + \xD0 |0 + \xA1 |0 + \x07 |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x25 |0 + \x06 |0 + \x17 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x09 |0 + \x0A |0 + \x1B |0 + \x30 |0 + \x31 |0 + \x1A |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x08 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x04 |0 + \x14 |0 + \x3E |0 + \xFF |0 + \x41 |0 + \xAA |0 + \x4A |0 + \xB1 |0 + \x9F |0 + \xB2 |0 + \x6A |0 + \xB5 |0 + \xBB |0 + \xB4 |0 + \x9A |0 + \x8A |0 + \xB0 |0 + \xCA |0 + \xAF |0 + \xBC |0 + \x90 |0 + \x8F |0 + \xEA |0 + \xFA |0 + \xBE |0 + \xA0 |0 + \xB6 |0 + \xB3 |0 + \x9D |0 + \xDA |0 + \x9B |0 + \x8B |0 + \xB7 |0 + \xB8 |0 + \xB9 |0 + \xAB |0 + \x64 |0 + \x65 |0 + \x62 |0 + \x66 |0 + \x63 |0 + \x67 |0 + \x9E |0 + \x68 |0 + \x74 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x78 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \xAC |0 + \x69 |0 + \xED |0 + \xEE |0 + \xEB |0 + \xEF |0 + \xEC |0 + \xBF |0 + \x80 |0 + \xFD |0 + \xFE |0 + \xFB |0 + \xFC |0 + \xBA |0 + \xAE |0 + \x59 |0 + \x44 |0 + \x45 |0 + \x42 |0 + \x46 |0 + \x43 |0 + \x47 |0 + \x9C |0 + \x48 |0 + \x54 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x58 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x8C |0 + \x49 |0 + \xCD |0 + \xCE |0 + \xCB |0 + \xCF |0 + \xCC |0 + \xE1 |0 + \x70 |0 + \xDD |0 + \xDE |0 + \xDB |0 + \xDC |0 + \x8D |0 + \x8E |0 + \xDF |0 +END CHARMAP diff --git a/ext/Encode/Encode/cp1250.ucm b/ext/Encode/Encode/cp1250.ucm new file mode 100644 index 0000000000..61015ae039 --- /dev/null +++ b/ext/Encode/Encode/cp1250.ucm @@ -0,0 +1,263 @@ +# Written by compile -n cp1250 -o Encode/cp1250.ucm Encode/cp1250.enc + "cp1250" + 1 + 1 + \x3F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x04 |0 + \x05 |0 + \x06 |0 + \x07 |0 + \x08 |0 + \x09 |0 + \x0A |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x14 |0 + \x15 |0 + \x16 |0 + \x17 |0 + \x18 |0 + \x19 |0 + \x1A |0 + \x1B |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x25 |0 + \x26 |0 + \x27 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x30 |0 + \x31 |0 + \x32 |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x37 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x3C |0 + \x3D |0 + \x3E |0 + \x3F |0 + \x40 |0 + \x41 |0 + \x42 |0 + \x43 |0 + \x44 |0 + \x45 |0 + \x46 |0 + \x47 |0 + \x48 |0 + \x49 |0 + \x4A |0 + \x4B |0 + \x4C |0 + \x4D |0 + \x4E |0 + \x4F |0 + \x50 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x54 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x58 |0 + \x59 |0 + \x5A |0 + \x5B |0 + \x5C |0 + \x5D |0 + \x5E |0 + \x5F |0 + \x60 |0 + \x61 |0 + \x62 |0 + \x63 |0 + \x64 |0 + \x65 |0 + \x66 |0 + \x67 |0 + \x68 |0 + \x69 |0 + \x6A |0 + \x6B |0 + \x6C |0 + \x6D |0 + \x6E |0 + \x6F |0 + \x70 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x74 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \x78 |0 + \x79 |0 + \x7A |0 + \x7B |0 + \x7C |0 + \x7D |0 + \x7E |0 + \x7F |0 + \x80 |0 + \x81 |0 + \x83 |0 + \x88 |0 + \x90 |0 + \x98 |0 + \xA0 |0 + \xA4 |0 + \xA6 |0 + \xA7 |0 + \xA8 |0 + \xA9 |0 + \xAB |0 + \xAD |0 + \xAE |0 + \xB0 |0 + \xB1 |0 + \xB4 |0 + \xB5 |0 + \xB6 |0 + \xB7 |0 + \xB8 |0 + \xBB |0 + \xC1 |0 + \xC2 |0 + \xC4 |0 + \xC7 |0 + \xC9 |0 + \xCB |0 + \xCD |0 + \xCE |0 + \xD3 |0 + \xD4 |0 + \xD6 |0 + \xD7 |0 + \xDA |0 + \xDC |0 + \xDD |0 + \xDF |0 + \xE1 |0 + \xE2 |0 + \xE4 |0 + \xE7 |0 + \xE9 |0 + \xEB |0 + \xED |0 + \xEE |0 + \xF3 |0 + \xF4 |0 + \xF6 |0 + \xF7 |0 + \xFA |0 + \xFC |0 + \xFD |0 + \xC3 |0 + \xE3 |0 + \xA5 |0 + \xB9 |0 + \xC6 |0 + \xE6 |0 + \xC8 |0 + \xE8 |0 + \xCF |0 + \xEF |0 + \xD0 |0 + \xF0 |0 + \xCA |0 + \xEA |0 + \xCC |0 + \xEC |0 + \xC5 |0 + \xE5 |0 + \xBC |0 + \xBE |0 + \xA3 |0 + \xB3 |0 + \xD1 |0 + \xF1 |0 + \xD2 |0 + \xF2 |0 + \xD5 |0 + \xF5 |0 + \xC0 |0 + \xE0 |0 + \xD8 |0 + \xF8 |0 + \x8C |0 + \x9C |0 + \xAA |0 + \xBA |0 + \x8A |0 + \x9A |0 + \xDE |0 + \xFE |0 + \x8D |0 + \x9D |0 + \xD9 |0 + \xF9 |0 + \xDB |0 + \xFB |0 + \x8F |0 + \x9F |0 + \xAF |0 + \xBF |0 + \x8E |0 + \x9E |0 + \xA1 |0 + \xA2 |0 + \xFF |0 + \xB2 |0 + \xBD |0 + \x96 |0 + \x97 |0 + \x91 |0 + \x92 |0 + \x82 |0 + \x93 |0 + \x94 |0 + \x84 |0 + \x86 |0 + \x87 |0 + \x95 |0 + \x85 |0 + \x89 |0 + \x8B |0 + \x9B |0 + \x99 |0 +END CHARMAP diff --git a/ext/Encode/Encode/cp37.ucm b/ext/Encode/Encode/cp37.ucm new file mode 100644 index 0000000000..3ce139b191 --- /dev/null +++ b/ext/Encode/Encode/cp37.ucm @@ -0,0 +1,264 @@ +# Written by compile -n cp37 -o Encode/cp37.ucm Encode/cp37.enc + "cp37" + 1 + 1 + \x6F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x37 |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x16 |0 + \x05 |0 + \x25 |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x3C |0 + \x3D |0 + \x32 |0 + \x26 |0 + \x18 |0 + \x19 |0 + \x3F |0 + \x27 |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x40 |0 + \x5A |0 + \x7F |0 + \x7B |0 + \x5B |0 + \x6C |0 + \x50 |0 + \x7D |0 + \x4D |0 + \x5D |0 + \x5C |0 + \x4E |0 + \x6B |0 + \x60 |0 + \x4B |0 + \x61 |0 + \xF0 |0 + \xF1 |0 + \xF2 |0 + \xF3 |0 + \xF4 |0 + \xF5 |0 + \xF6 |0 + \xF7 |0 + \xF8 |0 + \xF9 |0 + \x7A |0 + \x5E |0 + \x4C |0 + \x7E |0 + \x6E |0 + \x6F |0 + \x7C |0 + \xC1 |0 + \xC2 |0 + \xC3 |0 + \xC4 |0 + \xC5 |0 + \xC6 |0 + \xC7 |0 + \xC8 |0 + \xC9 |0 + \xD1 |0 + \xD2 |0 + \xD3 |0 + \xD4 |0 + \xD5 |0 + \xD6 |0 + \xD7 |0 + \xD8 |0 + \xD9 |0 + \xE2 |0 + \xE3 |0 + \xE4 |0 + \xE5 |0 + \xE6 |0 + \xE7 |0 + \xE8 |0 + \xE9 |0 + \xBA |0 + \xE0 |0 + \xBB |0 + \xB0 |0 + \x6D |0 + \x79 |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \xA2 |0 + \xA3 |0 + \xA4 |0 + \xA5 |0 + \xA6 |0 + \xA7 |0 + \xA8 |0 + \xA9 |0 + \xC0 |0 + \x4F |0 + \xD0 |0 + \xA1 |0 + \x07 |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x15 |0 + \x06 |0 + \x17 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x09 |0 + \x0A |0 + \x1B |0 + \x30 |0 + \x31 |0 + \x1A |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x08 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x04 |0 + \x14 |0 + \x3E |0 + \xFF |0 + \x41 |0 + \xAA |0 + \x4A |0 + \xB1 |0 + \x9F |0 + \xB2 |0 + \x6A |0 + \xB5 |0 + \xBD |0 + \xB4 |0 + \x9A |0 + \x8A |0 + \x5F |0 + \xCA |0 + \xAF |0 + \xBC |0 + \x90 |0 + \x8F |0 + \xEA |0 + \xFA |0 + \xBE |0 + \xA0 |0 + \xB6 |0 + \xB3 |0 + \x9D |0 + \xDA |0 + \x9B |0 + \x8B |0 + \xB7 |0 + \xB8 |0 + \xB9 |0 + \xAB |0 + \x64 |0 + \x65 |0 + \x62 |0 + \x66 |0 + \x63 |0 + \x67 |0 + \x9E |0 + \x68 |0 + \x74 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x78 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \xAC |0 + \x69 |0 + \xED |0 + \xEE |0 + \xEB |0 + \xEF |0 + \xEC |0 + \xBF |0 + \x80 |0 + \xFD |0 + \xFE |0 + \xFB |0 + \xFC |0 + \xAD |0 + \xAE |0 + \x59 |0 + \x44 |0 + \x45 |0 + \x42 |0 + \x46 |0 + \x43 |0 + \x47 |0 + \x9C |0 + \x48 |0 + \x54 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x58 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x8C |0 + \x49 |0 + \xCD |0 + \xCE |0 + \xCB |0 + \xCF |0 + \xCC |0 + \xE1 |0 + \x70 |0 + \xDD |0 + \xDE |0 + \xDB |0 + \xDC |0 + \x8D |0 + \x8E |0 + \xDF |0 +END CHARMAP diff --git a/ext/Encode/Encode/dingbats.ucm b/ext/Encode/Encode/dingbats.ucm new file mode 100644 index 0000000000..767292a27e --- /dev/null +++ b/ext/Encode/Encode/dingbats.ucm @@ -0,0 +1,261 @@ +# Written by compile -n dingbats -o Encode/dingbats.ucm Encode/dingbats.enc + "dingbats" + 1 + 1 + \x3F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x04 |0 + \x05 |0 + \x06 |0 + \x07 |0 + \x08 |0 + \x09 |0 + \x0A |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x14 |0 + \x15 |0 + \x16 |0 + \x17 |0 + \x18 |0 + \x19 |0 + \x1A |0 + \x1B |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x20 |0 + \x7F |0 + \x80 |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x8A |0 + \x8B |0 + \x8C |0 + \x8D |0 + \x8E |0 + \x8F |0 + \x90 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \x9A |0 + \x9B |0 + \x9C |0 + \x9D |0 + \x9E |0 + \x9F |0 + \xD5 |0 + \xD6 |0 + \xD7 |0 + \xAC |0 + \xAD |0 + \xAE |0 + \xAF |0 + \xB0 |0 + \xB1 |0 + \xB2 |0 + \xB3 |0 + \xB4 |0 + \xB5 |0 + \x6E |0 + \x73 |0 + \x74 |0 + \x75 |0 + \x6C |0 + \x77 |0 + \x48 |0 + \x25 |0 + \x2A |0 + \x2B |0 + \xAB |0 + \xA8 |0 + \xAA |0 + \xA9 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x26 |0 + \x27 |0 + \x28 |0 + \x29 |0 + \x2C |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x30 |0 + \x31 |0 + \x32 |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x37 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x3C |0 + \x3D |0 + \x3E |0 + \x3F |0 + \x40 |0 + \x41 |0 + \x42 |0 + \x43 |0 + \x44 |0 + \x45 |0 + \x46 |0 + \x47 |0 + \x49 |0 + \x4A |0 + \x4B |0 + \x4C |0 + \x4D |0 + \x4E |0 + \x4F |0 + \x50 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x54 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x58 |0 + \x59 |0 + \x5A |0 + \x5B |0 + \x5C |0 + \x5D |0 + \x5E |0 + \x5F |0 + \x60 |0 + \x61 |0 + \x62 |0 + \x63 |0 + \x64 |0 + \x65 |0 + \x66 |0 + \x67 |0 + \x68 |0 + \x69 |0 + \x6A |0 + \x6B |0 + \x6D |0 + \x6F |0 + \x70 |0 + \x71 |0 + \x72 |0 + \x76 |0 + \x78 |0 + \x79 |0 + \x7A |0 + \x7B |0 + \x7C |0 + \x7D |0 + \x7E |0 + \xA1 |0 + \xA2 |0 + \xA3 |0 + \xA4 |0 + \xA5 |0 + \xA6 |0 + \xA7 |0 + \xB6 |0 + \xB7 |0 + \xB8 |0 + \xB9 |0 + \xBA |0 + \xBB |0 + \xBC |0 + \xBD |0 + \xBE |0 + \xBF |0 + \xC0 |0 + \xC1 |0 + \xC2 |0 + \xC3 |0 + \xC4 |0 + \xC5 |0 + \xC6 |0 + \xC7 |0 + \xC8 |0 + \xC9 |0 + \xCA |0 + \xCB |0 + \xCC |0 + \xCD |0 + \xCE |0 + \xCF |0 + \xD0 |0 + \xD1 |0 + \xD2 |0 + \xD3 |0 + \xD4 |0 + \xD8 |0 + \xD9 |0 + \xDA |0 + \xDB |0 + \xDC |0 + \xDD |0 + \xDE |0 + \xDF |0 + \xE0 |0 + \xE1 |0 + \xE2 |0 + \xE3 |0 + \xE4 |0 + \xE5 |0 + \xE6 |0 + \xE7 |0 + \xE8 |0 + \xE9 |0 + \xEA |0 + \xEB |0 + \xEC |0 + \xED |0 + \xEE |0 + \xEF |0 + \xF1 |0 + \xF2 |0 + \xF3 |0 + \xF4 |0 + \xF5 |0 + \xF6 |0 + \xF7 |0 + \xF8 |0 + \xF9 |0 + \xFA |0 + \xFB |0 + \xFC |0 + \xFD |0 + \xFE |0 +END CHARMAP diff --git a/ext/Encode/Encode/iso8859-1.ucm b/ext/Encode/Encode/iso8859-1.ucm new file mode 100644 index 0000000000..dff4715ed0 --- /dev/null +++ b/ext/Encode/Encode/iso8859-1.ucm @@ -0,0 +1,264 @@ +# Written by compile -n iso8859-1 -o Encode/iso8859-1.ucm Encode/iso8859-1.enc + "iso8859-1" + 1 + 1 + \x3F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x04 |0 + \x05 |0 + \x06 |0 + \x07 |0 + \x08 |0 + \x09 |0 + \x0A |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x14 |0 + \x15 |0 + \x16 |0 + \x17 |0 + \x18 |0 + \x19 |0 + \x1A |0 + \x1B |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x25 |0 + \x26 |0 + \x27 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x30 |0 + \x31 |0 + \x32 |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x37 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x3C |0 + \x3D |0 + \x3E |0 + \x3F |0 + \x40 |0 + \x41 |0 + \x42 |0 + \x43 |0 + \x44 |0 + \x45 |0 + \x46 |0 + \x47 |0 + \x48 |0 + \x49 |0 + \x4A |0 + \x4B |0 + \x4C |0 + \x4D |0 + \x4E |0 + \x4F |0 + \x50 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x54 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x58 |0 + \x59 |0 + \x5A |0 + \x5B |0 + \x5C |0 + \x5D |0 + \x5E |0 + \x5F |0 + \x60 |0 + \x61 |0 + \x62 |0 + \x63 |0 + \x64 |0 + \x65 |0 + \x66 |0 + \x67 |0 + \x68 |0 + \x69 |0 + \x6A |0 + \x6B |0 + \x6C |0 + \x6D |0 + \x6E |0 + \x6F |0 + \x70 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x74 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \x78 |0 + \x79 |0 + \x7A |0 + \x7B |0 + \x7C |0 + \x7D |0 + \x7E |0 + \x7F |0 + \x80 |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x8A |0 + \x8B |0 + \x8C |0 + \x8D |0 + \x8E |0 + \x8F |0 + \x90 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \x9A |0 + \x9B |0 + \x9C |0 + \x9D |0 + \x9E |0 + \x9F |0 + \xA0 |0 + \xA1 |0 + \xA2 |0 + \xA3 |0 + \xA4 |0 + \xA5 |0 + \xA6 |0 + \xA7 |0 + \xA8 |0 + \xA9 |0 + \xAA |0 + \xAB |0 + \xAC |0 + \xAD |0 + \xAE |0 + \xAF |0 + \xB0 |0 + \xB1 |0 + \xB2 |0 + \xB3 |0 + \xB4 |0 + \xB5 |0 + \xB6 |0 + \xB7 |0 + \xB8 |0 + \xB9 |0 + \xBA |0 + \xBB |0 + \xBC |0 + \xBD |0 + \xBE |0 + \xBF |0 + \xC0 |0 + \xC1 |0 + \xC2 |0 + \xC3 |0 + \xC4 |0 + \xC5 |0 + \xC6 |0 + \xC7 |0 + \xC8 |0 + \xC9 |0 + \xCA |0 + \xCB |0 + \xCC |0 + \xCD |0 + \xCE |0 + \xCF |0 + \xD0 |0 + \xD1 |0 + \xD2 |0 + \xD3 |0 + \xD4 |0 + \xD5 |0 + \xD6 |0 + \xD7 |0 + \xD8 |0 + \xD9 |0 + \xDA |0 + \xDB |0 + \xDC |0 + \xDD |0 + \xDE |0 + \xDF |0 + \xE0 |0 + \xE1 |0 + \xE2 |0 + \xE3 |0 + \xE4 |0 + \xE5 |0 + \xE6 |0 + \xE7 |0 + \xE8 |0 + \xE9 |0 + \xEA |0 + \xEB |0 + \xEC |0 + \xED |0 + \xEE |0 + \xEF |0 + \xF0 |0 + \xF1 |0 + \xF2 |0 + \xF3 |0 + \xF4 |0 + \xF5 |0 + \xF6 |0 + \xF7 |0 + \xF8 |0 + \xF9 |0 + \xFA |0 + \xFB |0 + \xFC |0 + \xFD |0 + \xFE |0 + \xFF |0 +END CHARMAP diff --git a/ext/Encode/Encode/iso8859-10.ucm b/ext/Encode/Encode/iso8859-10.ucm new file mode 100644 index 0000000000..9d4fb82d3e --- /dev/null +++ b/ext/Encode/Encode/iso8859-10.ucm @@ -0,0 +1,264 @@ +# Written by compile -n iso8859-10 -o Encode/iso8859-10.ucm Encode/iso8859-10.enc + "iso8859-10" + 1 + 1 + \x3F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x04 |0 + \x05 |0 + \x06 |0 + \x07 |0 + \x08 |0 + \x09 |0 + \x0A |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x14 |0 + \x15 |0 + \x16 |0 + \x17 |0 + \x18 |0 + \x19 |0 + \x1A |0 + \x1B |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x25 |0 + \x26 |0 + \x27 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x30 |0 + \x31 |0 + \x32 |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x37 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x3C |0 + \x3D |0 + \x3E |0 + \x3F |0 + \x40 |0 + \x41 |0 + \x42 |0 + \x43 |0 + \x44 |0 + \x45 |0 + \x46 |0 + \x47 |0 + \x48 |0 + \x49 |0 + \x4A |0 + \x4B |0 + \x4C |0 + \x4D |0 + \x4E |0 + \x4F |0 + \x50 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x54 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x58 |0 + \x59 |0 + \x5A |0 + \x5B |0 + \x5C |0 + \x5D |0 + \x5E |0 + \x5F |0 + \x60 |0 + \x61 |0 + \x62 |0 + \x63 |0 + \x64 |0 + \x65 |0 + \x66 |0 + \x67 |0 + \x68 |0 + \x69 |0 + \x6A |0 + \x6B |0 + \x6C |0 + \x6D |0 + \x6E |0 + \x6F |0 + \x70 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x74 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \x78 |0 + \x79 |0 + \x7A |0 + \x7B |0 + \x7C |0 + \x7D |0 + \x7E |0 + \x7F |0 + \x80 |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x8A |0 + \x8B |0 + \x8C |0 + \x8D |0 + \x8E |0 + \x8F |0 + \x90 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \x9A |0 + \x9B |0 + \x9C |0 + \x9D |0 + \x9E |0 + \x9F |0 + \xA0 |0 + \xA7 |0 + \xAD |0 + \xB0 |0 + \xB7 |0 + \xC1 |0 + \xC2 |0 + \xC3 |0 + \xC4 |0 + \xC5 |0 + \xC6 |0 + \xC9 |0 + \xCB |0 + \xCD |0 + \xCE |0 + \xCF |0 + \xD0 |0 + \xD3 |0 + \xD4 |0 + \xD5 |0 + \xD6 |0 + \xD8 |0 + \xDA |0 + \xDB |0 + \xDC |0 + \xDD |0 + \xDE |0 + \xDF |0 + \xE1 |0 + \xE2 |0 + \xE3 |0 + \xE4 |0 + \xE5 |0 + \xE6 |0 + \xE9 |0 + \xEB |0 + \xED |0 + \xEE |0 + \xEF |0 + \xF0 |0 + \xF3 |0 + \xF4 |0 + \xF5 |0 + \xF6 |0 + \xF8 |0 + \xFA |0 + \xFB |0 + \xFC |0 + \xFD |0 + \xFE |0 + \xC0 |0 + \xE0 |0 + \xA1 |0 + \xB1 |0 + \xC8 |0 + \xE8 |0 + \xA9 |0 + \xB9 |0 + \xA2 |0 + \xB2 |0 + \xCC |0 + \xEC |0 + \xCA |0 + \xEA |0 + \xA3 |0 + \xB3 |0 + \xA5 |0 + \xB5 |0 + \xA4 |0 + \xB4 |0 + \xC7 |0 + \xE7 |0 + \xA6 |0 + \xB6 |0 + \xFF |0 + \xA8 |0 + \xB8 |0 + \xD1 |0 + \xF1 |0 + \xAF |0 + \xBF |0 + \xD2 |0 + \xF2 |0 + \xAA |0 + \xBA |0 + \xAB |0 + \xBB |0 + \xD7 |0 + \xF7 |0 + \xAE |0 + \xBE |0 + \xD9 |0 + \xF9 |0 + \xAC |0 + \xBC |0 + \xBD |0 +END CHARMAP diff --git a/ext/Encode/Encode/iso8859-13.ucm b/ext/Encode/Encode/iso8859-13.ucm new file mode 100644 index 0000000000..8464623208 --- /dev/null +++ b/ext/Encode/Encode/iso8859-13.ucm @@ -0,0 +1,264 @@ +# Written by compile -n iso8859-13 -o Encode/iso8859-13.ucm Encode/iso8859-13.enc + "iso8859-13" + 1 + 1 + \x3F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x04 |0 + \x05 |0 + \x06 |0 + \x07 |0 + \x08 |0 + \x09 |0 + \x0A |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x14 |0 + \x15 |0 + \x16 |0 + \x17 |0 + \x18 |0 + \x19 |0 + \x1A |0 + \x1B |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x25 |0 + \x26 |0 + \x27 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x30 |0 + \x31 |0 + \x32 |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x37 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x3C |0 + \x3D |0 + \x3E |0 + \x3F |0 + \x40 |0 + \x41 |0 + \x42 |0 + \x43 |0 + \x44 |0 + \x45 |0 + \x46 |0 + \x47 |0 + \x48 |0 + \x49 |0 + \x4A |0 + \x4B |0 + \x4C |0 + \x4D |0 + \x4E |0 + \x4F |0 + \x50 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x54 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x58 |0 + \x59 |0 + \x5A |0 + \x5B |0 + \x5C |0 + \x5D |0 + \x5E |0 + \x5F |0 + \x60 |0 + \x61 |0 + \x62 |0 + \x63 |0 + \x64 |0 + \x65 |0 + \x66 |0 + \x67 |0 + \x68 |0 + \x69 |0 + \x6A |0 + \x6B |0 + \x6C |0 + \x6D |0 + \x6E |0 + \x6F |0 + \x70 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x74 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \x78 |0 + \x79 |0 + \x7A |0 + \x7B |0 + \x7C |0 + \x7D |0 + \x7E |0 + \x7F |0 + \x80 |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x8A |0 + \x8B |0 + \x8C |0 + \x8D |0 + \x8E |0 + \x8F |0 + \x90 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \x9A |0 + \x9B |0 + \x9C |0 + \x9D |0 + \x9E |0 + \x9F |0 + \xA0 |0 + \xA2 |0 + \xA3 |0 + \xA4 |0 + \xA6 |0 + \xA7 |0 + \xA9 |0 + \xAB |0 + \xAC |0 + \xAD |0 + \xAE |0 + \xB0 |0 + \xB1 |0 + \xB2 |0 + \xB3 |0 + \xB5 |0 + \xB6 |0 + \xB7 |0 + \xB9 |0 + \xBB |0 + \xBC |0 + \xBD |0 + \xBE |0 + \xC4 |0 + \xC5 |0 + \xAF |0 + \xC9 |0 + \xD3 |0 + \xD5 |0 + \xD6 |0 + \xD7 |0 + \xA8 |0 + \xDC |0 + \xDF |0 + \xE4 |0 + \xE5 |0 + \xBF |0 + \xE9 |0 + \xF3 |0 + \xF5 |0 + \xF6 |0 + \xF7 |0 + \xB8 |0 + \xFC |0 + \xC2 |0 + \xE2 |0 + \xC0 |0 + \xE0 |0 + \xC3 |0 + \xE3 |0 + \xC8 |0 + \xE8 |0 + \xC7 |0 + \xE7 |0 + \xCB |0 + \xEB |0 + \xC6 |0 + \xE6 |0 + \xCC |0 + \xEC |0 + \xCE |0 + \xEE |0 + \xC1 |0 + \xE1 |0 + \xCD |0 + \xED |0 + \xCF |0 + \xEF |0 + \xD9 |0 + \xF9 |0 + \xD1 |0 + \xF1 |0 + \xD2 |0 + \xF2 |0 + \xD4 |0 + \xF4 |0 + \xAA |0 + \xBA |0 + \xDA |0 + \xFA |0 + \xD0 |0 + \xF0 |0 + \xDB |0 + \xFB |0 + \xD8 |0 + \xF8 |0 + \xCA |0 + \xEA |0 + \xDD |0 + \xFD |0 + \xDE |0 + \xFE |0 + \xFF |0 + \xB4 |0 + \xA1 |0 + \xA5 |0 +END CHARMAP diff --git a/ext/Encode/Encode/iso8859-14.ucm b/ext/Encode/Encode/iso8859-14.ucm new file mode 100644 index 0000000000..c6d5574989 --- /dev/null +++ b/ext/Encode/Encode/iso8859-14.ucm @@ -0,0 +1,264 @@ +# Written by compile -n iso8859-14 -o Encode/iso8859-14.ucm Encode/iso8859-14.enc + "iso8859-14" + 1 + 1 + \x3F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x04 |0 + \x05 |0 + \x06 |0 + \x07 |0 + \x08 |0 + \x09 |0 + \x0A |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x14 |0 + \x15 |0 + \x16 |0 + \x17 |0 + \x18 |0 + \x19 |0 + \x1A |0 + \x1B |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x25 |0 + \x26 |0 + \x27 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x30 |0 + \x31 |0 + \x32 |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x37 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x3C |0 + \x3D |0 + \x3E |0 + \x3F |0 + \x40 |0 + \x41 |0 + \x42 |0 + \x43 |0 + \x44 |0 + \x45 |0 + \x46 |0 + \x47 |0 + \x48 |0 + \x49 |0 + \x4A |0 + \x4B |0 + \x4C |0 + \x4D |0 + \x4E |0 + \x4F |0 + \x50 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x54 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x58 |0 + \x59 |0 + \x5A |0 + \x5B |0 + \x5C |0 + \x5D |0 + \x5E |0 + \x5F |0 + \x60 |0 + \x61 |0 + \x62 |0 + \x63 |0 + \x64 |0 + \x65 |0 + \x66 |0 + \x67 |0 + \x68 |0 + \x69 |0 + \x6A |0 + \x6B |0 + \x6C |0 + \x6D |0 + \x6E |0 + \x6F |0 + \x70 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x74 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \x78 |0 + \x79 |0 + \x7A |0 + \x7B |0 + \x7C |0 + \x7D |0 + \x7E |0 + \x7F |0 + \x80 |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x8A |0 + \x8B |0 + \x8C |0 + \x8D |0 + \x8E |0 + \x8F |0 + \x90 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \x9A |0 + \x9B |0 + \x9C |0 + \x9D |0 + \x9E |0 + \x9F |0 + \xA0 |0 + \xA3 |0 + \xA7 |0 + \xA9 |0 + \xAD |0 + \xAE |0 + \xB6 |0 + \xC0 |0 + \xC1 |0 + \xC2 |0 + \xC3 |0 + \xC4 |0 + \xC5 |0 + \xC6 |0 + \xC7 |0 + \xC8 |0 + \xC9 |0 + \xCA |0 + \xCB |0 + \xCC |0 + \xCD |0 + \xCE |0 + \xCF |0 + \xD1 |0 + \xD2 |0 + \xD3 |0 + \xD4 |0 + \xD5 |0 + \xD6 |0 + \xD8 |0 + \xD9 |0 + \xDA |0 + \xDB |0 + \xDC |0 + \xDD |0 + \xDF |0 + \xE0 |0 + \xE1 |0 + \xE2 |0 + \xE3 |0 + \xE4 |0 + \xE5 |0 + \xE6 |0 + \xE7 |0 + \xE8 |0 + \xE9 |0 + \xEA |0 + \xEB |0 + \xEC |0 + \xED |0 + \xEE |0 + \xEF |0 + \xF1 |0 + \xF2 |0 + \xF3 |0 + \xF4 |0 + \xF5 |0 + \xF6 |0 + \xF8 |0 + \xF9 |0 + \xFA |0 + \xFB |0 + \xFC |0 + \xFD |0 + \xFF |0 + \xA4 |0 + \xA5 |0 + \xB2 |0 + \xB3 |0 + \xD0 |0 + \xF0 |0 + \xDE |0 + \xFE |0 + \xAF |0 + \xA1 |0 + \xA2 |0 + \xA6 |0 + \xAB |0 + \xB0 |0 + \xB1 |0 + \xB4 |0 + \xB5 |0 + \xB7 |0 + \xB9 |0 + \xBB |0 + \xBF |0 + \xD7 |0 + \xF7 |0 + \xA8 |0 + \xB8 |0 + \xAA |0 + \xBA |0 + \xBD |0 + \xBE |0 + \xAC |0 + \xBC |0 +END CHARMAP diff --git a/ext/Encode/Encode/iso8859-15.ucm b/ext/Encode/Encode/iso8859-15.ucm new file mode 100644 index 0000000000..a4c2206e26 --- /dev/null +++ b/ext/Encode/Encode/iso8859-15.ucm @@ -0,0 +1,264 @@ +# Written by compile -n iso8859-15 -o Encode/iso8859-15.ucm Encode/iso8859-15.enc + "iso8859-15" + 1 + 1 + \x3F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x04 |0 + \x05 |0 + \x06 |0 + \x07 |0 + \x08 |0 + \x09 |0 + \x0A |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x14 |0 + \x15 |0 + \x16 |0 + \x17 |0 + \x18 |0 + \x19 |0 + \x1A |0 + \x1B |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x25 |0 + \x26 |0 + \x27 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x30 |0 + \x31 |0 + \x32 |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x37 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x3C |0 + \x3D |0 + \x3E |0 + \x3F |0 + \x40 |0 + \x41 |0 + \x42 |0 + \x43 |0 + \x44 |0 + \x45 |0 + \x46 |0 + \x47 |0 + \x48 |0 + \x49 |0 + \x4A |0 + \x4B |0 + \x4C |0 + \x4D |0 + \x4E |0 + \x4F |0 + \x50 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x54 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x58 |0 + \x59 |0 + \x5A |0 + \x5B |0 + \x5C |0 + \x5D |0 + \x5E |0 + \x5F |0 + \x60 |0 + \x61 |0 + \x62 |0 + \x63 |0 + \x64 |0 + \x65 |0 + \x66 |0 + \x67 |0 + \x68 |0 + \x69 |0 + \x6A |0 + \x6B |0 + \x6C |0 + \x6D |0 + \x6E |0 + \x6F |0 + \x70 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x74 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \x78 |0 + \x79 |0 + \x7A |0 + \x7B |0 + \x7C |0 + \x7D |0 + \x7E |0 + \x7F |0 + \x80 |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x8A |0 + \x8B |0 + \x8C |0 + \x8D |0 + \x8E |0 + \x8F |0 + \x90 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \x9A |0 + \x9B |0 + \x9C |0 + \x9D |0 + \x9E |0 + \x9F |0 + \xA0 |0 + \xA1 |0 + \xA2 |0 + \xA3 |0 + \xA5 |0 + \xA7 |0 + \xA9 |0 + \xAA |0 + \xAB |0 + \xAC |0 + \xAD |0 + \xAE |0 + \xAF |0 + \xB0 |0 + \xB1 |0 + \xB2 |0 + \xB3 |0 + \xB5 |0 + \xB6 |0 + \xB7 |0 + \xB9 |0 + \xBA |0 + \xBB |0 + \xBF |0 + \xC0 |0 + \xC1 |0 + \xC2 |0 + \xC3 |0 + \xC4 |0 + \xC5 |0 + \xC6 |0 + \xC7 |0 + \xC8 |0 + \xC9 |0 + \xCA |0 + \xCB |0 + \xCC |0 + \xCD |0 + \xCE |0 + \xCF |0 + \xD0 |0 + \xD1 |0 + \xD2 |0 + \xD3 |0 + \xD4 |0 + \xD5 |0 + \xD6 |0 + \xD7 |0 + \xD8 |0 + \xD9 |0 + \xDA |0 + \xDB |0 + \xDC |0 + \xDD |0 + \xDE |0 + \xDF |0 + \xE0 |0 + \xE1 |0 + \xE2 |0 + \xE3 |0 + \xE4 |0 + \xE5 |0 + \xE6 |0 + \xE7 |0 + \xE8 |0 + \xE9 |0 + \xEA |0 + \xEB |0 + \xEC |0 + \xED |0 + \xEE |0 + \xEF |0 + \xF0 |0 + \xF1 |0 + \xF2 |0 + \xF3 |0 + \xF4 |0 + \xF5 |0 + \xF6 |0 + \xF7 |0 + \xF8 |0 + \xF9 |0 + \xFA |0 + \xFB |0 + \xFC |0 + \xFD |0 + \xFE |0 + \xFF |0 + \xBC |0 + \xBD |0 + \xA6 |0 + \xA8 |0 + \xBE |0 + \xB4 |0 + \xB8 |0 + \xA4 |0 +END CHARMAP diff --git a/ext/Encode/Encode/iso8859-16.ucm b/ext/Encode/Encode/iso8859-16.ucm new file mode 100644 index 0000000000..f11ae8b823 --- /dev/null +++ b/ext/Encode/Encode/iso8859-16.ucm @@ -0,0 +1,264 @@ +# Written by compile -n iso8859-16 -o Encode/iso8859-16.ucm Encode/iso8859-16.enc + "iso8859-16" + 1 + 1 + \x3F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x04 |0 + \x05 |0 + \x06 |0 + \x07 |0 + \x08 |0 + \x09 |0 + \x0A |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x14 |0 + \x15 |0 + \x16 |0 + \x17 |0 + \x18 |0 + \x19 |0 + \x1A |0 + \x1B |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x25 |0 + \x26 |0 + \x27 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x30 |0 + \x31 |0 + \x32 |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x37 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x3C |0 + \x3D |0 + \x3E |0 + \x3F |0 + \x40 |0 + \x41 |0 + \x42 |0 + \x43 |0 + \x44 |0 + \x45 |0 + \x46 |0 + \x47 |0 + \x48 |0 + \x49 |0 + \x4A |0 + \x4B |0 + \x4C |0 + \x4D |0 + \x4E |0 + \x4F |0 + \x50 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x54 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x58 |0 + \x59 |0 + \x5A |0 + \x5B |0 + \x5C |0 + \x5D |0 + \x5E |0 + \x5F |0 + \x60 |0 + \x61 |0 + \x62 |0 + \x63 |0 + \x64 |0 + \x65 |0 + \x66 |0 + \x67 |0 + \x68 |0 + \x69 |0 + \x6A |0 + \x6B |0 + \x6C |0 + \x6D |0 + \x6E |0 + \x6F |0 + \x70 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x74 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \x78 |0 + \x79 |0 + \x7A |0 + \x7B |0 + \x7C |0 + \x7D |0 + \x7E |0 + \x7F |0 + \x80 |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x8A |0 + \x8B |0 + \x8C |0 + \x8D |0 + \x8E |0 + \x8F |0 + \x90 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \x9A |0 + \x9B |0 + \x9C |0 + \x9D |0 + \x9E |0 + \x9F |0 + \xA0 |0 + \xA7 |0 + \xA9 |0 + \xA5 |0 + \xAD |0 + \xB0 |0 + \xB1 |0 + \xB6 |0 + \xB7 |0 + \xBB |0 + \xC0 |0 + \xC1 |0 + \xC2 |0 + \xC4 |0 + \xC6 |0 + \xC7 |0 + \xC8 |0 + \xC9 |0 + \xCA |0 + \xCB |0 + \xCC |0 + \xCD |0 + \xCE |0 + \xCF |0 + \xD2 |0 + \xD3 |0 + \xD4 |0 + \xD6 |0 + \xD9 |0 + \xDA |0 + \xDB |0 + \xDC |0 + \xDF |0 + \xE0 |0 + \xE1 |0 + \xE2 |0 + \xE4 |0 + \xE6 |0 + \xE7 |0 + \xE8 |0 + \xE9 |0 + \xEA |0 + \xEB |0 + \xEC |0 + \xED |0 + \xEE |0 + \xEF |0 + \xF2 |0 + \xF3 |0 + \xF4 |0 + \xF6 |0 + \xF9 |0 + \xFA |0 + \xFB |0 + \xFC |0 + \xFF |0 + \xC3 |0 + \xE3 |0 + \xA1 |0 + \xA2 |0 + \xC5 |0 + \xE5 |0 + \xB2 |0 + \xB9 |0 + \xD0 |0 + \xF0 |0 + \xDD |0 + \xFD |0 + \xA3 |0 + \xB3 |0 + \xD1 |0 + \xF1 |0 + \xD5 |0 + \xF5 |0 + \xBC |0 + \xBD |0 + \xD7 |0 + \xF7 |0 + \xA6 |0 + \xA8 |0 + \xD8 |0 + \xF8 |0 + \xBE |0 + \xAC |0 + \xAE |0 + \xAF |0 + \xBF |0 + \xB4 |0 + \xB8 |0 + \xAA |0 + \xBA |0 + \xDE |0 + \xFE |0 + \xB5 |0 + \xAB |0 + \xA4 |0 +END CHARMAP diff --git a/ext/Encode/Encode/iso8859-2.ucm b/ext/Encode/Encode/iso8859-2.ucm new file mode 100644 index 0000000000..2e689b1657 --- /dev/null +++ b/ext/Encode/Encode/iso8859-2.ucm @@ -0,0 +1,264 @@ +# Written by compile -n iso8859-2 -o Encode/iso8859-2.ucm Encode/iso8859-2.enc + "iso8859-2" + 1 + 1 + \x3F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x04 |0 + \x05 |0 + \x06 |0 + \x07 |0 + \x08 |0 + \x09 |0 + \x0A |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x14 |0 + \x15 |0 + \x16 |0 + \x17 |0 + \x18 |0 + \x19 |0 + \x1A |0 + \x1B |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x25 |0 + \x26 |0 + \x27 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x30 |0 + \x31 |0 + \x32 |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x37 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x3C |0 + \x3D |0 + \x3E |0 + \x3F |0 + \x40 |0 + \x41 |0 + \x42 |0 + \x43 |0 + \x44 |0 + \x45 |0 + \x46 |0 + \x47 |0 + \x48 |0 + \x49 |0 + \x4A |0 + \x4B |0 + \x4C |0 + \x4D |0 + \x4E |0 + \x4F |0 + \x50 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x54 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x58 |0 + \x59 |0 + \x5A |0 + \x5B |0 + \x5C |0 + \x5D |0 + \x5E |0 + \x5F |0 + \x60 |0 + \x61 |0 + \x62 |0 + \x63 |0 + \x64 |0 + \x65 |0 + \x66 |0 + \x67 |0 + \x68 |0 + \x69 |0 + \x6A |0 + \x6B |0 + \x6C |0 + \x6D |0 + \x6E |0 + \x6F |0 + \x70 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x74 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \x78 |0 + \x79 |0 + \x7A |0 + \x7B |0 + \x7C |0 + \x7D |0 + \x7E |0 + \x7F |0 + \x80 |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x8A |0 + \x8B |0 + \x8C |0 + \x8D |0 + \x8E |0 + \x8F |0 + \x90 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \x9A |0 + \x9B |0 + \x9C |0 + \x9D |0 + \x9E |0 + \x9F |0 + \xA0 |0 + \xA4 |0 + \xA7 |0 + \xA8 |0 + \xAD |0 + \xB0 |0 + \xB4 |0 + \xB8 |0 + \xC1 |0 + \xC2 |0 + \xC4 |0 + \xC7 |0 + \xC9 |0 + \xCB |0 + \xCD |0 + \xCE |0 + \xD3 |0 + \xD4 |0 + \xD6 |0 + \xD7 |0 + \xDA |0 + \xDC |0 + \xDD |0 + \xDF |0 + \xE1 |0 + \xE2 |0 + \xE4 |0 + \xE7 |0 + \xE9 |0 + \xEB |0 + \xED |0 + \xEE |0 + \xF3 |0 + \xF4 |0 + \xF6 |0 + \xF7 |0 + \xFA |0 + \xFC |0 + \xFD |0 + \xC3 |0 + \xE3 |0 + \xA1 |0 + \xB1 |0 + \xC6 |0 + \xE6 |0 + \xC8 |0 + \xE8 |0 + \xCF |0 + \xEF |0 + \xD0 |0 + \xF0 |0 + \xCA |0 + \xEA |0 + \xCC |0 + \xEC |0 + \xC5 |0 + \xE5 |0 + \xA5 |0 + \xB5 |0 + \xA3 |0 + \xB3 |0 + \xD1 |0 + \xF1 |0 + \xD2 |0 + \xF2 |0 + \xD5 |0 + \xF5 |0 + \xC0 |0 + \xE0 |0 + \xD8 |0 + \xF8 |0 + \xA6 |0 + \xB6 |0 + \xAA |0 + \xBA |0 + \xA9 |0 + \xB9 |0 + \xDE |0 + \xFE |0 + \xAB |0 + \xBB |0 + \xD9 |0 + \xF9 |0 + \xDB |0 + \xFB |0 + \xAC |0 + \xBC |0 + \xAF |0 + \xBF |0 + \xAE |0 + \xBE |0 + \xB7 |0 + \xA2 |0 + \xFF |0 + \xB2 |0 + \xBD |0 +END CHARMAP diff --git a/ext/Encode/Encode/iso8859-3.ucm b/ext/Encode/Encode/iso8859-3.ucm new file mode 100644 index 0000000000..c22f69eafc --- /dev/null +++ b/ext/Encode/Encode/iso8859-3.ucm @@ -0,0 +1,257 @@ +# Written by compile -n iso8859-3 -o Encode/iso8859-3.ucm Encode/iso8859-3.enc + "iso8859-3" + 1 + 1 + \x3F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x04 |0 + \x05 |0 + \x06 |0 + \x07 |0 + \x08 |0 + \x09 |0 + \x0A |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x14 |0 + \x15 |0 + \x16 |0 + \x17 |0 + \x18 |0 + \x19 |0 + \x1A |0 + \x1B |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x25 |0 + \x26 |0 + \x27 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x30 |0 + \x31 |0 + \x32 |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x37 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x3C |0 + \x3D |0 + \x3E |0 + \x3F |0 + \x40 |0 + \x41 |0 + \x42 |0 + \x43 |0 + \x44 |0 + \x45 |0 + \x46 |0 + \x47 |0 + \x48 |0 + \x49 |0 + \x4A |0 + \x4B |0 + \x4C |0 + \x4D |0 + \x4E |0 + \x4F |0 + \x50 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x54 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x58 |0 + \x59 |0 + \x5A |0 + \x5B |0 + \x5C |0 + \x5D |0 + \x5E |0 + \x5F |0 + \x60 |0 + \x61 |0 + \x62 |0 + \x63 |0 + \x64 |0 + \x65 |0 + \x66 |0 + \x67 |0 + \x68 |0 + \x69 |0 + \x6A |0 + \x6B |0 + \x6C |0 + \x6D |0 + \x6E |0 + \x6F |0 + \x70 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x74 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \x78 |0 + \x79 |0 + \x7A |0 + \x7B |0 + \x7C |0 + \x7D |0 + \x7E |0 + \x7F |0 + \x80 |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x8A |0 + \x8B |0 + \x8C |0 + \x8D |0 + \x8E |0 + \x8F |0 + \x90 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \x9A |0 + \x9B |0 + \x9C |0 + \x9D |0 + \x9E |0 + \x9F |0 + \xA0 |0 + \xA3 |0 + \xA4 |0 + \xA7 |0 + \xA8 |0 + \xAD |0 + \xB0 |0 + \xB2 |0 + \xB3 |0 + \xB4 |0 + \xB5 |0 + \xB7 |0 + \xB8 |0 + \xBD |0 + \xC0 |0 + \xC1 |0 + \xC2 |0 + \xC4 |0 + \xC7 |0 + \xC8 |0 + \xC9 |0 + \xCA |0 + \xCB |0 + \xCC |0 + \xCD |0 + \xCE |0 + \xCF |0 + \xD1 |0 + \xD2 |0 + \xD3 |0 + \xD4 |0 + \xD6 |0 + \xD7 |0 + \xD9 |0 + \xDA |0 + \xDB |0 + \xDC |0 + \xDF |0 + \xE0 |0 + \xE1 |0 + \xE2 |0 + \xE4 |0 + \xE7 |0 + \xE8 |0 + \xE9 |0 + \xEA |0 + \xEB |0 + \xEC |0 + \xED |0 + \xEE |0 + \xEF |0 + \xF1 |0 + \xF2 |0 + \xF3 |0 + \xF4 |0 + \xF6 |0 + \xF7 |0 + \xF9 |0 + \xFA |0 + \xFB |0 + \xFC |0 + \xC6 |0 + \xE6 |0 + \xC5 |0 + \xE5 |0 + \xD8 |0 + \xF8 |0 + \xAB |0 + \xBB |0 + \xD5 |0 + \xF5 |0 + \xA6 |0 + \xB6 |0 + \xA1 |0 + \xB1 |0 + \xA9 |0 + \xB9 |0 + \xAC |0 + \xBC |0 + \xDE |0 + \xFE |0 + \xAA |0 + \xBA |0 + \xDD |0 + \xFD |0 + \xAF |0 + \xBF |0 + \xA2 |0 + \xFF |0 +END CHARMAP diff --git a/ext/Encode/Encode/iso8859-4.ucm b/ext/Encode/Encode/iso8859-4.ucm new file mode 100644 index 0000000000..32f02f5286 --- /dev/null +++ b/ext/Encode/Encode/iso8859-4.ucm @@ -0,0 +1,264 @@ +# Written by compile -n iso8859-4 -o Encode/iso8859-4.ucm Encode/iso8859-4.enc + "iso8859-4" + 1 + 1 + \x3F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x04 |0 + \x05 |0 + \x06 |0 + \x07 |0 + \x08 |0 + \x09 |0 + \x0A |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x14 |0 + \x15 |0 + \x16 |0 + \x17 |0 + \x18 |0 + \x19 |0 + \x1A |0 + \x1B |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x25 |0 + \x26 |0 + \x27 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x30 |0 + \x31 |0 + \x32 |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x37 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x3C |0 + \x3D |0 + \x3E |0 + \x3F |0 + \x40 |0 + \x41 |0 + \x42 |0 + \x43 |0 + \x44 |0 + \x45 |0 + \x46 |0 + \x47 |0 + \x48 |0 + \x49 |0 + \x4A |0 + \x4B |0 + \x4C |0 + \x4D |0 + \x4E |0 + \x4F |0 + \x50 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x54 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x58 |0 + \x59 |0 + \x5A |0 + \x5B |0 + \x5C |0 + \x5D |0 + \x5E |0 + \x5F |0 + \x60 |0 + \x61 |0 + \x62 |0 + \x63 |0 + \x64 |0 + \x65 |0 + \x66 |0 + \x67 |0 + \x68 |0 + \x69 |0 + \x6A |0 + \x6B |0 + \x6C |0 + \x6D |0 + \x6E |0 + \x6F |0 + \x70 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x74 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \x78 |0 + \x79 |0 + \x7A |0 + \x7B |0 + \x7C |0 + \x7D |0 + \x7E |0 + \x7F |0 + \x80 |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x8A |0 + \x8B |0 + \x8C |0 + \x8D |0 + \x8E |0 + \x8F |0 + \x90 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \x9A |0 + \x9B |0 + \x9C |0 + \x9D |0 + \x9E |0 + \x9F |0 + \xA0 |0 + \xA4 |0 + \xA7 |0 + \xA8 |0 + \xAD |0 + \xAF |0 + \xB0 |0 + \xB4 |0 + \xB8 |0 + \xC1 |0 + \xC2 |0 + \xC3 |0 + \xC4 |0 + \xC5 |0 + \xC6 |0 + \xC9 |0 + \xCB |0 + \xCD |0 + \xCE |0 + \xD4 |0 + \xD5 |0 + \xD6 |0 + \xD7 |0 + \xD8 |0 + \xDA |0 + \xDB |0 + \xDC |0 + \xDF |0 + \xE1 |0 + \xE2 |0 + \xE3 |0 + \xE4 |0 + \xE5 |0 + \xE6 |0 + \xE9 |0 + \xEB |0 + \xED |0 + \xEE |0 + \xF4 |0 + \xF5 |0 + \xF6 |0 + \xF7 |0 + \xF8 |0 + \xFA |0 + \xFB |0 + \xFC |0 + \xC0 |0 + \xE0 |0 + \xA1 |0 + \xB1 |0 + \xC8 |0 + \xE8 |0 + \xD0 |0 + \xF0 |0 + \xAA |0 + \xBA |0 + \xCC |0 + \xEC |0 + \xCA |0 + \xEA |0 + \xAB |0 + \xBB |0 + \xA5 |0 + \xB5 |0 + \xCF |0 + \xEF |0 + \xC7 |0 + \xE7 |0 + \xD3 |0 + \xF3 |0 + \xA2 |0 + \xA6 |0 + \xB6 |0 + \xD1 |0 + \xF1 |0 + \xBD |0 + \xBF |0 + \xD2 |0 + \xF2 |0 + \xA3 |0 + \xB3 |0 + \xA9 |0 + \xB9 |0 + \xAC |0 + \xBC |0 + \xDD |0 + \xFD |0 + \xDE |0 + \xFE |0 + \xD9 |0 + \xF9 |0 + \xAE |0 + \xBE |0 + \xB7 |0 + \xFF |0 + \xB2 |0 +END CHARMAP diff --git a/ext/Encode/Encode/iso8859-5.ucm b/ext/Encode/Encode/iso8859-5.ucm new file mode 100644 index 0000000000..72d60d66d5 --- /dev/null +++ b/ext/Encode/Encode/iso8859-5.ucm @@ -0,0 +1,264 @@ +# Written by compile -n iso8859-5 -o Encode/iso8859-5.ucm Encode/iso8859-5.enc + "iso8859-5" + 1 + 1 + \x3F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x04 |0 + \x05 |0 + \x06 |0 + \x07 |0 + \x08 |0 + \x09 |0 + \x0A |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x14 |0 + \x15 |0 + \x16 |0 + \x17 |0 + \x18 |0 + \x19 |0 + \x1A |0 + \x1B |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x25 |0 + \x26 |0 + \x27 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x30 |0 + \x31 |0 + \x32 |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x37 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x3C |0 + \x3D |0 + \x3E |0 + \x3F |0 + \x40 |0 + \x41 |0 + \x42 |0 + \x43 |0 + \x44 |0 + \x45 |0 + \x46 |0 + \x47 |0 + \x48 |0 + \x49 |0 + \x4A |0 + \x4B |0 + \x4C |0 + \x4D |0 + \x4E |0 + \x4F |0 + \x50 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x54 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x58 |0 + \x59 |0 + \x5A |0 + \x5B |0 + \x5C |0 + \x5D |0 + \x5E |0 + \x5F |0 + \x60 |0 + \x61 |0 + \x62 |0 + \x63 |0 + \x64 |0 + \x65 |0 + \x66 |0 + \x67 |0 + \x68 |0 + \x69 |0 + \x6A |0 + \x6B |0 + \x6C |0 + \x6D |0 + \x6E |0 + \x6F |0 + \x70 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x74 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \x78 |0 + \x79 |0 + \x7A |0 + \x7B |0 + \x7C |0 + \x7D |0 + \x7E |0 + \x7F |0 + \x80 |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x8A |0 + \x8B |0 + \x8C |0 + \x8D |0 + \x8E |0 + \x8F |0 + \x90 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \x9A |0 + \x9B |0 + \x9C |0 + \x9D |0 + \x9E |0 + \x9F |0 + \xA0 |0 + \xFD |0 + \xAD |0 + \xA1 |0 + \xA2 |0 + \xA3 |0 + \xA4 |0 + \xA5 |0 + \xA6 |0 + \xA7 |0 + \xA8 |0 + \xA9 |0 + \xAA |0 + \xAB |0 + \xAC |0 + \xAE |0 + \xAF |0 + \xB0 |0 + \xB1 |0 + \xB2 |0 + \xB3 |0 + \xB4 |0 + \xB5 |0 + \xB6 |0 + \xB7 |0 + \xB8 |0 + \xB9 |0 + \xBA |0 + \xBB |0 + \xBC |0 + \xBD |0 + \xBE |0 + \xBF |0 + \xC0 |0 + \xC1 |0 + \xC2 |0 + \xC3 |0 + \xC4 |0 + \xC5 |0 + \xC6 |0 + \xC7 |0 + \xC8 |0 + \xC9 |0 + \xCA |0 + \xCB |0 + \xCC |0 + \xCD |0 + \xCE |0 + \xCF |0 + \xD0 |0 + \xD1 |0 + \xD2 |0 + \xD3 |0 + \xD4 |0 + \xD5 |0 + \xD6 |0 + \xD7 |0 + \xD8 |0 + \xD9 |0 + \xDA |0 + \xDB |0 + \xDC |0 + \xDD |0 + \xDE |0 + \xDF |0 + \xE0 |0 + \xE1 |0 + \xE2 |0 + \xE3 |0 + \xE4 |0 + \xE5 |0 + \xE6 |0 + \xE7 |0 + \xE8 |0 + \xE9 |0 + \xEA |0 + \xEB |0 + \xEC |0 + \xED |0 + \xEE |0 + \xEF |0 + \xF1 |0 + \xF2 |0 + \xF3 |0 + \xF4 |0 + \xF5 |0 + \xF6 |0 + \xF7 |0 + \xF8 |0 + \xF9 |0 + \xFA |0 + \xFB |0 + \xFC |0 + \xFE |0 + \xFF |0 + \xF0 |0 +END CHARMAP diff --git a/ext/Encode/Encode/iso8859-6.ucm b/ext/Encode/Encode/iso8859-6.ucm new file mode 100644 index 0000000000..60d449ea8e --- /dev/null +++ b/ext/Encode/Encode/iso8859-6.ucm @@ -0,0 +1,219 @@ +# Written by compile -n iso8859-6 -o Encode/iso8859-6.ucm Encode/iso8859-6.enc + "iso8859-6" + 1 + 1 + \x3F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x04 |0 + \x05 |0 + \x06 |0 + \x07 |0 + \x08 |0 + \x09 |0 + \x0A |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x14 |0 + \x15 |0 + \x16 |0 + \x17 |0 + \x18 |0 + \x19 |0 + \x1A |0 + \x1B |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x25 |0 + \x26 |0 + \x27 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x3A |0 + \x3B |0 + \x3C |0 + \x3D |0 + \x3E |0 + \x3F |0 + \x40 |0 + \x41 |0 + \x42 |0 + \x43 |0 + \x44 |0 + \x45 |0 + \x46 |0 + \x47 |0 + \x48 |0 + \x49 |0 + \x4A |0 + \x4B |0 + \x4C |0 + \x4D |0 + \x4E |0 + \x4F |0 + \x50 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x54 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x58 |0 + \x59 |0 + \x5A |0 + \x5B |0 + \x5C |0 + \x5D |0 + \x5E |0 + \x5F |0 + \x60 |0 + \x61 |0 + \x62 |0 + \x63 |0 + \x64 |0 + \x65 |0 + \x66 |0 + \x67 |0 + \x68 |0 + \x69 |0 + \x6A |0 + \x6B |0 + \x6C |0 + \x6D |0 + \x6E |0 + \x6F |0 + \x70 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x74 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \x78 |0 + \x79 |0 + \x7A |0 + \x7B |0 + \x7C |0 + \x7D |0 + \x7E |0 + \x7F |0 + \x80 |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x8A |0 + \x8B |0 + \x8C |0 + \x8D |0 + \x8E |0 + \x8F |0 + \x90 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \x9A |0 + \x9B |0 + \x9C |0 + \x9D |0 + \x9E |0 + \x9F |0 + \xA0 |0 + \xA4 |0 + \xAD |0 + \xAC |0 + \xBB |0 + \xBF |0 + \xC1 |0 + \xC2 |0 + \xC3 |0 + \xC4 |0 + \xC5 |0 + \xC6 |0 + \xC7 |0 + \xC8 |0 + \xC9 |0 + \xCA |0 + \xCB |0 + \xCC |0 + \xCD |0 + \xCE |0 + \xCF |0 + \xD0 |0 + \xD1 |0 + \xD2 |0 + \xD3 |0 + \xD4 |0 + \xD5 |0 + \xD6 |0 + \xD7 |0 + \xD8 |0 + \xD9 |0 + \xDA |0 + \xE0 |0 + \xE1 |0 + \xE2 |0 + \xE3 |0 + \xE4 |0 + \xE5 |0 + \xE6 |0 + \xE7 |0 + \xE8 |0 + \xE9 |0 + \xEA |0 + \xEB |0 + \xEC |0 + \xED |0 + \xEE |0 + \xEF |0 + \xF0 |0 + \xF1 |0 + \xF2 |0 + \x30 |0 + \x31 |0 + \x32 |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x37 |0 + \x38 |0 + \x39 |0 +END CHARMAP diff --git a/ext/Encode/Encode/iso8859-7.ucm b/ext/Encode/Encode/iso8859-7.ucm new file mode 100644 index 0000000000..047083dc18 --- /dev/null +++ b/ext/Encode/Encode/iso8859-7.ucm @@ -0,0 +1,258 @@ +# Written by compile -n iso8859-7 -o Encode/iso8859-7.ucm Encode/iso8859-7.enc + "iso8859-7" + 1 + 1 + \x3F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x04 |0 + \x05 |0 + \x06 |0 + \x07 |0 + \x08 |0 + \x09 |0 + \x0A |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x14 |0 + \x15 |0 + \x16 |0 + \x17 |0 + \x18 |0 + \x19 |0 + \x1A |0 + \x1B |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x25 |0 + \x26 |0 + \x27 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x30 |0 + \x31 |0 + \x32 |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x37 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x3C |0 + \x3D |0 + \x3E |0 + \x3F |0 + \x40 |0 + \x41 |0 + \x42 |0 + \x43 |0 + \x44 |0 + \x45 |0 + \x46 |0 + \x47 |0 + \x48 |0 + \x49 |0 + \x4A |0 + \x4B |0 + \x4C |0 + \x4D |0 + \x4E |0 + \x4F |0 + \x50 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x54 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x58 |0 + \x59 |0 + \x5A |0 + \x5B |0 + \x5C |0 + \x5D |0 + \x5E |0 + \x5F |0 + \x60 |0 + \x61 |0 + \x62 |0 + \x63 |0 + \x64 |0 + \x65 |0 + \x66 |0 + \x67 |0 + \x68 |0 + \x69 |0 + \x6A |0 + \x6B |0 + \x6C |0 + \x6D |0 + \x6E |0 + \x6F |0 + \x70 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x74 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \x78 |0 + \x79 |0 + \x7A |0 + \x7B |0 + \x7C |0 + \x7D |0 + \x7E |0 + \x7F |0 + \x80 |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x8A |0 + \x8B |0 + \x8C |0 + \x8D |0 + \x8E |0 + \x8F |0 + \x90 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \x9A |0 + \x9B |0 + \x9C |0 + \x9D |0 + \x9E |0 + \x9F |0 + \xA0 |0 + \xA3 |0 + \xA6 |0 + \xA7 |0 + \xA8 |0 + \xA9 |0 + \xAB |0 + \xAC |0 + \xAD |0 + \xB0 |0 + \xB1 |0 + \xB2 |0 + \xB3 |0 + \xB7 |0 + \xBB |0 + \xBD |0 + \xA2 |0 + \xA1 |0 + \xB4 |0 + \xB5 |0 + \xB6 |0 + \xB8 |0 + \xB9 |0 + \xBA |0 + \xBC |0 + \xBE |0 + \xBF |0 + \xC0 |0 + \xC1 |0 + \xC2 |0 + \xC3 |0 + \xC4 |0 + \xC5 |0 + \xC6 |0 + \xC7 |0 + \xC8 |0 + \xC9 |0 + \xCA |0 + \xCB |0 + \xCC |0 + \xCD |0 + \xCE |0 + \xCF |0 + \xD0 |0 + \xD1 |0 + \xD3 |0 + \xD4 |0 + \xD5 |0 + \xD6 |0 + \xD7 |0 + \xD8 |0 + \xD9 |0 + \xDA |0 + \xDB |0 + \xDC |0 + \xDD |0 + \xDE |0 + \xDF |0 + \xE0 |0 + \xE1 |0 + \xE2 |0 + \xE3 |0 + \xE4 |0 + \xE5 |0 + \xE6 |0 + \xE7 |0 + \xE8 |0 + \xE9 |0 + \xEA |0 + \xEB |0 + \xEC |0 + \xED |0 + \xEE |0 + \xEF |0 + \xF0 |0 + \xF1 |0 + \xF2 |0 + \xF3 |0 + \xF4 |0 + \xF5 |0 + \xF6 |0 + \xF7 |0 + \xF8 |0 + \xF9 |0 + \xFA |0 + \xFB |0 + \xFC |0 + \xFD |0 + \xFE |0 + \xAF |0 +END CHARMAP diff --git a/ext/Encode/Encode/iso8859-8.ucm b/ext/Encode/Encode/iso8859-8.ucm new file mode 100644 index 0000000000..0accf424d5 --- /dev/null +++ b/ext/Encode/Encode/iso8859-8.ucm @@ -0,0 +1,226 @@ +# Written by compile -n iso8859-8 -o Encode/iso8859-8.ucm Encode/iso8859-8.enc + "iso8859-8" + 1 + 1 + \x3F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x04 |0 + \x05 |0 + \x06 |0 + \x07 |0 + \x08 |0 + \x09 |0 + \x0A |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x14 |0 + \x15 |0 + \x16 |0 + \x17 |0 + \x18 |0 + \x19 |0 + \x1A |0 + \x1B |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x25 |0 + \x26 |0 + \x27 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x30 |0 + \x31 |0 + \x32 |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x37 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x3C |0 + \x3D |0 + \x3E |0 + \x3F |0 + \x40 |0 + \x41 |0 + \x42 |0 + \x43 |0 + \x44 |0 + \x45 |0 + \x46 |0 + \x47 |0 + \x48 |0 + \x49 |0 + \x4A |0 + \x4B |0 + \x4C |0 + \x4D |0 + \x4E |0 + \x4F |0 + \x50 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x54 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x58 |0 + \x59 |0 + \x5A |0 + \x5B |0 + \x5C |0 + \x5D |0 + \x5E |0 + \x5F |0 + \x60 |0 + \x61 |0 + \x62 |0 + \x63 |0 + \x64 |0 + \x65 |0 + \x66 |0 + \x67 |0 + \x68 |0 + \x69 |0 + \x6A |0 + \x6B |0 + \x6C |0 + \x6D |0 + \x6E |0 + \x6F |0 + \x70 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x74 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \x78 |0 + \x79 |0 + \x7A |0 + \x7B |0 + \x7C |0 + \x7D |0 + \x7E |0 + \x7F |0 + \x80 |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x8A |0 + \x8B |0 + \x8C |0 + \x8D |0 + \x8E |0 + \x8F |0 + \x90 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \x9A |0 + \x9B |0 + \x9C |0 + \x9D |0 + \x9E |0 + \x9F |0 + \xA0 |0 + \xA2 |0 + \xA3 |0 + \xA4 |0 + \xA5 |0 + \xA6 |0 + \xA7 |0 + \xA8 |0 + \xA9 |0 + \xAB |0 + \xAC |0 + \xAD |0 + \xAE |0 + \xB0 |0 + \xB1 |0 + \xB2 |0 + \xB3 |0 + \xB4 |0 + \xB5 |0 + \xB6 |0 + \xB7 |0 + \xB8 |0 + \xB9 |0 + \xBB |0 + \xBC |0 + \xBD |0 + \xBE |0 + \xAA |0 + \xBA |0 + \xE0 |0 + \xE1 |0 + \xE2 |0 + \xE3 |0 + \xE4 |0 + \xE5 |0 + \xE6 |0 + \xE7 |0 + \xE8 |0 + \xE9 |0 + \xEA |0 + \xEB |0 + \xEC |0 + \xED |0 + \xEE |0 + \xEF |0 + \xF0 |0 + \xF1 |0 + \xF2 |0 + \xF3 |0 + \xF4 |0 + \xF5 |0 + \xF6 |0 + \xF7 |0 + \xF8 |0 + \xF9 |0 + \xFA |0 + \xDF |0 + \xAF |0 +END CHARMAP diff --git a/ext/Encode/Encode/iso8859-9.ucm b/ext/Encode/Encode/iso8859-9.ucm new file mode 100644 index 0000000000..8393dea760 --- /dev/null +++ b/ext/Encode/Encode/iso8859-9.ucm @@ -0,0 +1,264 @@ +# Written by compile -n iso8859-9 -o Encode/iso8859-9.ucm Encode/iso8859-9.enc + "iso8859-9" + 1 + 1 + \x3F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x04 |0 + \x05 |0 + \x06 |0 + \x07 |0 + \x08 |0 + \x09 |0 + \x0A |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x14 |0 + \x15 |0 + \x16 |0 + \x17 |0 + \x18 |0 + \x19 |0 + \x1A |0 + \x1B |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x25 |0 + \x26 |0 + \x27 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x30 |0 + \x31 |0 + \x32 |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x37 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x3C |0 + \x3D |0 + \x3E |0 + \x3F |0 + \x40 |0 + \x41 |0 + \x42 |0 + \x43 |0 + \x44 |0 + \x45 |0 + \x46 |0 + \x47 |0 + \x48 |0 + \x49 |0 + \x4A |0 + \x4B |0 + \x4C |0 + \x4D |0 + \x4E |0 + \x4F |0 + \x50 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x54 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x58 |0 + \x59 |0 + \x5A |0 + \x5B |0 + \x5C |0 + \x5D |0 + \x5E |0 + \x5F |0 + \x60 |0 + \x61 |0 + \x62 |0 + \x63 |0 + \x64 |0 + \x65 |0 + \x66 |0 + \x67 |0 + \x68 |0 + \x69 |0 + \x6A |0 + \x6B |0 + \x6C |0 + \x6D |0 + \x6E |0 + \x6F |0 + \x70 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x74 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \x78 |0 + \x79 |0 + \x7A |0 + \x7B |0 + \x7C |0 + \x7D |0 + \x7E |0 + \x7F |0 + \x80 |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x8A |0 + \x8B |0 + \x8C |0 + \x8D |0 + \x8E |0 + \x8F |0 + \x90 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \x9A |0 + \x9B |0 + \x9C |0 + \x9D |0 + \x9E |0 + \x9F |0 + \xA0 |0 + \xA1 |0 + \xA2 |0 + \xA3 |0 + \xA4 |0 + \xA5 |0 + \xA6 |0 + \xA7 |0 + \xA8 |0 + \xA9 |0 + \xAA |0 + \xAB |0 + \xAC |0 + \xAD |0 + \xAE |0 + \xAF |0 + \xB0 |0 + \xB1 |0 + \xB2 |0 + \xB3 |0 + \xB4 |0 + \xB5 |0 + \xB6 |0 + \xB7 |0 + \xB8 |0 + \xB9 |0 + \xBA |0 + \xBB |0 + \xBC |0 + \xBD |0 + \xBE |0 + \xBF |0 + \xC0 |0 + \xC1 |0 + \xC2 |0 + \xC3 |0 + \xC4 |0 + \xC5 |0 + \xC6 |0 + \xC7 |0 + \xC8 |0 + \xC9 |0 + \xCA |0 + \xCB |0 + \xCC |0 + \xCD |0 + \xCE |0 + \xCF |0 + \xD1 |0 + \xD2 |0 + \xD3 |0 + \xD4 |0 + \xD5 |0 + \xD6 |0 + \xD7 |0 + \xD8 |0 + \xD9 |0 + \xDA |0 + \xDB |0 + \xDC |0 + \xDF |0 + \xE0 |0 + \xE1 |0 + \xE2 |0 + \xE3 |0 + \xE4 |0 + \xE5 |0 + \xE6 |0 + \xE7 |0 + \xE8 |0 + \xE9 |0 + \xEA |0 + \xEB |0 + \xEC |0 + \xED |0 + \xEE |0 + \xEF |0 + \xF1 |0 + \xF2 |0 + \xF3 |0 + \xF4 |0 + \xF5 |0 + \xF6 |0 + \xF7 |0 + \xF8 |0 + \xF9 |0 + \xFA |0 + \xFB |0 + \xFC |0 + \xFF |0 + \xD0 |0 + \xF0 |0 + \xDD |0 + \xFD |0 + \xDE |0 + \xFE |0 +END CHARMAP diff --git a/ext/Encode/Encode/posix-bc.ucm b/ext/Encode/Encode/posix-bc.ucm new file mode 100644 index 0000000000..6d9c52f235 --- /dev/null +++ b/ext/Encode/Encode/posix-bc.ucm @@ -0,0 +1,264 @@ +# Written by compile -n posix-bc -o Encode/posix-bc.ucm Encode/posix-bc.enc + "posix-bc" + 1 + 1 + \x6F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x37 |0 + \x2D |0 + \x2E |0 + \x2F |0 + \x16 |0 + \x05 |0 + \x15 |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x3C |0 + \x3D |0 + \x32 |0 + \x26 |0 + \x18 |0 + \x19 |0 + \x3F |0 + \x27 |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x40 |0 + \x5A |0 + \x7F |0 + \x7B |0 + \x5B |0 + \x6C |0 + \x50 |0 + \x7D |0 + \x4D |0 + \x5D |0 + \x5C |0 + \x4E |0 + \x6B |0 + \x60 |0 + \x4B |0 + \x61 |0 + \xF0 |0 + \xF1 |0 + \xF2 |0 + \xF3 |0 + \xF4 |0 + \xF5 |0 + \xF6 |0 + \xF7 |0 + \xF8 |0 + \xF9 |0 + \x7A |0 + \x5E |0 + \x4C |0 + \x7E |0 + \x6E |0 + \x6F |0 + \x7C |0 + \xC1 |0 + \xC2 |0 + \xC3 |0 + \xC4 |0 + \xC5 |0 + \xC6 |0 + \xC7 |0 + \xC8 |0 + \xC9 |0 + \xD1 |0 + \xD2 |0 + \xD3 |0 + \xD4 |0 + \xD5 |0 + \xD6 |0 + \xD7 |0 + \xD8 |0 + \xD9 |0 + \xE2 |0 + \xE3 |0 + \xE4 |0 + \xE5 |0 + \xE6 |0 + \xE7 |0 + \xE8 |0 + \xE9 |0 + \xBB |0 + \xBC |0 + \xBD |0 + \x6A |0 + \x6D |0 + \x4A |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \xA2 |0 + \xA3 |0 + \xA4 |0 + \xA5 |0 + \xA6 |0 + \xA7 |0 + \xA8 |0 + \xA9 |0 + \xFB |0 + \x4F |0 + \xFD |0 + \xFF |0 + \x07 |0 + \x20 |0 + \x21 |0 + \x22 |0 + \x23 |0 + \x24 |0 + \x25 |0 + \x06 |0 + \x17 |0 + \x28 |0 + \x29 |0 + \x2A |0 + \x2B |0 + \x2C |0 + \x09 |0 + \x0A |0 + \x1B |0 + \x30 |0 + \x31 |0 + \x1A |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x08 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x04 |0 + \x14 |0 + \x3E |0 + \x5F |0 + \x41 |0 + \xAA |0 + \xB0 |0 + \xB1 |0 + \x9F |0 + \xB2 |0 + \xD0 |0 + \xB5 |0 + \x79 |0 + \xB4 |0 + \x9A |0 + \x8A |0 + \xBA |0 + \xCA |0 + \xAF |0 + \xA1 |0 + \x90 |0 + \x8F |0 + \xEA |0 + \xFA |0 + \xBE |0 + \xA0 |0 + \xB6 |0 + \xB3 |0 + \x9D |0 + \xDA |0 + \x9B |0 + \x8B |0 + \xB7 |0 + \xB8 |0 + \xB9 |0 + \xAB |0 + \x64 |0 + \x65 |0 + \x62 |0 + \x66 |0 + \x63 |0 + \x67 |0 + \x9E |0 + \x68 |0 + \x74 |0 + \x71 |0 + \x72 |0 + \x73 |0 + \x78 |0 + \x75 |0 + \x76 |0 + \x77 |0 + \xAC |0 + \x69 |0 + \xED |0 + \xEE |0 + \xEB |0 + \xEF |0 + \xEC |0 + \xBF |0 + \x80 |0 + \xE0 |0 + \xFE |0 + \xDD |0 + \xFC |0 + \xAD |0 + \xAE |0 + \x59 |0 + \x44 |0 + \x45 |0 + \x42 |0 + \x46 |0 + \x43 |0 + \x47 |0 + \x9C |0 + \x48 |0 + \x54 |0 + \x51 |0 + \x52 |0 + \x53 |0 + \x58 |0 + \x55 |0 + \x56 |0 + \x57 |0 + \x8C |0 + \x49 |0 + \xCD |0 + \xCE |0 + \xCB |0 + \xCF |0 + \xCC |0 + \xE1 |0 + \x70 |0 + \xC0 |0 + \xDE |0 + \xDB |0 + \xDC |0 + \x8D |0 + \x8E |0 + \xDF |0 +END CHARMAP diff --git a/ext/Encode/Encode/symbol.ucm b/ext/Encode/Encode/symbol.ucm new file mode 100644 index 0000000000..51466e616b --- /dev/null +++ b/ext/Encode/Encode/symbol.ucm @@ -0,0 +1,262 @@ +# Written by compile -n symbol -o Encode/symbol.ucm Encode/symbol.enc + "symbol" + 1 + 1 + \x3F +# +CHARMAP + \x00 |0 + \x01 |0 + \x02 |0 + \x03 |0 + \x04 |0 + \x05 |0 + \x06 |0 + \x07 |0 + \x08 |0 + \x09 |0 + \x0A |0 + \x0B |0 + \x0C |0 + \x0D |0 + \x0E |0 + \x0F |0 + \x10 |0 + \x11 |0 + \x12 |0 + \x13 |0 + \x14 |0 + \x15 |0 + \x16 |0 + \x17 |0 + \x18 |0 + \x19 |0 + \x1A |0 + \x1B |0 + \x1C |0 + \x1D |0 + \x1E |0 + \x1F |0 + \x20 |0 + \x21 |0 + \x23 |0 + \x25 |0 + \x26 |0 + \x28 |0 + \x29 |0 + \x2B |0 + \x2C |0 + \x2E |0 + \x2F |0 + \x30 |0 + \x31 |0 + \x32 |0 + \x33 |0 + \x34 |0 + \x35 |0 + \x36 |0 + \x37 |0 + \x38 |0 + \x39 |0 + \x3A |0 + \x3B |0 + \x3C |0 + \x3D |0 + \x3E |0 + \x3F |0 + \x5B |0 + \x5D |0 + \x5F |0 + \x7B |0 + \x7C |0 + \x7D |0 + \x7F |0 + \x80 |0 + \x81 |0 + \x82 |0 + \x83 |0 + \x84 |0 + \x85 |0 + \x86 |0 + \x87 |0 + \x88 |0 + \x89 |0 + \x8A |0 + \x8B |0 + \x8C |0 + \x8D |0 + \x8E |0 + \x8F |0 + \x90 |0 + \x91 |0 + \x92 |0 + \x93 |0 + \x94 |0 + \x95 |0 + \x96 |0 + \x97 |0 + \x98 |0 + \x99 |0 + \x9A |0 + \x9B |0 + \x9C |0 + \x9D |0 + \x9E |0 + \x9F |0 + \xD3 |0 + \xD8 |0 + \xD2 |0 + \xB0 |0 + \xB1 |0 + \xB4 |0 + \xB8 |0 + \xA6 |0 + \x41 |0 + \x42 |0 + \x47 |0 + \x44 |0 + \x45 |0 + \x5A |0 + \x48 |0 + \x51 |0 + \x49 |0 + \x4B |0 + \x4C |0 + \x4D |0 + \x4E |0 + \x58 |0 + \x4F |0 + \x50 |0 + \x52 |0 + \x53 |0 + \x54 |0 + \x55 |0 + \x46 |0 + \x43 |0 + \x59 |0 + \x57 |0 + \x61 |0 + \x62 |0 + \x67 |0 + \x64 |0 + \x65 |0 + \x7A |0 + \x68 |0 + \x71 |0 + \x69 |0 + \x6B |0 + \x6C |0 + \x6D |0 + \x6E |0 + \x78 |0 + \x6F |0 + \x70 |0 + \x72 |0 + \x56 |0 + \x73 |0 + \x74 |0 + \x75 |0 + \x66 |0 + \x63 |0 + \x79 |0 + \x77 |0 + \x4A |0 + \xA1 |0 + \x6A |0 + \x76 |0 + \xB7 |0 + \xBC |0 + \xA2 |0 + \xB2 |0 + \xA4 |0 + \xC1 |0 + \xC3 |0 + \xC2 |0 + \xD4 |0 + \xC0 |0 + \xAC |0 + \xAD |0 + \xAE |0 + \xAF |0 + \xAB |0 + \xBF |0 + \xDC |0 + \xDD |0 + \xDE |0 + \xDF |0 + \xDB |0 + \x22 |0 + \xB6 |0 + \x24 |0 + \xC6 |0 + \xD1 |0 + \xCE |0 + \xCF |0 + \x27 |0 + \xD5 |0 + \xE5 |0 + \x2D |0 + \x2A |0 + \xD6 |0 + \xB5 |0 + \xA5 |0 + \xD0 |0 + \xD9 |0 + \xDA |0 + \xC7 |0 + \xC8 |0 + \xF2 |0 + \x5C |0 + \x7E |0 + \x40 |0 + \xBB |0 + \xB9 |0 + \xBA |0 + \xA3 |0 + \xB3 |0 + \xCC |0 + \xC9 |0 + \xCB |0 + \xCD |0 + \xCA |0 + \xC5 |0 + \xC4 |0 + \x5E |0 + \xE0 |0 + \xD7 |0 + \xF3 |0 + \xF5 |0 + \xE1 |0 + \xF1 |0 + \xAA |0 + \xA7 |0 + \xA9 |0 + \xA8 |0 + \x60 |0 + \xBD |0 + \xBE |0 + \xE2 |0 + \xE3 |0 + \xE4 |0 + \xE6 |0 + \xE7 |0 + \xE8 |0 + \xE9 |0 + \xEA |0 + \xEB |0 + \xEC |0 + \xED |0 + \xEE |0 + \xEF |0 + \xF4 |0 + \xF6 |0 + \xF7 |0 + \xF8 |0 + \xF9 |0 + \xFA |0 + \xFB |0 + \xFC |0 + \xFD |0 + \xFE |0 + \xF0 |0 +END CHARMAP diff --git a/ext/Encode/Makefile.PL b/ext/Encode/Makefile.PL index 4b1ec95ad2..0b20c48c90 100644 --- a/ext/Encode/Makefile.PL +++ b/ext/Encode/Makefile.PL @@ -1,14 +1,14 @@ use ExtUtils::MakeMaker; -my %tables = (iso8859 => ['ascii.enc', 'cp1250.enc'], - EBCDIC => ['cp1047.enc','cp37.enc','posix-bc.enc'], - Symbols => ['symbol.enc','dingbats.enc'], +my %tables = (iso8859 => ['ascii.ucm', 'cp1250.ucm'], + EBCDIC => ['cp1047.ucm','cp37.ucm','posix-bc.ucm'], + Symbols => ['symbol.ucm','dingbats.ucm'], ); opendir(ENC,'Encode'); while (defined(my $file = readdir(ENC))) { - if ($file =~ /iso8859.*\.enc/) + if ($file =~ /iso8859.*\.ucm/) { push(@{$tables{iso8859}},$file); } @@ -39,19 +39,19 @@ sub post_initialize foreach my $f (@{$self->{'O_FILES'}}) { $o{$f} = 1; - } + } my $x = $self->{'OBJ_EXT'}; # Add the table O_FILES foreach my $e (keys %tables) { $o{$e.$x} = 1; - } - # Reset the variable + } + # Reset the variable $self->{'O_FILES'} = [sort keys %o]; my @files; foreach my $table (keys %tables) { - foreach my $ext (qw($(OBJ_EXT) .c .h .def)) + foreach my $ext (qw($(OBJ_EXT) .c .h .def .fnm)) { push (@files,$table.$ext); } @@ -64,9 +64,8 @@ sub postamble { my $self = shift; my $dir = $self->catdir($self->curdir,'Encode'); - my $str = "# Encode$(OBJ_EXT) depends on .h and .def files not .c files - but all written by compile\n"; + my $str = "# Encode\$(OBJ_EXT) depends on .h and .def files not .c files - but all written by compile\n"; $str .= 'Encode$(OBJ_EXT) :'; - my @rules; foreach my $table (keys %tables) { $str .= " $table.c"; @@ -89,22 +88,14 @@ sub postamble $continuator = ''; } } - $numlines = 1; - $lengthsofar = length($str); - $continuator = ''; - $str .= "\n\t\$(PERL) compile \$\@"; + $str .= "\n\t\$(PERL) compile -o \$\@ -f $table.fnm\n\n"; + open (FILELIST, ">$table.fnm") + || die "Could not open $table.fnm: $!"; foreach my $file (@{$tables{$table}}) { - $str .= $continuator.' '.$self->catfile($dir,$file); - if ( length($str)-$lengthsofar > 128*$numlines ) - { - $continuator .= "\n\t\$(PERL) compile \$\@"; - $numlines++; - } else { - $continuator = ''; - } + print FILELIST $self->catfile($dir,$file) . "\n"; } - $str .= "\n\n"; + close(FILELIST); } return $str; } diff --git a/ext/Encode/compile b/ext/Encode/compile index b890a04d81..f6957d260b 100755 --- a/ext/Encode/compile +++ b/ext/Encode/compile @@ -1,6 +1,10 @@ #!../../perl -w BEGIN { @INC = '../../lib' }; use strict; +use Getopt::Std; +my @orig_ARGV = @ARGV; +my $perforce = '$Id$'; + sub encode_U { @@ -45,13 +49,17 @@ sub encode_M # Win32 does not expand globs on command line eval "\@ARGV = map(glob(\$_),\@ARGV)" if ($^O eq 'MSWin32'); -my $cname = shift(@ARGV); +my %opt; +getopts('qo:f:n:',\%opt); +my $cname = (exists $opt{'o'}) ? $opt{'o'} : shift(@ARGV); chmod(0666,$cname) if -f $cname && !-w $cname; open(C,">$cname") || die "Cannot open $cname:$!"; + + my $dname = $cname; $dname =~ s/(\.[^\.]*)?$/.def/; -my ($doC,$doEnc,$doUcm); +my ($doC,$doEnc,$doUcm,$doPet); if ($cname =~ /\.(c|xs)$/) { @@ -65,11 +73,12 @@ if ($cname =~ /\.(c|xs)$/) foreach my $fh (\*C,\*D,\*H) { - print $fh <<"END"; + print $fh <<"END" unless $opt{'q'}; /* !!!!!!! DO NOT EDIT THIS FILE !!!!!!! This file was autogenerated by: - $^X $0 $cname @ARGV + $^X $0 $cname @orig_ARGV + (Repository $perforce) */ END } @@ -91,6 +100,24 @@ elsif ($cname =~ /\.ucm$/) { $doUcm = 1; } +elsif ($cname =~ /\.pet$/) + { + $doPet = 1; + } + +my @encfiles; +if (exists $opt{'f'}) + { + # -F is followed by name of file containing list of filenames + my $flist = $opt{'f'}; + open(FLIST,$flist) || die "Cannot open $flist:$!"; + chomp(@encfiles = ); + close(FLIST); + } +else + { + @encfiles = @ARGV; + } my %encoding; my %strings; @@ -109,18 +136,20 @@ sub cmp_name return $a cmp $b; } -foreach my $enc (sort cmp_name @ARGV) + +foreach my $enc (sort cmp_name @encfiles) { my ($name,$sfx) = $enc =~ /^.*?([\w-]+)\.(enc|ucm)$/; + $name = delete $opt{'n'} if exists $opt{'n'}; if (open(E,$enc)) { if ($sfx eq 'enc') { - compile_enc(\*E,lc($name),\*C); + compile_enc(\*E,lc($name)); } else { - compile_ucm(\*E,lc($name),\*C); + compile_ucm(\*E,lc($name)); } } else @@ -131,12 +160,21 @@ foreach my $enc (sort cmp_name @ARGV) if ($doC) { + foreach my $name (sort cmp_name keys %encoding) + { + my ($e2u,$u2e,$erep,$min_el,$max_el) = @{$encoding{$name}}; + output(\*C,$name.'_utf8',$e2u); + output(\*C,'utf8_'.$name,$u2e); + push(@{$encoding{$name}},outstring(\*C,$e2u->{Cname}.'_def',$erep)); + } foreach my $enc (sort cmp_name keys %encoding) { + my ($e2u,$u2e,$rep,$min_el,$max_el,$rsym) = @{$encoding{$enc}}; + my @info = ($e2u->{Cname},$u2e->{Cname},$rsym,length($rep),$min_el,$max_el); my $sym = "${enc}_encoding"; $sym =~ s/\W+/_/g; print C "encode_t $sym = \n"; - print C " {",join(',',"\"$enc\"",@{$encoding{$enc}}),"};\n\n"; + print C " {",join(',',@info,"{\"$enc\",(const char *)0}"),"};\n\n"; } foreach my $enc (sort cmp_name keys %encoding) @@ -158,12 +196,29 @@ if ($doC) close(D); close(H); } +elsif ($doEnc) + { + foreach my $name (sort cmp_name keys %encoding) + { + my ($e2u,$u2e,$erep,$min_el,$max_el) = @{$encoding{$name}}; + output_enc(\*C,$name,$e2u); + } + } +elsif ($doUcm) + { + foreach my $name (sort cmp_name keys %encoding) + { + my ($e2u,$u2e,$erep,$min_el,$max_el) = @{$encoding{$name}}; + output_ucm(\*C,$name,$u2e,$erep,$min_el,$max_el); + } + } + close(C); sub compile_ucm { - my ($fh,$name,$ch) = @_; + my ($fh,$name) = @_; my $e2u = {}; my $u2e = {}; my $cs; @@ -187,12 +242,16 @@ sub compile_ucm } my $erep; my $urep; + my $max_el; + my $min_el; if (exists $attr{'subchar'}) { - my @byte = $attr{'subchar'} =~ /^\s*(?:\\x([0-9a-f]+))+\s*$/; - $erep = join('',map(hex($_),@byte)); + my @byte; + $attr{'subchar'} =~ /^\s*/cg; + push(@byte,$1) while $attr{'subchar'} =~ /\G\\x([0-9a-f]+)/icg; + $erep = join('',map(chr(hex($_)),@byte)); } - warn "Scanning $name ($cs)\n"; + print "Scanning $name ($cs)\n"; my $nfb = 0; my $hfb = 0; while (<$fh>) @@ -200,12 +259,20 @@ sub compile_ucm s/#.*$//; last if /^\s*END\s+CHARMAP\s*$/i; next if /^\s*$/; - my ($u,@byte) = /^\s+(?:\\x([0-9a-f]+))+\s*(\|[0-3]|)\s*$/i; - my $fb = pop(@byte); + my ($u,@byte); + my $fb = ''; + $u = $1 if (/^\s+/igc); + push(@byte,$1) while /\G\\x([0-9a-f]+)/igc; + $fb = $1 if /\G\s*(\|[0-3])/gc; + # warn "$_: $u @byte | $fb\n"; + die "Bad line:$_" unless /\G\s*(#.*)?$/gc; if (defined($u)) { my $uch = encode_U(hex($u)); my $ech = join('',map(chr(hex($_)),@byte)); + my $el = length($ech); + $max_el = $el if (!defined($max_el) || $el > $max_el); + $min_el = $el if (!defined($min_el) || $el < $min_el); if (length($fb)) { $fb = substr($fb,1); @@ -228,32 +295,17 @@ sub compile_ucm { warn $_; } - } if ($nfb && $hfb) { die "$nfb entries without fallback, $hfb entries with\n"; } - if ($doC) - { - output($ch,$name.'_utf8',$e2u); - output($ch,'utf8_'.$name,$u2e); - $encoding{$name} = [$e2u->{Cname},$u2e->{Cname}, - outstring($ch,$e2u->{Cname}.'_def',$erep),length($erep)]; - } - elsif ($doEnc) - { - output_enc($ch,$name,$e2u); - } - elsif ($doUcm) - { - output_ucm($ch,$name,$u2e); - } + $encoding{$name} = [$e2u,$u2e,$erep,$min_el,$max_el]; } sub compile_enc { - my ($fh,$name,$ch) = @_; + my ($fh,$name) = @_; my $e2u = {}; my $u2e = {}; @@ -267,11 +319,14 @@ sub compile_enc my ($def,$sym,$pages) = split(/\s+/,scalar(<$fh>)); warn "$type encoded $name\n"; my $rep = ''; + my $min_el; + my $max_el; { my $v = hex($def); no strict 'refs'; $rep = &{"encode_$type"}($v & 0xFF, ($v >> 8) & 0xffe); } + my %seen; while ($pages--) { my $line = <$fh>; @@ -286,9 +341,22 @@ sub compile_enc no strict 'refs'; my $ech = &{"encode_$type"}($ch,$page); my $val = hex(substr($line,0,4,'')); + next if $val == 0xFFFD; if ($val || (!$ch && !$page)) { + my $el = length($ech); + $max_el = $el if (!defined($max_el) || $el > $max_el); + $min_el = $el if (!defined($min_el) || $el < $min_el); my $uch = encode_U($val); + if (exists $seen{$uch}) + { + warn sprintf("U%04X is %02X%02X and %02X%02X\n", + $val,$page,$ch,@{$seen{$uch}}); + } + else + { + $seen{$uch} = [$page,$ch]; + } enter($e2u,$ech,$uch,$e2u,0); enter($u2e,$uch,$ech,$u2e,0); } @@ -301,21 +369,7 @@ sub compile_enc } } } - if ($doC) - { - output($ch,$name.'_utf8',$e2u); - output($ch,'utf8_'.$name,$u2e); - $encoding{$name} = [$e2u->{Cname},$u2e->{Cname}, - outstring($ch,$e2u->{Cname}.'_def',$rep),length($rep)]; - } - elsif ($doEnc) - { - output_enc($ch,$name,$e2u); - } - elsif ($doUcm) - { - output_ucm($ch,$name,$u2e); - } + $encoding{$name} = [$e2u,$u2e,$rep,$min_el,$max_el]; } sub enter @@ -483,10 +537,8 @@ sub output_enc sub decode_U { my $s = shift; - } - sub output_ucm_page { my ($fh,$a,$t,$pre) = @_; @@ -522,8 +574,27 @@ sub output_ucm_page sub output_ucm { - my ($fh,$name,$a) = @_; - print $fh "CHARMAP\n"; + my ($fh,$name,$a,$rep,$min_el,$max_el) = @_; + print $fh "# Written $perforce\n# $0 @orig_ARGV\n" unless $opt{'q'}; + print $fh " \"$name\"\n"; + if (defined $min_el) + { + print $fh " $min_el\n"; + } + if (defined $max_el) + { + print $fh " $max_el\n"; + } + if (defined $rep) + { + print $fh " "; + foreach my $c (split(//,$rep)) + { + printf $fh "\\x%02X",ord($c); + } + print $fh "\n"; + } + print $fh "#\nCHARMAP\n"; output_ucm_page($fh,$a,$a,0); print $fh "END CHARMAP\n"; } diff --git a/ext/Encode/encode.h b/ext/Encode/encode.h index 853ad041b4..aecc66eafe 100644 --- a/ext/Encode/encode.h +++ b/ext/Encode/encode.h @@ -19,11 +19,13 @@ struct encpage_s typedef struct encode_s encode_t; struct encode_s { - const char *name; encpage_t *t_utf8; encpage_t *f_utf8; const U8 *rep; int replen; + U8 min_el; + U8 max_el; + const char *name[2]; }; #ifdef U8 diff --git a/ext/IO/lib/IO/Socket/INET.pm b/ext/IO/lib/IO/Socket/INET.pm index c922bf35c9..d2cc488dd2 100644 --- a/ext/IO/lib/IO/Socket/INET.pm +++ b/ext/IO/lib/IO/Socket/INET.pm @@ -151,11 +151,16 @@ sub configure { $sock->socket(AF_INET, $type, $proto) or return _error($sock, $!, "$!"); - if ($arg->{Reuse}) { + if ($arg->{Reuse} || $arg->{ReuseAddr}) { $sock->sockopt(SO_REUSEADDR,1) or return _error($sock, $!, "$!"); } + if ($arg->{ReusePort}) { + $sock->sockopt(SO_REUSEPORT,1) or + return _error($sock, $!, "$!"); + } + if($lport || ($laddr ne INADDR_ANY) || exists $arg->{Listen}) { $sock->bind($lport || 0, $laddr) or return _error($sock, $!, "$!"); @@ -302,7 +307,9 @@ C provides. Proto Protocol name (or number) "tcp" | "udp" | ... Type Socket type SOCK_STREAM | SOCK_DGRAM | ... Listen Queue size for listen - Reuse Set SO_REUSEADDR before binding + ReuseAddr Set SO_REUSEADDR before binding + Reuse Set SO_REUSEADDR before binding (deprecated, prefer ReuseAddr) + ReusePort Set SO_REUSEPORT before binding Timeout Timeout value for various operations MultiHomed Try all adresses for multi-homed hosts diff --git a/ext/Opcode/Opcode.xs b/ext/Opcode/Opcode.xs index 04f7c3fa33..e294059856 100644 --- a/ext/Opcode/Opcode.xs +++ b/ext/Opcode/Opcode.xs @@ -233,6 +233,26 @@ BOOT: warn("opset_len %ld\n", (long)opset_len); op_names_init(aTHX); +void +_safe_pkg_prep(Package) + char * Package +PPCODE: + HV *hv; + ENTER; + + hv = gv_stashpv(Package, GV_ADDWARN); /* should exist already */ + + if (strNE(HvNAME(hv),"main")) { + Safefree(HvNAME(hv)); + HvNAME(hv) = savepv("main"); /* make it think it's in main:: */ + hv_store(hv,"_",1,(SV *)PL_defgv,0); /* connect _ to global */ + SvREFCNT_inc((SV *)PL_defgv); /* want to keep _ around! */ + } + LEAVE; + + + + void _safe_call_sv(Package, mask, codesv) @@ -253,12 +273,7 @@ PPCODE: save_hptr(&PL_defstash); /* save current default stash */ /* the assignment to global defstash changes our sense of 'main' */ PL_defstash = gv_stashpv(Package, GV_ADDWARN); /* should exist already */ - if (strNE(HvNAME(PL_defstash),"main")) { - Safefree(HvNAME(PL_defstash)); - HvNAME(PL_defstash) = savepv("main"); /* make it think it's in main:: */ - hv_store(PL_defstash,"_",1,(SV *)PL_defgv,0); /* connect _ to global */ - SvREFCNT_inc((SV *)PL_defgv); /* want to keep _ around! */ - } + save_hptr(&PL_curstash); PL_curstash = PL_defstash; @@ -271,6 +286,7 @@ PPCODE: /* %INC must be clean for use/require in compartment */ save_hash(PL_incgv); + sv_free((SV*)GvHV(PL_incgv)); /* get rid of what save_hash gave us*/ GvHV(PL_incgv) = (HV*)SvREFCNT_inc(GvHV(gv_HVadd(gv_fetchpv("INC",TRUE,SVt_PVHV)))); PUSHMARK(SP); diff --git a/ext/Opcode/Safe.pm b/ext/Opcode/Safe.pm index 7e1d6a34a7..a803b5f12d 100644 --- a/ext/Opcode/Safe.pm +++ b/ext/Opcode/Safe.pm @@ -47,6 +47,7 @@ sub new { # the whole glob *_ rather than $_ and @_ separately, otherwise # @_ in non default packages within the compartment don't work. $obj->share_from('main', $default_share); + Opcode::_safe_pkg_prep($obj->{Root}); return $obj; } diff --git a/ext/Socket/Socket.pm b/ext/Socket/Socket.pm index b4a0419cbc..90e16e6e19 100644 --- a/ext/Socket/Socket.pm +++ b/ext/Socket/Socket.pm @@ -268,6 +268,7 @@ use XSLoader (); SO_RCVLOWAT SO_RCVTIMEO SO_REUSEADDR + SO_REUSEPORT SO_SNDBUF SO_SNDLOWAT SO_SNDTIMEO -- cgit v1.2.1