diff options
author | Charles Bailey <bailey@newman.upenn.edu> | 2001-01-24 06:37:02 +0000 |
---|---|---|
committer | bailey <bailey@newman.upenn.edu> | 2001-01-24 06:37:02 +0000 |
commit | 847a5fae45dac396d0f9e1bb61d5b4ff9d94cdcd (patch) | |
tree | 5b89f040be30cccd4f88f55f17bc5f00081dac76 /ext | |
parent | 0e06870bf080a38cda51c06c6612359afc2334e1 (diff) | |
download | perl-847a5fae45dac396d0f9e1bb61d5b4ff9d94cdcd.tar.gz |
SYN SYN
p4raw-id: //depot/vmsperl@8535
Diffstat (limited to 'ext')
39 files changed, 6611 insertions, 200 deletions
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! <? i? s< s> 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", ">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<B::Terse> 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<n> + +Print OP sequence numbers in base I<n>. If I<n> is greater than 10, the +digit for 11 will be 'a', and so on. If I<n> 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<B::Terse>. The +basic mode is almost indistinguishable from the real B<B::Terse>, and the +exec mode looks very similar, but is in a more logical order and lacks +curly brackets. B<B::Terse> doesn't have a tree mode, so the tree mode +is only vaguely reminiscient of B<B::Terse>. + +=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<B::Debug>; these aren't +very concise at all. + +=item B<-env> + +Use formatting conventions read from the environment variables +C<B_CONCISE_FORMAT>, C<B_CONCISE_GOTO_FORMAT>, and C<B_CONCISE_TREE_FORMAT>. + +=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(>I<exec_text>B<;>I<basic_text>B<)x)> + +Generates I<exec_text> in exec mode, or I<basic_text> in basic mode. + +=item B<(*(>I<text>B<)*)> + +Generates one copy of I<text> for each indentation level. + +=item B<(*(>I<text1>B<;>I<text2>B<)*)> + +Generates one fewer copies of I<text1> than the indentation level, followed +by one copy of I<text2> if the indentation level is more than 0. + +=item B<(?(>I<text1>B<#>I<var>I<Text2>B<)?)> + +If the value of I<var> is true (not empty or zero), generates the +value of I<var> surrounded by I<text1> and I<Text2>, otherwise +nothing. + +=item B<#>I<var> + +Generates the value of the variable I<var>. + +=item B<#>I<var>I<N> + +Generates the value of I<var>, left jutified to fill I<N> 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<B::Concise> 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<smcc@CSUA.Berkeley.EDU> + +=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 <dll.h> /* the dynamic linker include file for S/390 */ +#include <errno.h> /* 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 +<code_set_name> "ascii" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x3F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x04 |0 +<U0005> \x05 |0 +<U0006> \x06 |0 +<U0007> \x07 |0 +<U0008> \x08 |0 +<U0009> \x09 |0 +<U000A> \x0A |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x14 |0 +<U0015> \x15 |0 +<U0016> \x16 |0 +<U0017> \x17 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x1A |0 +<U001B> \x1B |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x20 |0 +<U0021> \x21 |0 +<U0022> \x22 |0 +<U0023> \x23 |0 +<U0024> \x24 |0 +<U0025> \x25 |0 +<U0026> \x26 |0 +<U0027> \x27 |0 +<U0028> \x28 |0 +<U0029> \x29 |0 +<U002A> \x2A |0 +<U002B> \x2B |0 +<U002C> \x2C |0 +<U002D> \x2D |0 +<U002E> \x2E |0 +<U002F> \x2F |0 +<U0030> \x30 |0 +<U0031> \x31 |0 +<U0032> \x32 |0 +<U0033> \x33 |0 +<U0034> \x34 |0 +<U0035> \x35 |0 +<U0036> \x36 |0 +<U0037> \x37 |0 +<U0038> \x38 |0 +<U0039> \x39 |0 +<U003A> \x3A |0 +<U003B> \x3B |0 +<U003C> \x3C |0 +<U003D> \x3D |0 +<U003E> \x3E |0 +<U003F> \x3F |0 +<U0040> \x40 |0 +<U0041> \x41 |0 +<U0042> \x42 |0 +<U0043> \x43 |0 +<U0044> \x44 |0 +<U0045> \x45 |0 +<U0046> \x46 |0 +<U0047> \x47 |0 +<U0048> \x48 |0 +<U0049> \x49 |0 +<U004A> \x4A |0 +<U004B> \x4B |0 +<U004C> \x4C |0 +<U004D> \x4D |0 +<U004E> \x4E |0 +<U004F> \x4F |0 +<U0050> \x50 |0 +<U0051> \x51 |0 +<U0052> \x52 |0 +<U0053> \x53 |0 +<U0054> \x54 |0 +<U0055> \x55 |0 +<U0056> \x56 |0 +<U0057> \x57 |0 +<U0058> \x58 |0 +<U0059> \x59 |0 +<U005A> \x5A |0 +<U005B> \x5B |0 +<U005C> \x5C |0 +<U005D> \x5D |0 +<U005E> \x5E |0 +<U005F> \x5F |0 +<U0060> \x60 |0 +<U0061> \x61 |0 +<U0062> \x62 |0 +<U0063> \x63 |0 +<U0064> \x64 |0 +<U0065> \x65 |0 +<U0066> \x66 |0 +<U0067> \x67 |0 +<U0068> \x68 |0 +<U0069> \x69 |0 +<U006A> \x6A |0 +<U006B> \x6B |0 +<U006C> \x6C |0 +<U006D> \x6D |0 +<U006E> \x6E |0 +<U006F> \x6F |0 +<U0070> \x70 |0 +<U0071> \x71 |0 +<U0072> \x72 |0 +<U0073> \x73 |0 +<U0074> \x74 |0 +<U0075> \x75 |0 +<U0076> \x76 |0 +<U0077> \x77 |0 +<U0078> \x78 |0 +<U0079> \x79 |0 +<U007A> \x7A |0 +<U007B> \x7B |0 +<U007C> \x7C |0 +<U007D> \x7D |0 +<U007E> \x7E |0 +<U007F> \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 +<code_set_name> "cp1047" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x6F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x37 |0 +<U0005> \x2D |0 +<U0006> \x2E |0 +<U0007> \x2F |0 +<U0008> \x16 |0 +<U0009> \x05 |0 +<U000A> \x15 |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x3C |0 +<U0015> \x3D |0 +<U0016> \x32 |0 +<U0017> \x26 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x3F |0 +<U001B> \x27 |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x40 |0 +<U0021> \x5A |0 +<U0022> \x7F |0 +<U0023> \x7B |0 +<U0024> \x5B |0 +<U0025> \x6C |0 +<U0026> \x50 |0 +<U0027> \x7D |0 +<U0028> \x4D |0 +<U0029> \x5D |0 +<U002A> \x5C |0 +<U002B> \x4E |0 +<U002C> \x6B |0 +<U002D> \x60 |0 +<U002E> \x4B |0 +<U002F> \x61 |0 +<U0030> \xF0 |0 +<U0031> \xF1 |0 +<U0032> \xF2 |0 +<U0033> \xF3 |0 +<U0034> \xF4 |0 +<U0035> \xF5 |0 +<U0036> \xF6 |0 +<U0037> \xF7 |0 +<U0038> \xF8 |0 +<U0039> \xF9 |0 +<U003A> \x7A |0 +<U003B> \x5E |0 +<U003C> \x4C |0 +<U003D> \x7E |0 +<U003E> \x6E |0 +<U003F> \x6F |0 +<U0040> \x7C |0 +<U0041> \xC1 |0 +<U0042> \xC2 |0 +<U0043> \xC3 |0 +<U0044> \xC4 |0 +<U0045> \xC5 |0 +<U0046> \xC6 |0 +<U0047> \xC7 |0 +<U0048> \xC8 |0 +<U0049> \xC9 |0 +<U004A> \xD1 |0 +<U004B> \xD2 |0 +<U004C> \xD3 |0 +<U004D> \xD4 |0 +<U004E> \xD5 |0 +<U004F> \xD6 |0 +<U0050> \xD7 |0 +<U0051> \xD8 |0 +<U0052> \xD9 |0 +<U0053> \xE2 |0 +<U0054> \xE3 |0 +<U0055> \xE4 |0 +<U0056> \xE5 |0 +<U0057> \xE6 |0 +<U0058> \xE7 |0 +<U0059> \xE8 |0 +<U005A> \xE9 |0 +<U005B> \xAD |0 +<U005C> \xE0 |0 +<U005D> \xBD |0 +<U005E> \x5F |0 +<U005F> \x6D |0 +<U0060> \x79 |0 +<U0061> \x81 |0 +<U0062> \x82 |0 +<U0063> \x83 |0 +<U0064> \x84 |0 +<U0065> \x85 |0 +<U0066> \x86 |0 +<U0067> \x87 |0 +<U0068> \x88 |0 +<U0069> \x89 |0 +<U006A> \x91 |0 +<U006B> \x92 |0 +<U006C> \x93 |0 +<U006D> \x94 |0 +<U006E> \x95 |0 +<U006F> \x96 |0 +<U0070> \x97 |0 +<U0071> \x98 |0 +<U0072> \x99 |0 +<U0073> \xA2 |0 +<U0074> \xA3 |0 +<U0075> \xA4 |0 +<U0076> \xA5 |0 +<U0077> \xA6 |0 +<U0078> \xA7 |0 +<U0079> \xA8 |0 +<U007A> \xA9 |0 +<U007B> \xC0 |0 +<U007C> \x4F |0 +<U007D> \xD0 |0 +<U007E> \xA1 |0 +<U007F> \x07 |0 +<U0080> \x20 |0 +<U0081> \x21 |0 +<U0082> \x22 |0 +<U0083> \x23 |0 +<U0084> \x24 |0 +<U0085> \x25 |0 +<U0086> \x06 |0 +<U0087> \x17 |0 +<U0088> \x28 |0 +<U0089> \x29 |0 +<U008A> \x2A |0 +<U008B> \x2B |0 +<U008C> \x2C |0 +<U008D> \x09 |0 +<U008E> \x0A |0 +<U008F> \x1B |0 +<U0090> \x30 |0 +<U0091> \x31 |0 +<U0092> \x1A |0 +<U0093> \x33 |0 +<U0094> \x34 |0 +<U0095> \x35 |0 +<U0096> \x36 |0 +<U0097> \x08 |0 +<U0098> \x38 |0 +<U0099> \x39 |0 +<U009A> \x3A |0 +<U009B> \x3B |0 +<U009C> \x04 |0 +<U009D> \x14 |0 +<U009E> \x3E |0 +<U009F> \xFF |0 +<U00A0> \x41 |0 +<U00A1> \xAA |0 +<U00A2> \x4A |0 +<U00A3> \xB1 |0 +<U00A4> \x9F |0 +<U00A5> \xB2 |0 +<U00A6> \x6A |0 +<U00A7> \xB5 |0 +<U00A8> \xBB |0 +<U00A9> \xB4 |0 +<U00AA> \x9A |0 +<U00AB> \x8A |0 +<U00AC> \xB0 |0 +<U00AD> \xCA |0 +<U00AE> \xAF |0 +<U00AF> \xBC |0 +<U00B0> \x90 |0 +<U00B1> \x8F |0 +<U00B2> \xEA |0 +<U00B3> \xFA |0 +<U00B4> \xBE |0 +<U00B5> \xA0 |0 +<U00B6> \xB6 |0 +<U00B7> \xB3 |0 +<U00B8> \x9D |0 +<U00B9> \xDA |0 +<U00BA> \x9B |0 +<U00BB> \x8B |0 +<U00BC> \xB7 |0 +<U00BD> \xB8 |0 +<U00BE> \xB9 |0 +<U00BF> \xAB |0 +<U00C0> \x64 |0 +<U00C1> \x65 |0 +<U00C2> \x62 |0 +<U00C3> \x66 |0 +<U00C4> \x63 |0 +<U00C5> \x67 |0 +<U00C6> \x9E |0 +<U00C7> \x68 |0 +<U00C8> \x74 |0 +<U00C9> \x71 |0 +<U00CA> \x72 |0 +<U00CB> \x73 |0 +<U00CC> \x78 |0 +<U00CD> \x75 |0 +<U00CE> \x76 |0 +<U00CF> \x77 |0 +<U00D0> \xAC |0 +<U00D1> \x69 |0 +<U00D2> \xED |0 +<U00D3> \xEE |0 +<U00D4> \xEB |0 +<U00D5> \xEF |0 +<U00D6> \xEC |0 +<U00D7> \xBF |0 +<U00D8> \x80 |0 +<U00D9> \xFD |0 +<U00DA> \xFE |0 +<U00DB> \xFB |0 +<U00DC> \xFC |0 +<U00DD> \xBA |0 +<U00DE> \xAE |0 +<U00DF> \x59 |0 +<U00E0> \x44 |0 +<U00E1> \x45 |0 +<U00E2> \x42 |0 +<U00E3> \x46 |0 +<U00E4> \x43 |0 +<U00E5> \x47 |0 +<U00E6> \x9C |0 +<U00E7> \x48 |0 +<U00E8> \x54 |0 +<U00E9> \x51 |0 +<U00EA> \x52 |0 +<U00EB> \x53 |0 +<U00EC> \x58 |0 +<U00ED> \x55 |0 +<U00EE> \x56 |0 +<U00EF> \x57 |0 +<U00F0> \x8C |0 +<U00F1> \x49 |0 +<U00F2> \xCD |0 +<U00F3> \xCE |0 +<U00F4> \xCB |0 +<U00F5> \xCF |0 +<U00F6> \xCC |0 +<U00F7> \xE1 |0 +<U00F8> \x70 |0 +<U00F9> \xDD |0 +<U00FA> \xDE |0 +<U00FB> \xDB |0 +<U00FC> \xDC |0 +<U00FD> \x8D |0 +<U00FE> \x8E |0 +<U00FF> \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 +<code_set_name> "cp1250" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x3F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x04 |0 +<U0005> \x05 |0 +<U0006> \x06 |0 +<U0007> \x07 |0 +<U0008> \x08 |0 +<U0009> \x09 |0 +<U000A> \x0A |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x14 |0 +<U0015> \x15 |0 +<U0016> \x16 |0 +<U0017> \x17 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x1A |0 +<U001B> \x1B |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x20 |0 +<U0021> \x21 |0 +<U0022> \x22 |0 +<U0023> \x23 |0 +<U0024> \x24 |0 +<U0025> \x25 |0 +<U0026> \x26 |0 +<U0027> \x27 |0 +<U0028> \x28 |0 +<U0029> \x29 |0 +<U002A> \x2A |0 +<U002B> \x2B |0 +<U002C> \x2C |0 +<U002D> \x2D |0 +<U002E> \x2E |0 +<U002F> \x2F |0 +<U0030> \x30 |0 +<U0031> \x31 |0 +<U0032> \x32 |0 +<U0033> \x33 |0 +<U0034> \x34 |0 +<U0035> \x35 |0 +<U0036> \x36 |0 +<U0037> \x37 |0 +<U0038> \x38 |0 +<U0039> \x39 |0 +<U003A> \x3A |0 +<U003B> \x3B |0 +<U003C> \x3C |0 +<U003D> \x3D |0 +<U003E> \x3E |0 +<U003F> \x3F |0 +<U0040> \x40 |0 +<U0041> \x41 |0 +<U0042> \x42 |0 +<U0043> \x43 |0 +<U0044> \x44 |0 +<U0045> \x45 |0 +<U0046> \x46 |0 +<U0047> \x47 |0 +<U0048> \x48 |0 +<U0049> \x49 |0 +<U004A> \x4A |0 +<U004B> \x4B |0 +<U004C> \x4C |0 +<U004D> \x4D |0 +<U004E> \x4E |0 +<U004F> \x4F |0 +<U0050> \x50 |0 +<U0051> \x51 |0 +<U0052> \x52 |0 +<U0053> \x53 |0 +<U0054> \x54 |0 +<U0055> \x55 |0 +<U0056> \x56 |0 +<U0057> \x57 |0 +<U0058> \x58 |0 +<U0059> \x59 |0 +<U005A> \x5A |0 +<U005B> \x5B |0 +<U005C> \x5C |0 +<U005D> \x5D |0 +<U005E> \x5E |0 +<U005F> \x5F |0 +<U0060> \x60 |0 +<U0061> \x61 |0 +<U0062> \x62 |0 +<U0063> \x63 |0 +<U0064> \x64 |0 +<U0065> \x65 |0 +<U0066> \x66 |0 +<U0067> \x67 |0 +<U0068> \x68 |0 +<U0069> \x69 |0 +<U006A> \x6A |0 +<U006B> \x6B |0 +<U006C> \x6C |0 +<U006D> \x6D |0 +<U006E> \x6E |0 +<U006F> \x6F |0 +<U0070> \x70 |0 +<U0071> \x71 |0 +<U0072> \x72 |0 +<U0073> \x73 |0 +<U0074> \x74 |0 +<U0075> \x75 |0 +<U0076> \x76 |0 +<U0077> \x77 |0 +<U0078> \x78 |0 +<U0079> \x79 |0 +<U007A> \x7A |0 +<U007B> \x7B |0 +<U007C> \x7C |0 +<U007D> \x7D |0 +<U007E> \x7E |0 +<U007F> \x7F |0 +<U0080> \x80 |0 +<U0081> \x81 |0 +<U0083> \x83 |0 +<U0088> \x88 |0 +<U0090> \x90 |0 +<U0098> \x98 |0 +<U00A0> \xA0 |0 +<U00A4> \xA4 |0 +<U00A6> \xA6 |0 +<U00A7> \xA7 |0 +<U00A8> \xA8 |0 +<U00A9> \xA9 |0 +<U00AB> \xAB |0 +<U00AD> \xAD |0 +<U00AE> \xAE |0 +<U00B0> \xB0 |0 +<U00B1> \xB1 |0 +<U00B4> \xB4 |0 +<U00B5> \xB5 |0 +<U00B6> \xB6 |0 +<U00B7> \xB7 |0 +<U00B8> \xB8 |0 +<U00BB> \xBB |0 +<U00C1> \xC1 |0 +<U00C2> \xC2 |0 +<U00C4> \xC4 |0 +<U00C7> \xC7 |0 +<U00C9> \xC9 |0 +<U00CB> \xCB |0 +<U00CD> \xCD |0 +<U00CE> \xCE |0 +<U00D3> \xD3 |0 +<U00D4> \xD4 |0 +<U00D6> \xD6 |0 +<U00D7> \xD7 |0 +<U00DA> \xDA |0 +<U00DC> \xDC |0 +<U00DD> \xDD |0 +<U00DF> \xDF |0 +<U00E1> \xE1 |0 +<U00E2> \xE2 |0 +<U00E4> \xE4 |0 +<U00E7> \xE7 |0 +<U00E9> \xE9 |0 +<U00EB> \xEB |0 +<U00ED> \xED |0 +<U00EE> \xEE |0 +<U00F3> \xF3 |0 +<U00F4> \xF4 |0 +<U00F6> \xF6 |0 +<U00F7> \xF7 |0 +<U00FA> \xFA |0 +<U00FC> \xFC |0 +<U00FD> \xFD |0 +<U0102> \xC3 |0 +<U0103> \xE3 |0 +<U0104> \xA5 |0 +<U0105> \xB9 |0 +<U0106> \xC6 |0 +<U0107> \xE6 |0 +<U010C> \xC8 |0 +<U010D> \xE8 |0 +<U010E> \xCF |0 +<U010F> \xEF |0 +<U0110> \xD0 |0 +<U0111> \xF0 |0 +<U0118> \xCA |0 +<U0119> \xEA |0 +<U011A> \xCC |0 +<U011B> \xEC |0 +<U0139> \xC5 |0 +<U013A> \xE5 |0 +<U013D> \xBC |0 +<U013E> \xBE |0 +<U0141> \xA3 |0 +<U0142> \xB3 |0 +<U0143> \xD1 |0 +<U0144> \xF1 |0 +<U0147> \xD2 |0 +<U0148> \xF2 |0 +<U0150> \xD5 |0 +<U0151> \xF5 |0 +<U0154> \xC0 |0 +<U0155> \xE0 |0 +<U0158> \xD8 |0 +<U0159> \xF8 |0 +<U015A> \x8C |0 +<U015B> \x9C |0 +<U015E> \xAA |0 +<U015F> \xBA |0 +<U0160> \x8A |0 +<U0161> \x9A |0 +<U0162> \xDE |0 +<U0163> \xFE |0 +<U0164> \x8D |0 +<U0165> \x9D |0 +<U016E> \xD9 |0 +<U016F> \xF9 |0 +<U0170> \xDB |0 +<U0171> \xFB |0 +<U0179> \x8F |0 +<U017A> \x9F |0 +<U017B> \xAF |0 +<U017C> \xBF |0 +<U017D> \x8E |0 +<U017E> \x9E |0 +<U02C7> \xA1 |0 +<U02D8> \xA2 |0 +<U02D9> \xFF |0 +<U02DB> \xB2 |0 +<U02DD> \xBD |0 +<U2013> \x96 |0 +<U2014> \x97 |0 +<U2018> \x91 |0 +<U2019> \x92 |0 +<U201A> \x82 |0 +<U201C> \x93 |0 +<U201D> \x94 |0 +<U201E> \x84 |0 +<U2020> \x86 |0 +<U2021> \x87 |0 +<U2022> \x95 |0 +<U2026> \x85 |0 +<U2030> \x89 |0 +<U2039> \x8B |0 +<U203A> \x9B |0 +<U2122> \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 +<code_set_name> "cp37" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x6F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x37 |0 +<U0005> \x2D |0 +<U0006> \x2E |0 +<U0007> \x2F |0 +<U0008> \x16 |0 +<U0009> \x05 |0 +<U000A> \x25 |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x3C |0 +<U0015> \x3D |0 +<U0016> \x32 |0 +<U0017> \x26 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x3F |0 +<U001B> \x27 |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x40 |0 +<U0021> \x5A |0 +<U0022> \x7F |0 +<U0023> \x7B |0 +<U0024> \x5B |0 +<U0025> \x6C |0 +<U0026> \x50 |0 +<U0027> \x7D |0 +<U0028> \x4D |0 +<U0029> \x5D |0 +<U002A> \x5C |0 +<U002B> \x4E |0 +<U002C> \x6B |0 +<U002D> \x60 |0 +<U002E> \x4B |0 +<U002F> \x61 |0 +<U0030> \xF0 |0 +<U0031> \xF1 |0 +<U0032> \xF2 |0 +<U0033> \xF3 |0 +<U0034> \xF4 |0 +<U0035> \xF5 |0 +<U0036> \xF6 |0 +<U0037> \xF7 |0 +<U0038> \xF8 |0 +<U0039> \xF9 |0 +<U003A> \x7A |0 +<U003B> \x5E |0 +<U003C> \x4C |0 +<U003D> \x7E |0 +<U003E> \x6E |0 +<U003F> \x6F |0 +<U0040> \x7C |0 +<U0041> \xC1 |0 +<U0042> \xC2 |0 +<U0043> \xC3 |0 +<U0044> \xC4 |0 +<U0045> \xC5 |0 +<U0046> \xC6 |0 +<U0047> \xC7 |0 +<U0048> \xC8 |0 +<U0049> \xC9 |0 +<U004A> \xD1 |0 +<U004B> \xD2 |0 +<U004C> \xD3 |0 +<U004D> \xD4 |0 +<U004E> \xD5 |0 +<U004F> \xD6 |0 +<U0050> \xD7 |0 +<U0051> \xD8 |0 +<U0052> \xD9 |0 +<U0053> \xE2 |0 +<U0054> \xE3 |0 +<U0055> \xE4 |0 +<U0056> \xE5 |0 +<U0057> \xE6 |0 +<U0058> \xE7 |0 +<U0059> \xE8 |0 +<U005A> \xE9 |0 +<U005B> \xBA |0 +<U005C> \xE0 |0 +<U005D> \xBB |0 +<U005E> \xB0 |0 +<U005F> \x6D |0 +<U0060> \x79 |0 +<U0061> \x81 |0 +<U0062> \x82 |0 +<U0063> \x83 |0 +<U0064> \x84 |0 +<U0065> \x85 |0 +<U0066> \x86 |0 +<U0067> \x87 |0 +<U0068> \x88 |0 +<U0069> \x89 |0 +<U006A> \x91 |0 +<U006B> \x92 |0 +<U006C> \x93 |0 +<U006D> \x94 |0 +<U006E> \x95 |0 +<U006F> \x96 |0 +<U0070> \x97 |0 +<U0071> \x98 |0 +<U0072> \x99 |0 +<U0073> \xA2 |0 +<U0074> \xA3 |0 +<U0075> \xA4 |0 +<U0076> \xA5 |0 +<U0077> \xA6 |0 +<U0078> \xA7 |0 +<U0079> \xA8 |0 +<U007A> \xA9 |0 +<U007B> \xC0 |0 +<U007C> \x4F |0 +<U007D> \xD0 |0 +<U007E> \xA1 |0 +<U007F> \x07 |0 +<U0080> \x20 |0 +<U0081> \x21 |0 +<U0082> \x22 |0 +<U0083> \x23 |0 +<U0084> \x24 |0 +<U0085> \x15 |0 +<U0086> \x06 |0 +<U0087> \x17 |0 +<U0088> \x28 |0 +<U0089> \x29 |0 +<U008A> \x2A |0 +<U008B> \x2B |0 +<U008C> \x2C |0 +<U008D> \x09 |0 +<U008E> \x0A |0 +<U008F> \x1B |0 +<U0090> \x30 |0 +<U0091> \x31 |0 +<U0092> \x1A |0 +<U0093> \x33 |0 +<U0094> \x34 |0 +<U0095> \x35 |0 +<U0096> \x36 |0 +<U0097> \x08 |0 +<U0098> \x38 |0 +<U0099> \x39 |0 +<U009A> \x3A |0 +<U009B> \x3B |0 +<U009C> \x04 |0 +<U009D> \x14 |0 +<U009E> \x3E |0 +<U009F> \xFF |0 +<U00A0> \x41 |0 +<U00A1> \xAA |0 +<U00A2> \x4A |0 +<U00A3> \xB1 |0 +<U00A4> \x9F |0 +<U00A5> \xB2 |0 +<U00A6> \x6A |0 +<U00A7> \xB5 |0 +<U00A8> \xBD |0 +<U00A9> \xB4 |0 +<U00AA> \x9A |0 +<U00AB> \x8A |0 +<U00AC> \x5F |0 +<U00AD> \xCA |0 +<U00AE> \xAF |0 +<U00AF> \xBC |0 +<U00B0> \x90 |0 +<U00B1> \x8F |0 +<U00B2> \xEA |0 +<U00B3> \xFA |0 +<U00B4> \xBE |0 +<U00B5> \xA0 |0 +<U00B6> \xB6 |0 +<U00B7> \xB3 |0 +<U00B8> \x9D |0 +<U00B9> \xDA |0 +<U00BA> \x9B |0 +<U00BB> \x8B |0 +<U00BC> \xB7 |0 +<U00BD> \xB8 |0 +<U00BE> \xB9 |0 +<U00BF> \xAB |0 +<U00C0> \x64 |0 +<U00C1> \x65 |0 +<U00C2> \x62 |0 +<U00C3> \x66 |0 +<U00C4> \x63 |0 +<U00C5> \x67 |0 +<U00C6> \x9E |0 +<U00C7> \x68 |0 +<U00C8> \x74 |0 +<U00C9> \x71 |0 +<U00CA> \x72 |0 +<U00CB> \x73 |0 +<U00CC> \x78 |0 +<U00CD> \x75 |0 +<U00CE> \x76 |0 +<U00CF> \x77 |0 +<U00D0> \xAC |0 +<U00D1> \x69 |0 +<U00D2> \xED |0 +<U00D3> \xEE |0 +<U00D4> \xEB |0 +<U00D5> \xEF |0 +<U00D6> \xEC |0 +<U00D7> \xBF |0 +<U00D8> \x80 |0 +<U00D9> \xFD |0 +<U00DA> \xFE |0 +<U00DB> \xFB |0 +<U00DC> \xFC |0 +<U00DD> \xAD |0 +<U00DE> \xAE |0 +<U00DF> \x59 |0 +<U00E0> \x44 |0 +<U00E1> \x45 |0 +<U00E2> \x42 |0 +<U00E3> \x46 |0 +<U00E4> \x43 |0 +<U00E5> \x47 |0 +<U00E6> \x9C |0 +<U00E7> \x48 |0 +<U00E8> \x54 |0 +<U00E9> \x51 |0 +<U00EA> \x52 |0 +<U00EB> \x53 |0 +<U00EC> \x58 |0 +<U00ED> \x55 |0 +<U00EE> \x56 |0 +<U00EF> \x57 |0 +<U00F0> \x8C |0 +<U00F1> \x49 |0 +<U00F2> \xCD |0 +<U00F3> \xCE |0 +<U00F4> \xCB |0 +<U00F5> \xCF |0 +<U00F6> \xCC |0 +<U00F7> \xE1 |0 +<U00F8> \x70 |0 +<U00F9> \xDD |0 +<U00FA> \xDE |0 +<U00FB> \xDB |0 +<U00FC> \xDC |0 +<U00FD> \x8D |0 +<U00FE> \x8E |0 +<U00FF> \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 +<code_set_name> "dingbats" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x3F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x04 |0 +<U0005> \x05 |0 +<U0006> \x06 |0 +<U0007> \x07 |0 +<U0008> \x08 |0 +<U0009> \x09 |0 +<U000A> \x0A |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x14 |0 +<U0015> \x15 |0 +<U0016> \x16 |0 +<U0017> \x17 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x1A |0 +<U001B> \x1B |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x20 |0 +<U007F> \x7F |0 +<U0080> \x80 |0 +<U0081> \x81 |0 +<U0082> \x82 |0 +<U0083> \x83 |0 +<U0084> \x84 |0 +<U0085> \x85 |0 +<U0086> \x86 |0 +<U0087> \x87 |0 +<U0088> \x88 |0 +<U0089> \x89 |0 +<U008A> \x8A |0 +<U008B> \x8B |0 +<U008C> \x8C |0 +<U008D> \x8D |0 +<U008E> \x8E |0 +<U008F> \x8F |0 +<U0090> \x90 |0 +<U0091> \x91 |0 +<U0092> \x92 |0 +<U0093> \x93 |0 +<U0094> \x94 |0 +<U0095> \x95 |0 +<U0096> \x96 |0 +<U0097> \x97 |0 +<U0098> \x98 |0 +<U0099> \x99 |0 +<U009A> \x9A |0 +<U009B> \x9B |0 +<U009C> \x9C |0 +<U009D> \x9D |0 +<U009E> \x9E |0 +<U009F> \x9F |0 +<U2192> \xD5 |0 +<U2194> \xD6 |0 +<U2195> \xD7 |0 +<U2460> \xAC |0 +<U2461> \xAD |0 +<U2462> \xAE |0 +<U2463> \xAF |0 +<U2464> \xB0 |0 +<U2465> \xB1 |0 +<U2466> \xB2 |0 +<U2467> \xB3 |0 +<U2468> \xB4 |0 +<U2469> \xB5 |0 +<U25A0> \x6E |0 +<U25B2> \x73 |0 +<U25BC> \x74 |0 +<U25C6> \x75 |0 +<U25CF> \x6C |0 +<U25D7> \x77 |0 +<U2605> \x48 |0 +<U260E> \x25 |0 +<U261B> \x2A |0 +<U261E> \x2B |0 +<U2660> \xAB |0 +<U2663> \xA8 |0 +<U2665> \xAA |0 +<U2666> \xA9 |0 +<U2701> \x21 |0 +<U2702> \x22 |0 +<U2703> \x23 |0 +<U2704> \x24 |0 +<U2706> \x26 |0 +<U2707> \x27 |0 +<U2708> \x28 |0 +<U2709> \x29 |0 +<U270C> \x2C |0 +<U270D> \x2D |0 +<U270E> \x2E |0 +<U270F> \x2F |0 +<U2710> \x30 |0 +<U2711> \x31 |0 +<U2712> \x32 |0 +<U2713> \x33 |0 +<U2714> \x34 |0 +<U2715> \x35 |0 +<U2716> \x36 |0 +<U2717> \x37 |0 +<U2718> \x38 |0 +<U2719> \x39 |0 +<U271A> \x3A |0 +<U271B> \x3B |0 +<U271C> \x3C |0 +<U271D> \x3D |0 +<U271E> \x3E |0 +<U271F> \x3F |0 +<U2720> \x40 |0 +<U2721> \x41 |0 +<U2722> \x42 |0 +<U2723> \x43 |0 +<U2724> \x44 |0 +<U2725> \x45 |0 +<U2726> \x46 |0 +<U2727> \x47 |0 +<U2729> \x49 |0 +<U272A> \x4A |0 +<U272B> \x4B |0 +<U272C> \x4C |0 +<U272D> \x4D |0 +<U272E> \x4E |0 +<U272F> \x4F |0 +<U2730> \x50 |0 +<U2731> \x51 |0 +<U2732> \x52 |0 +<U2733> \x53 |0 +<U2734> \x54 |0 +<U2735> \x55 |0 +<U2736> \x56 |0 +<U2737> \x57 |0 +<U2738> \x58 |0 +<U2739> \x59 |0 +<U273A> \x5A |0 +<U273B> \x5B |0 +<U273C> \x5C |0 +<U273D> \x5D |0 +<U273E> \x5E |0 +<U273F> \x5F |0 +<U2740> \x60 |0 +<U2741> \x61 |0 +<U2742> \x62 |0 +<U2743> \x63 |0 +<U2744> \x64 |0 +<U2745> \x65 |0 +<U2746> \x66 |0 +<U2747> \x67 |0 +<U2748> \x68 |0 +<U2749> \x69 |0 +<U274A> \x6A |0 +<U274B> \x6B |0 +<U274D> \x6D |0 +<U274F> \x6F |0 +<U2750> \x70 |0 +<U2751> \x71 |0 +<U2752> \x72 |0 +<U2756> \x76 |0 +<U2758> \x78 |0 +<U2759> \x79 |0 +<U275A> \x7A |0 +<U275B> \x7B |0 +<U275C> \x7C |0 +<U275D> \x7D |0 +<U275E> \x7E |0 +<U2761> \xA1 |0 +<U2762> \xA2 |0 +<U2763> \xA3 |0 +<U2764> \xA4 |0 +<U2765> \xA5 |0 +<U2766> \xA6 |0 +<U2767> \xA7 |0 +<U2776> \xB6 |0 +<U2777> \xB7 |0 +<U2778> \xB8 |0 +<U2779> \xB9 |0 +<U277A> \xBA |0 +<U277B> \xBB |0 +<U277C> \xBC |0 +<U277D> \xBD |0 +<U277E> \xBE |0 +<U277F> \xBF |0 +<U2780> \xC0 |0 +<U2781> \xC1 |0 +<U2782> \xC2 |0 +<U2783> \xC3 |0 +<U2784> \xC4 |0 +<U2785> \xC5 |0 +<U2786> \xC6 |0 +<U2787> \xC7 |0 +<U2788> \xC8 |0 +<U2789> \xC9 |0 +<U278A> \xCA |0 +<U278B> \xCB |0 +<U278C> \xCC |0 +<U278D> \xCD |0 +<U278E> \xCE |0 +<U278F> \xCF |0 +<U2790> \xD0 |0 +<U2791> \xD1 |0 +<U2792> \xD2 |0 +<U2793> \xD3 |0 +<U2794> \xD4 |0 +<U2798> \xD8 |0 +<U2799> \xD9 |0 +<U279A> \xDA |0 +<U279B> \xDB |0 +<U279C> \xDC |0 +<U279D> \xDD |0 +<U279E> \xDE |0 +<U279F> \xDF |0 +<U27A0> \xE0 |0 +<U27A1> \xE1 |0 +<U27A2> \xE2 |0 +<U27A3> \xE3 |0 +<U27A4> \xE4 |0 +<U27A5> \xE5 |0 +<U27A6> \xE6 |0 +<U27A7> \xE7 |0 +<U27A8> \xE8 |0 +<U27A9> \xE9 |0 +<U27AA> \xEA |0 +<U27AB> \xEB |0 +<U27AC> \xEC |0 +<U27AD> \xED |0 +<U27AE> \xEE |0 +<U27AF> \xEF |0 +<U27B1> \xF1 |0 +<U27B2> \xF2 |0 +<U27B3> \xF3 |0 +<U27B4> \xF4 |0 +<U27B5> \xF5 |0 +<U27B6> \xF6 |0 +<U27B7> \xF7 |0 +<U27B8> \xF8 |0 +<U27B9> \xF9 |0 +<U27BA> \xFA |0 +<U27BB> \xFB |0 +<U27BC> \xFC |0 +<U27BD> \xFD |0 +<U27BE> \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 +<code_set_name> "iso8859-1" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x3F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x04 |0 +<U0005> \x05 |0 +<U0006> \x06 |0 +<U0007> \x07 |0 +<U0008> \x08 |0 +<U0009> \x09 |0 +<U000A> \x0A |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x14 |0 +<U0015> \x15 |0 +<U0016> \x16 |0 +<U0017> \x17 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x1A |0 +<U001B> \x1B |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x20 |0 +<U0021> \x21 |0 +<U0022> \x22 |0 +<U0023> \x23 |0 +<U0024> \x24 |0 +<U0025> \x25 |0 +<U0026> \x26 |0 +<U0027> \x27 |0 +<U0028> \x28 |0 +<U0029> \x29 |0 +<U002A> \x2A |0 +<U002B> \x2B |0 +<U002C> \x2C |0 +<U002D> \x2D |0 +<U002E> \x2E |0 +<U002F> \x2F |0 +<U0030> \x30 |0 +<U0031> \x31 |0 +<U0032> \x32 |0 +<U0033> \x33 |0 +<U0034> \x34 |0 +<U0035> \x35 |0 +<U0036> \x36 |0 +<U0037> \x37 |0 +<U0038> \x38 |0 +<U0039> \x39 |0 +<U003A> \x3A |0 +<U003B> \x3B |0 +<U003C> \x3C |0 +<U003D> \x3D |0 +<U003E> \x3E |0 +<U003F> \x3F |0 +<U0040> \x40 |0 +<U0041> \x41 |0 +<U0042> \x42 |0 +<U0043> \x43 |0 +<U0044> \x44 |0 +<U0045> \x45 |0 +<U0046> \x46 |0 +<U0047> \x47 |0 +<U0048> \x48 |0 +<U0049> \x49 |0 +<U004A> \x4A |0 +<U004B> \x4B |0 +<U004C> \x4C |0 +<U004D> \x4D |0 +<U004E> \x4E |0 +<U004F> \x4F |0 +<U0050> \x50 |0 +<U0051> \x51 |0 +<U0052> \x52 |0 +<U0053> \x53 |0 +<U0054> \x54 |0 +<U0055> \x55 |0 +<U0056> \x56 |0 +<U0057> \x57 |0 +<U0058> \x58 |0 +<U0059> \x59 |0 +<U005A> \x5A |0 +<U005B> \x5B |0 +<U005C> \x5C |0 +<U005D> \x5D |0 +<U005E> \x5E |0 +<U005F> \x5F |0 +<U0060> \x60 |0 +<U0061> \x61 |0 +<U0062> \x62 |0 +<U0063> \x63 |0 +<U0064> \x64 |0 +<U0065> \x65 |0 +<U0066> \x66 |0 +<U0067> \x67 |0 +<U0068> \x68 |0 +<U0069> \x69 |0 +<U006A> \x6A |0 +<U006B> \x6B |0 +<U006C> \x6C |0 +<U006D> \x6D |0 +<U006E> \x6E |0 +<U006F> \x6F |0 +<U0070> \x70 |0 +<U0071> \x71 |0 +<U0072> \x72 |0 +<U0073> \x73 |0 +<U0074> \x74 |0 +<U0075> \x75 |0 +<U0076> \x76 |0 +<U0077> \x77 |0 +<U0078> \x78 |0 +<U0079> \x79 |0 +<U007A> \x7A |0 +<U007B> \x7B |0 +<U007C> \x7C |0 +<U007D> \x7D |0 +<U007E> \x7E |0 +<U007F> \x7F |0 +<U0080> \x80 |0 +<U0081> \x81 |0 +<U0082> \x82 |0 +<U0083> \x83 |0 +<U0084> \x84 |0 +<U0085> \x85 |0 +<U0086> \x86 |0 +<U0087> \x87 |0 +<U0088> \x88 |0 +<U0089> \x89 |0 +<U008A> \x8A |0 +<U008B> \x8B |0 +<U008C> \x8C |0 +<U008D> \x8D |0 +<U008E> \x8E |0 +<U008F> \x8F |0 +<U0090> \x90 |0 +<U0091> \x91 |0 +<U0092> \x92 |0 +<U0093> \x93 |0 +<U0094> \x94 |0 +<U0095> \x95 |0 +<U0096> \x96 |0 +<U0097> \x97 |0 +<U0098> \x98 |0 +<U0099> \x99 |0 +<U009A> \x9A |0 +<U009B> \x9B |0 +<U009C> \x9C |0 +<U009D> \x9D |0 +<U009E> \x9E |0 +<U009F> \x9F |0 +<U00A0> \xA0 |0 +<U00A1> \xA1 |0 +<U00A2> \xA2 |0 +<U00A3> \xA3 |0 +<U00A4> \xA4 |0 +<U00A5> \xA5 |0 +<U00A6> \xA6 |0 +<U00A7> \xA7 |0 +<U00A8> \xA8 |0 +<U00A9> \xA9 |0 +<U00AA> \xAA |0 +<U00AB> \xAB |0 +<U00AC> \xAC |0 +<U00AD> \xAD |0 +<U00AE> \xAE |0 +<U00AF> \xAF |0 +<U00B0> \xB0 |0 +<U00B1> \xB1 |0 +<U00B2> \xB2 |0 +<U00B3> \xB3 |0 +<U00B4> \xB4 |0 +<U00B5> \xB5 |0 +<U00B6> \xB6 |0 +<U00B7> \xB7 |0 +<U00B8> \xB8 |0 +<U00B9> \xB9 |0 +<U00BA> \xBA |0 +<U00BB> \xBB |0 +<U00BC> \xBC |0 +<U00BD> \xBD |0 +<U00BE> \xBE |0 +<U00BF> \xBF |0 +<U00C0> \xC0 |0 +<U00C1> \xC1 |0 +<U00C2> \xC2 |0 +<U00C3> \xC3 |0 +<U00C4> \xC4 |0 +<U00C5> \xC5 |0 +<U00C6> \xC6 |0 +<U00C7> \xC7 |0 +<U00C8> \xC8 |0 +<U00C9> \xC9 |0 +<U00CA> \xCA |0 +<U00CB> \xCB |0 +<U00CC> \xCC |0 +<U00CD> \xCD |0 +<U00CE> \xCE |0 +<U00CF> \xCF |0 +<U00D0> \xD0 |0 +<U00D1> \xD1 |0 +<U00D2> \xD2 |0 +<U00D3> \xD3 |0 +<U00D4> \xD4 |0 +<U00D5> \xD5 |0 +<U00D6> \xD6 |0 +<U00D7> \xD7 |0 +<U00D8> \xD8 |0 +<U00D9> \xD9 |0 +<U00DA> \xDA |0 +<U00DB> \xDB |0 +<U00DC> \xDC |0 +<U00DD> \xDD |0 +<U00DE> \xDE |0 +<U00DF> \xDF |0 +<U00E0> \xE0 |0 +<U00E1> \xE1 |0 +<U00E2> \xE2 |0 +<U00E3> \xE3 |0 +<U00E4> \xE4 |0 +<U00E5> \xE5 |0 +<U00E6> \xE6 |0 +<U00E7> \xE7 |0 +<U00E8> \xE8 |0 +<U00E9> \xE9 |0 +<U00EA> \xEA |0 +<U00EB> \xEB |0 +<U00EC> \xEC |0 +<U00ED> \xED |0 +<U00EE> \xEE |0 +<U00EF> \xEF |0 +<U00F0> \xF0 |0 +<U00F1> \xF1 |0 +<U00F2> \xF2 |0 +<U00F3> \xF3 |0 +<U00F4> \xF4 |0 +<U00F5> \xF5 |0 +<U00F6> \xF6 |0 +<U00F7> \xF7 |0 +<U00F8> \xF8 |0 +<U00F9> \xF9 |0 +<U00FA> \xFA |0 +<U00FB> \xFB |0 +<U00FC> \xFC |0 +<U00FD> \xFD |0 +<U00FE> \xFE |0 +<U00FF> \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 +<code_set_name> "iso8859-10" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x3F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x04 |0 +<U0005> \x05 |0 +<U0006> \x06 |0 +<U0007> \x07 |0 +<U0008> \x08 |0 +<U0009> \x09 |0 +<U000A> \x0A |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x14 |0 +<U0015> \x15 |0 +<U0016> \x16 |0 +<U0017> \x17 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x1A |0 +<U001B> \x1B |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x20 |0 +<U0021> \x21 |0 +<U0022> \x22 |0 +<U0023> \x23 |0 +<U0024> \x24 |0 +<U0025> \x25 |0 +<U0026> \x26 |0 +<U0027> \x27 |0 +<U0028> \x28 |0 +<U0029> \x29 |0 +<U002A> \x2A |0 +<U002B> \x2B |0 +<U002C> \x2C |0 +<U002D> \x2D |0 +<U002E> \x2E |0 +<U002F> \x2F |0 +<U0030> \x30 |0 +<U0031> \x31 |0 +<U0032> \x32 |0 +<U0033> \x33 |0 +<U0034> \x34 |0 +<U0035> \x35 |0 +<U0036> \x36 |0 +<U0037> \x37 |0 +<U0038> \x38 |0 +<U0039> \x39 |0 +<U003A> \x3A |0 +<U003B> \x3B |0 +<U003C> \x3C |0 +<U003D> \x3D |0 +<U003E> \x3E |0 +<U003F> \x3F |0 +<U0040> \x40 |0 +<U0041> \x41 |0 +<U0042> \x42 |0 +<U0043> \x43 |0 +<U0044> \x44 |0 +<U0045> \x45 |0 +<U0046> \x46 |0 +<U0047> \x47 |0 +<U0048> \x48 |0 +<U0049> \x49 |0 +<U004A> \x4A |0 +<U004B> \x4B |0 +<U004C> \x4C |0 +<U004D> \x4D |0 +<U004E> \x4E |0 +<U004F> \x4F |0 +<U0050> \x50 |0 +<U0051> \x51 |0 +<U0052> \x52 |0 +<U0053> \x53 |0 +<U0054> \x54 |0 +<U0055> \x55 |0 +<U0056> \x56 |0 +<U0057> \x57 |0 +<U0058> \x58 |0 +<U0059> \x59 |0 +<U005A> \x5A |0 +<U005B> \x5B |0 +<U005C> \x5C |0 +<U005D> \x5D |0 +<U005E> \x5E |0 +<U005F> \x5F |0 +<U0060> \x60 |0 +<U0061> \x61 |0 +<U0062> \x62 |0 +<U0063> \x63 |0 +<U0064> \x64 |0 +<U0065> \x65 |0 +<U0066> \x66 |0 +<U0067> \x67 |0 +<U0068> \x68 |0 +<U0069> \x69 |0 +<U006A> \x6A |0 +<U006B> \x6B |0 +<U006C> \x6C |0 +<U006D> \x6D |0 +<U006E> \x6E |0 +<U006F> \x6F |0 +<U0070> \x70 |0 +<U0071> \x71 |0 +<U0072> \x72 |0 +<U0073> \x73 |0 +<U0074> \x74 |0 +<U0075> \x75 |0 +<U0076> \x76 |0 +<U0077> \x77 |0 +<U0078> \x78 |0 +<U0079> \x79 |0 +<U007A> \x7A |0 +<U007B> \x7B |0 +<U007C> \x7C |0 +<U007D> \x7D |0 +<U007E> \x7E |0 +<U007F> \x7F |0 +<U0080> \x80 |0 +<U0081> \x81 |0 +<U0082> \x82 |0 +<U0083> \x83 |0 +<U0084> \x84 |0 +<U0085> \x85 |0 +<U0086> \x86 |0 +<U0087> \x87 |0 +<U0088> \x88 |0 +<U0089> \x89 |0 +<U008A> \x8A |0 +<U008B> \x8B |0 +<U008C> \x8C |0 +<U008D> \x8D |0 +<U008E> \x8E |0 +<U008F> \x8F |0 +<U0090> \x90 |0 +<U0091> \x91 |0 +<U0092> \x92 |0 +<U0093> \x93 |0 +<U0094> \x94 |0 +<U0095> \x95 |0 +<U0096> \x96 |0 +<U0097> \x97 |0 +<U0098> \x98 |0 +<U0099> \x99 |0 +<U009A> \x9A |0 +<U009B> \x9B |0 +<U009C> \x9C |0 +<U009D> \x9D |0 +<U009E> \x9E |0 +<U009F> \x9F |0 +<U00A0> \xA0 |0 +<U00A7> \xA7 |0 +<U00AD> \xAD |0 +<U00B0> \xB0 |0 +<U00B7> \xB7 |0 +<U00C1> \xC1 |0 +<U00C2> \xC2 |0 +<U00C3> \xC3 |0 +<U00C4> \xC4 |0 +<U00C5> \xC5 |0 +<U00C6> \xC6 |0 +<U00C9> \xC9 |0 +<U00CB> \xCB |0 +<U00CD> \xCD |0 +<U00CE> \xCE |0 +<U00CF> \xCF |0 +<U00D0> \xD0 |0 +<U00D3> \xD3 |0 +<U00D4> \xD4 |0 +<U00D5> \xD5 |0 +<U00D6> \xD6 |0 +<U00D8> \xD8 |0 +<U00DA> \xDA |0 +<U00DB> \xDB |0 +<U00DC> \xDC |0 +<U00DD> \xDD |0 +<U00DE> \xDE |0 +<U00DF> \xDF |0 +<U00E1> \xE1 |0 +<U00E2> \xE2 |0 +<U00E3> \xE3 |0 +<U00E4> \xE4 |0 +<U00E5> \xE5 |0 +<U00E6> \xE6 |0 +<U00E9> \xE9 |0 +<U00EB> \xEB |0 +<U00ED> \xED |0 +<U00EE> \xEE |0 +<U00EF> \xEF |0 +<U00F0> \xF0 |0 +<U00F3> \xF3 |0 +<U00F4> \xF4 |0 +<U00F5> \xF5 |0 +<U00F6> \xF6 |0 +<U00F8> \xF8 |0 +<U00FA> \xFA |0 +<U00FB> \xFB |0 +<U00FC> \xFC |0 +<U00FD> \xFD |0 +<U00FE> \xFE |0 +<U0100> \xC0 |0 +<U0101> \xE0 |0 +<U0104> \xA1 |0 +<U0105> \xB1 |0 +<U010C> \xC8 |0 +<U010D> \xE8 |0 +<U0110> \xA9 |0 +<U0111> \xB9 |0 +<U0112> \xA2 |0 +<U0113> \xB2 |0 +<U0116> \xCC |0 +<U0117> \xEC |0 +<U0118> \xCA |0 +<U0119> \xEA |0 +<U0122> \xA3 |0 +<U0123> \xB3 |0 +<U0128> \xA5 |0 +<U0129> \xB5 |0 +<U012A> \xA4 |0 +<U012B> \xB4 |0 +<U012E> \xC7 |0 +<U012F> \xE7 |0 +<U0136> \xA6 |0 +<U0137> \xB6 |0 +<U0138> \xFF |0 +<U013B> \xA8 |0 +<U013C> \xB8 |0 +<U0145> \xD1 |0 +<U0146> \xF1 |0 +<U014A> \xAF |0 +<U014B> \xBF |0 +<U014C> \xD2 |0 +<U014D> \xF2 |0 +<U0160> \xAA |0 +<U0161> \xBA |0 +<U0166> \xAB |0 +<U0167> \xBB |0 +<U0168> \xD7 |0 +<U0169> \xF7 |0 +<U016A> \xAE |0 +<U016B> \xBE |0 +<U0172> \xD9 |0 +<U0173> \xF9 |0 +<U017D> \xAC |0 +<U017E> \xBC |0 +<U2015> \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 +<code_set_name> "iso8859-13" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x3F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x04 |0 +<U0005> \x05 |0 +<U0006> \x06 |0 +<U0007> \x07 |0 +<U0008> \x08 |0 +<U0009> \x09 |0 +<U000A> \x0A |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x14 |0 +<U0015> \x15 |0 +<U0016> \x16 |0 +<U0017> \x17 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x1A |0 +<U001B> \x1B |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x20 |0 +<U0021> \x21 |0 +<U0022> \x22 |0 +<U0023> \x23 |0 +<U0024> \x24 |0 +<U0025> \x25 |0 +<U0026> \x26 |0 +<U0027> \x27 |0 +<U0028> \x28 |0 +<U0029> \x29 |0 +<U002A> \x2A |0 +<U002B> \x2B |0 +<U002C> \x2C |0 +<U002D> \x2D |0 +<U002E> \x2E |0 +<U002F> \x2F |0 +<U0030> \x30 |0 +<U0031> \x31 |0 +<U0032> \x32 |0 +<U0033> \x33 |0 +<U0034> \x34 |0 +<U0035> \x35 |0 +<U0036> \x36 |0 +<U0037> \x37 |0 +<U0038> \x38 |0 +<U0039> \x39 |0 +<U003A> \x3A |0 +<U003B> \x3B |0 +<U003C> \x3C |0 +<U003D> \x3D |0 +<U003E> \x3E |0 +<U003F> \x3F |0 +<U0040> \x40 |0 +<U0041> \x41 |0 +<U0042> \x42 |0 +<U0043> \x43 |0 +<U0044> \x44 |0 +<U0045> \x45 |0 +<U0046> \x46 |0 +<U0047> \x47 |0 +<U0048> \x48 |0 +<U0049> \x49 |0 +<U004A> \x4A |0 +<U004B> \x4B |0 +<U004C> \x4C |0 +<U004D> \x4D |0 +<U004E> \x4E |0 +<U004F> \x4F |0 +<U0050> \x50 |0 +<U0051> \x51 |0 +<U0052> \x52 |0 +<U0053> \x53 |0 +<U0054> \x54 |0 +<U0055> \x55 |0 +<U0056> \x56 |0 +<U0057> \x57 |0 +<U0058> \x58 |0 +<U0059> \x59 |0 +<U005A> \x5A |0 +<U005B> \x5B |0 +<U005C> \x5C |0 +<U005D> \x5D |0 +<U005E> \x5E |0 +<U005F> \x5F |0 +<U0060> \x60 |0 +<U0061> \x61 |0 +<U0062> \x62 |0 +<U0063> \x63 |0 +<U0064> \x64 |0 +<U0065> \x65 |0 +<U0066> \x66 |0 +<U0067> \x67 |0 +<U0068> \x68 |0 +<U0069> \x69 |0 +<U006A> \x6A |0 +<U006B> \x6B |0 +<U006C> \x6C |0 +<U006D> \x6D |0 +<U006E> \x6E |0 +<U006F> \x6F |0 +<U0070> \x70 |0 +<U0071> \x71 |0 +<U0072> \x72 |0 +<U0073> \x73 |0 +<U0074> \x74 |0 +<U0075> \x75 |0 +<U0076> \x76 |0 +<U0077> \x77 |0 +<U0078> \x78 |0 +<U0079> \x79 |0 +<U007A> \x7A |0 +<U007B> \x7B |0 +<U007C> \x7C |0 +<U007D> \x7D |0 +<U007E> \x7E |0 +<U007F> \x7F |0 +<U0080> \x80 |0 +<U0081> \x81 |0 +<U0082> \x82 |0 +<U0083> \x83 |0 +<U0084> \x84 |0 +<U0085> \x85 |0 +<U0086> \x86 |0 +<U0087> \x87 |0 +<U0088> \x88 |0 +<U0089> \x89 |0 +<U008A> \x8A |0 +<U008B> \x8B |0 +<U008C> \x8C |0 +<U008D> \x8D |0 +<U008E> \x8E |0 +<U008F> \x8F |0 +<U0090> \x90 |0 +<U0091> \x91 |0 +<U0092> \x92 |0 +<U0093> \x93 |0 +<U0094> \x94 |0 +<U0095> \x95 |0 +<U0096> \x96 |0 +<U0097> \x97 |0 +<U0098> \x98 |0 +<U0099> \x99 |0 +<U009A> \x9A |0 +<U009B> \x9B |0 +<U009C> \x9C |0 +<U009D> \x9D |0 +<U009E> \x9E |0 +<U009F> \x9F |0 +<U00A0> \xA0 |0 +<U00A2> \xA2 |0 +<U00A3> \xA3 |0 +<U00A4> \xA4 |0 +<U00A6> \xA6 |0 +<U00A7> \xA7 |0 +<U00A9> \xA9 |0 +<U00AB> \xAB |0 +<U00AC> \xAC |0 +<U00AD> \xAD |0 +<U00AE> \xAE |0 +<U00B0> \xB0 |0 +<U00B1> \xB1 |0 +<U00B2> \xB2 |0 +<U00B3> \xB3 |0 +<U00B5> \xB5 |0 +<U00B6> \xB6 |0 +<U00B7> \xB7 |0 +<U00B9> \xB9 |0 +<U00BB> \xBB |0 +<U00BC> \xBC |0 +<U00BD> \xBD |0 +<U00BE> \xBE |0 +<U00C4> \xC4 |0 +<U00C5> \xC5 |0 +<U00C6> \xAF |0 +<U00C9> \xC9 |0 +<U00D3> \xD3 |0 +<U00D5> \xD5 |0 +<U00D6> \xD6 |0 +<U00D7> \xD7 |0 +<U00D8> \xA8 |0 +<U00DC> \xDC |0 +<U00DF> \xDF |0 +<U00E4> \xE4 |0 +<U00E5> \xE5 |0 +<U00E6> \xBF |0 +<U00E9> \xE9 |0 +<U00F3> \xF3 |0 +<U00F5> \xF5 |0 +<U00F6> \xF6 |0 +<U00F7> \xF7 |0 +<U00F8> \xB8 |0 +<U00FC> \xFC |0 +<U0100> \xC2 |0 +<U0101> \xE2 |0 +<U0104> \xC0 |0 +<U0105> \xE0 |0 +<U0106> \xC3 |0 +<U0107> \xE3 |0 +<U010C> \xC8 |0 +<U010D> \xE8 |0 +<U0112> \xC7 |0 +<U0113> \xE7 |0 +<U0116> \xCB |0 +<U0117> \xEB |0 +<U0118> \xC6 |0 +<U0119> \xE6 |0 +<U0122> \xCC |0 +<U0123> \xEC |0 +<U012A> \xCE |0 +<U012B> \xEE |0 +<U012E> \xC1 |0 +<U012F> \xE1 |0 +<U0136> \xCD |0 +<U0137> \xED |0 +<U013B> \xCF |0 +<U013C> \xEF |0 +<U0141> \xD9 |0 +<U0142> \xF9 |0 +<U0143> \xD1 |0 +<U0144> \xF1 |0 +<U0145> \xD2 |0 +<U0146> \xF2 |0 +<U014C> \xD4 |0 +<U014D> \xF4 |0 +<U0156> \xAA |0 +<U0157> \xBA |0 +<U015A> \xDA |0 +<U015B> \xFA |0 +<U0160> \xD0 |0 +<U0161> \xF0 |0 +<U016A> \xDB |0 +<U016B> \xFB |0 +<U0172> \xD8 |0 +<U0173> \xF8 |0 +<U0179> \xCA |0 +<U017A> \xEA |0 +<U017B> \xDD |0 +<U017C> \xFD |0 +<U017D> \xDE |0 +<U017E> \xFE |0 +<U2019> \xFF |0 +<U201C> \xB4 |0 +<U201D> \xA1 |0 +<U201E> \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 +<code_set_name> "iso8859-14" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x3F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x04 |0 +<U0005> \x05 |0 +<U0006> \x06 |0 +<U0007> \x07 |0 +<U0008> \x08 |0 +<U0009> \x09 |0 +<U000A> \x0A |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x14 |0 +<U0015> \x15 |0 +<U0016> \x16 |0 +<U0017> \x17 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x1A |0 +<U001B> \x1B |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x20 |0 +<U0021> \x21 |0 +<U0022> \x22 |0 +<U0023> \x23 |0 +<U0024> \x24 |0 +<U0025> \x25 |0 +<U0026> \x26 |0 +<U0027> \x27 |0 +<U0028> \x28 |0 +<U0029> \x29 |0 +<U002A> \x2A |0 +<U002B> \x2B |0 +<U002C> \x2C |0 +<U002D> \x2D |0 +<U002E> \x2E |0 +<U002F> \x2F |0 +<U0030> \x30 |0 +<U0031> \x31 |0 +<U0032> \x32 |0 +<U0033> \x33 |0 +<U0034> \x34 |0 +<U0035> \x35 |0 +<U0036> \x36 |0 +<U0037> \x37 |0 +<U0038> \x38 |0 +<U0039> \x39 |0 +<U003A> \x3A |0 +<U003B> \x3B |0 +<U003C> \x3C |0 +<U003D> \x3D |0 +<U003E> \x3E |0 +<U003F> \x3F |0 +<U0040> \x40 |0 +<U0041> \x41 |0 +<U0042> \x42 |0 +<U0043> \x43 |0 +<U0044> \x44 |0 +<U0045> \x45 |0 +<U0046> \x46 |0 +<U0047> \x47 |0 +<U0048> \x48 |0 +<U0049> \x49 |0 +<U004A> \x4A |0 +<U004B> \x4B |0 +<U004C> \x4C |0 +<U004D> \x4D |0 +<U004E> \x4E |0 +<U004F> \x4F |0 +<U0050> \x50 |0 +<U0051> \x51 |0 +<U0052> \x52 |0 +<U0053> \x53 |0 +<U0054> \x54 |0 +<U0055> \x55 |0 +<U0056> \x56 |0 +<U0057> \x57 |0 +<U0058> \x58 |0 +<U0059> \x59 |0 +<U005A> \x5A |0 +<U005B> \x5B |0 +<U005C> \x5C |0 +<U005D> \x5D |0 +<U005E> \x5E |0 +<U005F> \x5F |0 +<U0060> \x60 |0 +<U0061> \x61 |0 +<U0062> \x62 |0 +<U0063> \x63 |0 +<U0064> \x64 |0 +<U0065> \x65 |0 +<U0066> \x66 |0 +<U0067> \x67 |0 +<U0068> \x68 |0 +<U0069> \x69 |0 +<U006A> \x6A |0 +<U006B> \x6B |0 +<U006C> \x6C |0 +<U006D> \x6D |0 +<U006E> \x6E |0 +<U006F> \x6F |0 +<U0070> \x70 |0 +<U0071> \x71 |0 +<U0072> \x72 |0 +<U0073> \x73 |0 +<U0074> \x74 |0 +<U0075> \x75 |0 +<U0076> \x76 |0 +<U0077> \x77 |0 +<U0078> \x78 |0 +<U0079> \x79 |0 +<U007A> \x7A |0 +<U007B> \x7B |0 +<U007C> \x7C |0 +<U007D> \x7D |0 +<U007E> \x7E |0 +<U007F> \x7F |0 +<U0080> \x80 |0 +<U0081> \x81 |0 +<U0082> \x82 |0 +<U0083> \x83 |0 +<U0084> \x84 |0 +<U0085> \x85 |0 +<U0086> \x86 |0 +<U0087> \x87 |0 +<U0088> \x88 |0 +<U0089> \x89 |0 +<U008A> \x8A |0 +<U008B> \x8B |0 +<U008C> \x8C |0 +<U008D> \x8D |0 +<U008E> \x8E |0 +<U008F> \x8F |0 +<U0090> \x90 |0 +<U0091> \x91 |0 +<U0092> \x92 |0 +<U0093> \x93 |0 +<U0094> \x94 |0 +<U0095> \x95 |0 +<U0096> \x96 |0 +<U0097> \x97 |0 +<U0098> \x98 |0 +<U0099> \x99 |0 +<U009A> \x9A |0 +<U009B> \x9B |0 +<U009C> \x9C |0 +<U009D> \x9D |0 +<U009E> \x9E |0 +<U009F> \x9F |0 +<U00A0> \xA0 |0 +<U00A3> \xA3 |0 +<U00A7> \xA7 |0 +<U00A9> \xA9 |0 +<U00AD> \xAD |0 +<U00AE> \xAE |0 +<U00B6> \xB6 |0 +<U00C0> \xC0 |0 +<U00C1> \xC1 |0 +<U00C2> \xC2 |0 +<U00C3> \xC3 |0 +<U00C4> \xC4 |0 +<U00C5> \xC5 |0 +<U00C6> \xC6 |0 +<U00C7> \xC7 |0 +<U00C8> \xC8 |0 +<U00C9> \xC9 |0 +<U00CA> \xCA |0 +<U00CB> \xCB |0 +<U00CC> \xCC |0 +<U00CD> \xCD |0 +<U00CE> \xCE |0 +<U00CF> \xCF |0 +<U00D1> \xD1 |0 +<U00D2> \xD2 |0 +<U00D3> \xD3 |0 +<U00D4> \xD4 |0 +<U00D5> \xD5 |0 +<U00D6> \xD6 |0 +<U00D8> \xD8 |0 +<U00D9> \xD9 |0 +<U00DA> \xDA |0 +<U00DB> \xDB |0 +<U00DC> \xDC |0 +<U00DD> \xDD |0 +<U00DF> \xDF |0 +<U00E0> \xE0 |0 +<U00E1> \xE1 |0 +<U00E2> \xE2 |0 +<U00E3> \xE3 |0 +<U00E4> \xE4 |0 +<U00E5> \xE5 |0 +<U00E6> \xE6 |0 +<U00E7> \xE7 |0 +<U00E8> \xE8 |0 +<U00E9> \xE9 |0 +<U00EA> \xEA |0 +<U00EB> \xEB |0 +<U00EC> \xEC |0 +<U00ED> \xED |0 +<U00EE> \xEE |0 +<U00EF> \xEF |0 +<U00F1> \xF1 |0 +<U00F2> \xF2 |0 +<U00F3> \xF3 |0 +<U00F4> \xF4 |0 +<U00F5> \xF5 |0 +<U00F6> \xF6 |0 +<U00F8> \xF8 |0 +<U00F9> \xF9 |0 +<U00FA> \xFA |0 +<U00FB> \xFB |0 +<U00FC> \xFC |0 +<U00FD> \xFD |0 +<U00FF> \xFF |0 +<U010A> \xA4 |0 +<U010B> \xA5 |0 +<U0120> \xB2 |0 +<U0121> \xB3 |0 +<U0174> \xD0 |0 +<U0175> \xF0 |0 +<U0176> \xDE |0 +<U0177> \xFE |0 +<U0178> \xAF |0 +<U1E02> \xA1 |0 +<U1E03> \xA2 |0 +<U1E0A> \xA6 |0 +<U1E0B> \xAB |0 +<U1E1E> \xB0 |0 +<U1E1F> \xB1 |0 +<U1E40> \xB4 |0 +<U1E41> \xB5 |0 +<U1E56> \xB7 |0 +<U1E57> \xB9 |0 +<U1E60> \xBB |0 +<U1E61> \xBF |0 +<U1E6A> \xD7 |0 +<U1E6B> \xF7 |0 +<U1E80> \xA8 |0 +<U1E81> \xB8 |0 +<U1E82> \xAA |0 +<U1E83> \xBA |0 +<U1E84> \xBD |0 +<U1E85> \xBE |0 +<U1EF2> \xAC |0 +<U1EF3> \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 +<code_set_name> "iso8859-15" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x3F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x04 |0 +<U0005> \x05 |0 +<U0006> \x06 |0 +<U0007> \x07 |0 +<U0008> \x08 |0 +<U0009> \x09 |0 +<U000A> \x0A |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x14 |0 +<U0015> \x15 |0 +<U0016> \x16 |0 +<U0017> \x17 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x1A |0 +<U001B> \x1B |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x20 |0 +<U0021> \x21 |0 +<U0022> \x22 |0 +<U0023> \x23 |0 +<U0024> \x24 |0 +<U0025> \x25 |0 +<U0026> \x26 |0 +<U0027> \x27 |0 +<U0028> \x28 |0 +<U0029> \x29 |0 +<U002A> \x2A |0 +<U002B> \x2B |0 +<U002C> \x2C |0 +<U002D> \x2D |0 +<U002E> \x2E |0 +<U002F> \x2F |0 +<U0030> \x30 |0 +<U0031> \x31 |0 +<U0032> \x32 |0 +<U0033> \x33 |0 +<U0034> \x34 |0 +<U0035> \x35 |0 +<U0036> \x36 |0 +<U0037> \x37 |0 +<U0038> \x38 |0 +<U0039> \x39 |0 +<U003A> \x3A |0 +<U003B> \x3B |0 +<U003C> \x3C |0 +<U003D> \x3D |0 +<U003E> \x3E |0 +<U003F> \x3F |0 +<U0040> \x40 |0 +<U0041> \x41 |0 +<U0042> \x42 |0 +<U0043> \x43 |0 +<U0044> \x44 |0 +<U0045> \x45 |0 +<U0046> \x46 |0 +<U0047> \x47 |0 +<U0048> \x48 |0 +<U0049> \x49 |0 +<U004A> \x4A |0 +<U004B> \x4B |0 +<U004C> \x4C |0 +<U004D> \x4D |0 +<U004E> \x4E |0 +<U004F> \x4F |0 +<U0050> \x50 |0 +<U0051> \x51 |0 +<U0052> \x52 |0 +<U0053> \x53 |0 +<U0054> \x54 |0 +<U0055> \x55 |0 +<U0056> \x56 |0 +<U0057> \x57 |0 +<U0058> \x58 |0 +<U0059> \x59 |0 +<U005A> \x5A |0 +<U005B> \x5B |0 +<U005C> \x5C |0 +<U005D> \x5D |0 +<U005E> \x5E |0 +<U005F> \x5F |0 +<U0060> \x60 |0 +<U0061> \x61 |0 +<U0062> \x62 |0 +<U0063> \x63 |0 +<U0064> \x64 |0 +<U0065> \x65 |0 +<U0066> \x66 |0 +<U0067> \x67 |0 +<U0068> \x68 |0 +<U0069> \x69 |0 +<U006A> \x6A |0 +<U006B> \x6B |0 +<U006C> \x6C |0 +<U006D> \x6D |0 +<U006E> \x6E |0 +<U006F> \x6F |0 +<U0070> \x70 |0 +<U0071> \x71 |0 +<U0072> \x72 |0 +<U0073> \x73 |0 +<U0074> \x74 |0 +<U0075> \x75 |0 +<U0076> \x76 |0 +<U0077> \x77 |0 +<U0078> \x78 |0 +<U0079> \x79 |0 +<U007A> \x7A |0 +<U007B> \x7B |0 +<U007C> \x7C |0 +<U007D> \x7D |0 +<U007E> \x7E |0 +<U007F> \x7F |0 +<U0080> \x80 |0 +<U0081> \x81 |0 +<U0082> \x82 |0 +<U0083> \x83 |0 +<U0084> \x84 |0 +<U0085> \x85 |0 +<U0086> \x86 |0 +<U0087> \x87 |0 +<U0088> \x88 |0 +<U0089> \x89 |0 +<U008A> \x8A |0 +<U008B> \x8B |0 +<U008C> \x8C |0 +<U008D> \x8D |0 +<U008E> \x8E |0 +<U008F> \x8F |0 +<U0090> \x90 |0 +<U0091> \x91 |0 +<U0092> \x92 |0 +<U0093> \x93 |0 +<U0094> \x94 |0 +<U0095> \x95 |0 +<U0096> \x96 |0 +<U0097> \x97 |0 +<U0098> \x98 |0 +<U0099> \x99 |0 +<U009A> \x9A |0 +<U009B> \x9B |0 +<U009C> \x9C |0 +<U009D> \x9D |0 +<U009E> \x9E |0 +<U009F> \x9F |0 +<U00A0> \xA0 |0 +<U00A1> \xA1 |0 +<U00A2> \xA2 |0 +<U00A3> \xA3 |0 +<U00A5> \xA5 |0 +<U00A7> \xA7 |0 +<U00A9> \xA9 |0 +<U00AA> \xAA |0 +<U00AB> \xAB |0 +<U00AC> \xAC |0 +<U00AD> \xAD |0 +<U00AE> \xAE |0 +<U00AF> \xAF |0 +<U00B0> \xB0 |0 +<U00B1> \xB1 |0 +<U00B2> \xB2 |0 +<U00B3> \xB3 |0 +<U00B5> \xB5 |0 +<U00B6> \xB6 |0 +<U00B7> \xB7 |0 +<U00B9> \xB9 |0 +<U00BA> \xBA |0 +<U00BB> \xBB |0 +<U00BF> \xBF |0 +<U00C0> \xC0 |0 +<U00C1> \xC1 |0 +<U00C2> \xC2 |0 +<U00C3> \xC3 |0 +<U00C4> \xC4 |0 +<U00C5> \xC5 |0 +<U00C6> \xC6 |0 +<U00C7> \xC7 |0 +<U00C8> \xC8 |0 +<U00C9> \xC9 |0 +<U00CA> \xCA |0 +<U00CB> \xCB |0 +<U00CC> \xCC |0 +<U00CD> \xCD |0 +<U00CE> \xCE |0 +<U00CF> \xCF |0 +<U00D0> \xD0 |0 +<U00D1> \xD1 |0 +<U00D2> \xD2 |0 +<U00D3> \xD3 |0 +<U00D4> \xD4 |0 +<U00D5> \xD5 |0 +<U00D6> \xD6 |0 +<U00D7> \xD7 |0 +<U00D8> \xD8 |0 +<U00D9> \xD9 |0 +<U00DA> \xDA |0 +<U00DB> \xDB |0 +<U00DC> \xDC |0 +<U00DD> \xDD |0 +<U00DE> \xDE |0 +<U00DF> \xDF |0 +<U00E0> \xE0 |0 +<U00E1> \xE1 |0 +<U00E2> \xE2 |0 +<U00E3> \xE3 |0 +<U00E4> \xE4 |0 +<U00E5> \xE5 |0 +<U00E6> \xE6 |0 +<U00E7> \xE7 |0 +<U00E8> \xE8 |0 +<U00E9> \xE9 |0 +<U00EA> \xEA |0 +<U00EB> \xEB |0 +<U00EC> \xEC |0 +<U00ED> \xED |0 +<U00EE> \xEE |0 +<U00EF> \xEF |0 +<U00F0> \xF0 |0 +<U00F1> \xF1 |0 +<U00F2> \xF2 |0 +<U00F3> \xF3 |0 +<U00F4> \xF4 |0 +<U00F5> \xF5 |0 +<U00F6> \xF6 |0 +<U00F7> \xF7 |0 +<U00F8> \xF8 |0 +<U00F9> \xF9 |0 +<U00FA> \xFA |0 +<U00FB> \xFB |0 +<U00FC> \xFC |0 +<U00FD> \xFD |0 +<U00FE> \xFE |0 +<U00FF> \xFF |0 +<U0152> \xBC |0 +<U0153> \xBD |0 +<U0160> \xA6 |0 +<U0161> \xA8 |0 +<U0178> \xBE |0 +<U017D> \xB4 |0 +<U017E> \xB8 |0 +<U20AC> \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 +<code_set_name> "iso8859-16" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x3F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x04 |0 +<U0005> \x05 |0 +<U0006> \x06 |0 +<U0007> \x07 |0 +<U0008> \x08 |0 +<U0009> \x09 |0 +<U000A> \x0A |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x14 |0 +<U0015> \x15 |0 +<U0016> \x16 |0 +<U0017> \x17 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x1A |0 +<U001B> \x1B |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x20 |0 +<U0021> \x21 |0 +<U0022> \x22 |0 +<U0023> \x23 |0 +<U0024> \x24 |0 +<U0025> \x25 |0 +<U0026> \x26 |0 +<U0027> \x27 |0 +<U0028> \x28 |0 +<U0029> \x29 |0 +<U002A> \x2A |0 +<U002B> \x2B |0 +<U002C> \x2C |0 +<U002D> \x2D |0 +<U002E> \x2E |0 +<U002F> \x2F |0 +<U0030> \x30 |0 +<U0031> \x31 |0 +<U0032> \x32 |0 +<U0033> \x33 |0 +<U0034> \x34 |0 +<U0035> \x35 |0 +<U0036> \x36 |0 +<U0037> \x37 |0 +<U0038> \x38 |0 +<U0039> \x39 |0 +<U003A> \x3A |0 +<U003B> \x3B |0 +<U003C> \x3C |0 +<U003D> \x3D |0 +<U003E> \x3E |0 +<U003F> \x3F |0 +<U0040> \x40 |0 +<U0041> \x41 |0 +<U0042> \x42 |0 +<U0043> \x43 |0 +<U0044> \x44 |0 +<U0045> \x45 |0 +<U0046> \x46 |0 +<U0047> \x47 |0 +<U0048> \x48 |0 +<U0049> \x49 |0 +<U004A> \x4A |0 +<U004B> \x4B |0 +<U004C> \x4C |0 +<U004D> \x4D |0 +<U004E> \x4E |0 +<U004F> \x4F |0 +<U0050> \x50 |0 +<U0051> \x51 |0 +<U0052> \x52 |0 +<U0053> \x53 |0 +<U0054> \x54 |0 +<U0055> \x55 |0 +<U0056> \x56 |0 +<U0057> \x57 |0 +<U0058> \x58 |0 +<U0059> \x59 |0 +<U005A> \x5A |0 +<U005B> \x5B |0 +<U005C> \x5C |0 +<U005D> \x5D |0 +<U005E> \x5E |0 +<U005F> \x5F |0 +<U0060> \x60 |0 +<U0061> \x61 |0 +<U0062> \x62 |0 +<U0063> \x63 |0 +<U0064> \x64 |0 +<U0065> \x65 |0 +<U0066> \x66 |0 +<U0067> \x67 |0 +<U0068> \x68 |0 +<U0069> \x69 |0 +<U006A> \x6A |0 +<U006B> \x6B |0 +<U006C> \x6C |0 +<U006D> \x6D |0 +<U006E> \x6E |0 +<U006F> \x6F |0 +<U0070> \x70 |0 +<U0071> \x71 |0 +<U0072> \x72 |0 +<U0073> \x73 |0 +<U0074> \x74 |0 +<U0075> \x75 |0 +<U0076> \x76 |0 +<U0077> \x77 |0 +<U0078> \x78 |0 +<U0079> \x79 |0 +<U007A> \x7A |0 +<U007B> \x7B |0 +<U007C> \x7C |0 +<U007D> \x7D |0 +<U007E> \x7E |0 +<U007F> \x7F |0 +<U0080> \x80 |0 +<U0081> \x81 |0 +<U0082> \x82 |0 +<U0083> \x83 |0 +<U0084> \x84 |0 +<U0085> \x85 |0 +<U0086> \x86 |0 +<U0087> \x87 |0 +<U0088> \x88 |0 +<U0089> \x89 |0 +<U008A> \x8A |0 +<U008B> \x8B |0 +<U008C> \x8C |0 +<U008D> \x8D |0 +<U008E> \x8E |0 +<U008F> \x8F |0 +<U0090> \x90 |0 +<U0091> \x91 |0 +<U0092> \x92 |0 +<U0093> \x93 |0 +<U0094> \x94 |0 +<U0095> \x95 |0 +<U0096> \x96 |0 +<U0097> \x97 |0 +<U0098> \x98 |0 +<U0099> \x99 |0 +<U009A> \x9A |0 +<U009B> \x9B |0 +<U009C> \x9C |0 +<U009D> \x9D |0 +<U009E> \x9E |0 +<U009F> \x9F |0 +<U00A0> \xA0 |0 +<U00A7> \xA7 |0 +<U00A9> \xA9 |0 +<U00AB> \xA5 |0 +<U00AD> \xAD |0 +<U00B0> \xB0 |0 +<U00B1> \xB1 |0 +<U00B6> \xB6 |0 +<U00B7> \xB7 |0 +<U00BB> \xBB |0 +<U00C0> \xC0 |0 +<U00C1> \xC1 |0 +<U00C2> \xC2 |0 +<U00C4> \xC4 |0 +<U00C6> \xC6 |0 +<U00C7> \xC7 |0 +<U00C8> \xC8 |0 +<U00C9> \xC9 |0 +<U00CA> \xCA |0 +<U00CB> \xCB |0 +<U00CC> \xCC |0 +<U00CD> \xCD |0 +<U00CE> \xCE |0 +<U00CF> \xCF |0 +<U00D2> \xD2 |0 +<U00D3> \xD3 |0 +<U00D4> \xD4 |0 +<U00D6> \xD6 |0 +<U00D9> \xD9 |0 +<U00DA> \xDA |0 +<U00DB> \xDB |0 +<U00DC> \xDC |0 +<U00DF> \xDF |0 +<U00E0> \xE0 |0 +<U00E1> \xE1 |0 +<U00E2> \xE2 |0 +<U00E4> \xE4 |0 +<U00E6> \xE6 |0 +<U00E7> \xE7 |0 +<U00E8> \xE8 |0 +<U00E9> \xE9 |0 +<U00EA> \xEA |0 +<U00EB> \xEB |0 +<U00EC> \xEC |0 +<U00ED> \xED |0 +<U00EE> \xEE |0 +<U00EF> \xEF |0 +<U00F2> \xF2 |0 +<U00F3> \xF3 |0 +<U00F4> \xF4 |0 +<U00F6> \xF6 |0 +<U00F9> \xF9 |0 +<U00FA> \xFA |0 +<U00FB> \xFB |0 +<U00FC> \xFC |0 +<U00FF> \xFF |0 +<U0102> \xC3 |0 +<U0103> \xE3 |0 +<U0104> \xA1 |0 +<U0105> \xA2 |0 +<U0106> \xC5 |0 +<U0107> \xE5 |0 +<U010C> \xB2 |0 +<U010D> \xB9 |0 +<U0110> \xD0 |0 +<U0111> \xF0 |0 +<U0118> \xDD |0 +<U0119> \xFD |0 +<U0141> \xA3 |0 +<U0142> \xB3 |0 +<U0143> \xD1 |0 +<U0144> \xF1 |0 +<U0150> \xD5 |0 +<U0151> \xF5 |0 +<U0152> \xBC |0 +<U0153> \xBD |0 +<U015A> \xD7 |0 +<U015B> \xF7 |0 +<U0160> \xA6 |0 +<U0161> \xA8 |0 +<U0170> \xD8 |0 +<U0171> \xF8 |0 +<U0178> \xBE |0 +<U0179> \xAC |0 +<U017A> \xAE |0 +<U017B> \xAF |0 +<U017C> \xBF |0 +<U017D> \xB4 |0 +<U017E> \xB8 |0 +<U0218> \xAA |0 +<U0219> \xBA |0 +<U021A> \xDE |0 +<U021B> \xFE |0 +<U201D> \xB5 |0 +<U201E> \xAB |0 +<U20AC> \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 +<code_set_name> "iso8859-2" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x3F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x04 |0 +<U0005> \x05 |0 +<U0006> \x06 |0 +<U0007> \x07 |0 +<U0008> \x08 |0 +<U0009> \x09 |0 +<U000A> \x0A |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x14 |0 +<U0015> \x15 |0 +<U0016> \x16 |0 +<U0017> \x17 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x1A |0 +<U001B> \x1B |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x20 |0 +<U0021> \x21 |0 +<U0022> \x22 |0 +<U0023> \x23 |0 +<U0024> \x24 |0 +<U0025> \x25 |0 +<U0026> \x26 |0 +<U0027> \x27 |0 +<U0028> \x28 |0 +<U0029> \x29 |0 +<U002A> \x2A |0 +<U002B> \x2B |0 +<U002C> \x2C |0 +<U002D> \x2D |0 +<U002E> \x2E |0 +<U002F> \x2F |0 +<U0030> \x30 |0 +<U0031> \x31 |0 +<U0032> \x32 |0 +<U0033> \x33 |0 +<U0034> \x34 |0 +<U0035> \x35 |0 +<U0036> \x36 |0 +<U0037> \x37 |0 +<U0038> \x38 |0 +<U0039> \x39 |0 +<U003A> \x3A |0 +<U003B> \x3B |0 +<U003C> \x3C |0 +<U003D> \x3D |0 +<U003E> \x3E |0 +<U003F> \x3F |0 +<U0040> \x40 |0 +<U0041> \x41 |0 +<U0042> \x42 |0 +<U0043> \x43 |0 +<U0044> \x44 |0 +<U0045> \x45 |0 +<U0046> \x46 |0 +<U0047> \x47 |0 +<U0048> \x48 |0 +<U0049> \x49 |0 +<U004A> \x4A |0 +<U004B> \x4B |0 +<U004C> \x4C |0 +<U004D> \x4D |0 +<U004E> \x4E |0 +<U004F> \x4F |0 +<U0050> \x50 |0 +<U0051> \x51 |0 +<U0052> \x52 |0 +<U0053> \x53 |0 +<U0054> \x54 |0 +<U0055> \x55 |0 +<U0056> \x56 |0 +<U0057> \x57 |0 +<U0058> \x58 |0 +<U0059> \x59 |0 +<U005A> \x5A |0 +<U005B> \x5B |0 +<U005C> \x5C |0 +<U005D> \x5D |0 +<U005E> \x5E |0 +<U005F> \x5F |0 +<U0060> \x60 |0 +<U0061> \x61 |0 +<U0062> \x62 |0 +<U0063> \x63 |0 +<U0064> \x64 |0 +<U0065> \x65 |0 +<U0066> \x66 |0 +<U0067> \x67 |0 +<U0068> \x68 |0 +<U0069> \x69 |0 +<U006A> \x6A |0 +<U006B> \x6B |0 +<U006C> \x6C |0 +<U006D> \x6D |0 +<U006E> \x6E |0 +<U006F> \x6F |0 +<U0070> \x70 |0 +<U0071> \x71 |0 +<U0072> \x72 |0 +<U0073> \x73 |0 +<U0074> \x74 |0 +<U0075> \x75 |0 +<U0076> \x76 |0 +<U0077> \x77 |0 +<U0078> \x78 |0 +<U0079> \x79 |0 +<U007A> \x7A |0 +<U007B> \x7B |0 +<U007C> \x7C |0 +<U007D> \x7D |0 +<U007E> \x7E |0 +<U007F> \x7F |0 +<U0080> \x80 |0 +<U0081> \x81 |0 +<U0082> \x82 |0 +<U0083> \x83 |0 +<U0084> \x84 |0 +<U0085> \x85 |0 +<U0086> \x86 |0 +<U0087> \x87 |0 +<U0088> \x88 |0 +<U0089> \x89 |0 +<U008A> \x8A |0 +<U008B> \x8B |0 +<U008C> \x8C |0 +<U008D> \x8D |0 +<U008E> \x8E |0 +<U008F> \x8F |0 +<U0090> \x90 |0 +<U0091> \x91 |0 +<U0092> \x92 |0 +<U0093> \x93 |0 +<U0094> \x94 |0 +<U0095> \x95 |0 +<U0096> \x96 |0 +<U0097> \x97 |0 +<U0098> \x98 |0 +<U0099> \x99 |0 +<U009A> \x9A |0 +<U009B> \x9B |0 +<U009C> \x9C |0 +<U009D> \x9D |0 +<U009E> \x9E |0 +<U009F> \x9F |0 +<U00A0> \xA0 |0 +<U00A4> \xA4 |0 +<U00A7> \xA7 |0 +<U00A8> \xA8 |0 +<U00AD> \xAD |0 +<U00B0> \xB0 |0 +<U00B4> \xB4 |0 +<U00B8> \xB8 |0 +<U00C1> \xC1 |0 +<U00C2> \xC2 |0 +<U00C4> \xC4 |0 +<U00C7> \xC7 |0 +<U00C9> \xC9 |0 +<U00CB> \xCB |0 +<U00CD> \xCD |0 +<U00CE> \xCE |0 +<U00D3> \xD3 |0 +<U00D4> \xD4 |0 +<U00D6> \xD6 |0 +<U00D7> \xD7 |0 +<U00DA> \xDA |0 +<U00DC> \xDC |0 +<U00DD> \xDD |0 +<U00DF> \xDF |0 +<U00E1> \xE1 |0 +<U00E2> \xE2 |0 +<U00E4> \xE4 |0 +<U00E7> \xE7 |0 +<U00E9> \xE9 |0 +<U00EB> \xEB |0 +<U00ED> \xED |0 +<U00EE> \xEE |0 +<U00F3> \xF3 |0 +<U00F4> \xF4 |0 +<U00F6> \xF6 |0 +<U00F7> \xF7 |0 +<U00FA> \xFA |0 +<U00FC> \xFC |0 +<U00FD> \xFD |0 +<U0102> \xC3 |0 +<U0103> \xE3 |0 +<U0104> \xA1 |0 +<U0105> \xB1 |0 +<U0106> \xC6 |0 +<U0107> \xE6 |0 +<U010C> \xC8 |0 +<U010D> \xE8 |0 +<U010E> \xCF |0 +<U010F> \xEF |0 +<U0110> \xD0 |0 +<U0111> \xF0 |0 +<U0118> \xCA |0 +<U0119> \xEA |0 +<U011A> \xCC |0 +<U011B> \xEC |0 +<U0139> \xC5 |0 +<U013A> \xE5 |0 +<U013D> \xA5 |0 +<U013E> \xB5 |0 +<U0141> \xA3 |0 +<U0142> \xB3 |0 +<U0143> \xD1 |0 +<U0144> \xF1 |0 +<U0147> \xD2 |0 +<U0148> \xF2 |0 +<U0150> \xD5 |0 +<U0151> \xF5 |0 +<U0154> \xC0 |0 +<U0155> \xE0 |0 +<U0158> \xD8 |0 +<U0159> \xF8 |0 +<U015A> \xA6 |0 +<U015B> \xB6 |0 +<U015E> \xAA |0 +<U015F> \xBA |0 +<U0160> \xA9 |0 +<U0161> \xB9 |0 +<U0162> \xDE |0 +<U0163> \xFE |0 +<U0164> \xAB |0 +<U0165> \xBB |0 +<U016E> \xD9 |0 +<U016F> \xF9 |0 +<U0170> \xDB |0 +<U0171> \xFB |0 +<U0179> \xAC |0 +<U017A> \xBC |0 +<U017B> \xAF |0 +<U017C> \xBF |0 +<U017D> \xAE |0 +<U017E> \xBE |0 +<U02C7> \xB7 |0 +<U02D8> \xA2 |0 +<U02D9> \xFF |0 +<U02DB> \xB2 |0 +<U02DD> \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 +<code_set_name> "iso8859-3" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x3F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x04 |0 +<U0005> \x05 |0 +<U0006> \x06 |0 +<U0007> \x07 |0 +<U0008> \x08 |0 +<U0009> \x09 |0 +<U000A> \x0A |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x14 |0 +<U0015> \x15 |0 +<U0016> \x16 |0 +<U0017> \x17 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x1A |0 +<U001B> \x1B |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x20 |0 +<U0021> \x21 |0 +<U0022> \x22 |0 +<U0023> \x23 |0 +<U0024> \x24 |0 +<U0025> \x25 |0 +<U0026> \x26 |0 +<U0027> \x27 |0 +<U0028> \x28 |0 +<U0029> \x29 |0 +<U002A> \x2A |0 +<U002B> \x2B |0 +<U002C> \x2C |0 +<U002D> \x2D |0 +<U002E> \x2E |0 +<U002F> \x2F |0 +<U0030> \x30 |0 +<U0031> \x31 |0 +<U0032> \x32 |0 +<U0033> \x33 |0 +<U0034> \x34 |0 +<U0035> \x35 |0 +<U0036> \x36 |0 +<U0037> \x37 |0 +<U0038> \x38 |0 +<U0039> \x39 |0 +<U003A> \x3A |0 +<U003B> \x3B |0 +<U003C> \x3C |0 +<U003D> \x3D |0 +<U003E> \x3E |0 +<U003F> \x3F |0 +<U0040> \x40 |0 +<U0041> \x41 |0 +<U0042> \x42 |0 +<U0043> \x43 |0 +<U0044> \x44 |0 +<U0045> \x45 |0 +<U0046> \x46 |0 +<U0047> \x47 |0 +<U0048> \x48 |0 +<U0049> \x49 |0 +<U004A> \x4A |0 +<U004B> \x4B |0 +<U004C> \x4C |0 +<U004D> \x4D |0 +<U004E> \x4E |0 +<U004F> \x4F |0 +<U0050> \x50 |0 +<U0051> \x51 |0 +<U0052> \x52 |0 +<U0053> \x53 |0 +<U0054> \x54 |0 +<U0055> \x55 |0 +<U0056> \x56 |0 +<U0057> \x57 |0 +<U0058> \x58 |0 +<U0059> \x59 |0 +<U005A> \x5A |0 +<U005B> \x5B |0 +<U005C> \x5C |0 +<U005D> \x5D |0 +<U005E> \x5E |0 +<U005F> \x5F |0 +<U0060> \x60 |0 +<U0061> \x61 |0 +<U0062> \x62 |0 +<U0063> \x63 |0 +<U0064> \x64 |0 +<U0065> \x65 |0 +<U0066> \x66 |0 +<U0067> \x67 |0 +<U0068> \x68 |0 +<U0069> \x69 |0 +<U006A> \x6A |0 +<U006B> \x6B |0 +<U006C> \x6C |0 +<U006D> \x6D |0 +<U006E> \x6E |0 +<U006F> \x6F |0 +<U0070> \x70 |0 +<U0071> \x71 |0 +<U0072> \x72 |0 +<U0073> \x73 |0 +<U0074> \x74 |0 +<U0075> \x75 |0 +<U0076> \x76 |0 +<U0077> \x77 |0 +<U0078> \x78 |0 +<U0079> \x79 |0 +<U007A> \x7A |0 +<U007B> \x7B |0 +<U007C> \x7C |0 +<U007D> \x7D |0 +<U007E> \x7E |0 +<U007F> \x7F |0 +<U0080> \x80 |0 +<U0081> \x81 |0 +<U0082> \x82 |0 +<U0083> \x83 |0 +<U0084> \x84 |0 +<U0085> \x85 |0 +<U0086> \x86 |0 +<U0087> \x87 |0 +<U0088> \x88 |0 +<U0089> \x89 |0 +<U008A> \x8A |0 +<U008B> \x8B |0 +<U008C> \x8C |0 +<U008D> \x8D |0 +<U008E> \x8E |0 +<U008F> \x8F |0 +<U0090> \x90 |0 +<U0091> \x91 |0 +<U0092> \x92 |0 +<U0093> \x93 |0 +<U0094> \x94 |0 +<U0095> \x95 |0 +<U0096> \x96 |0 +<U0097> \x97 |0 +<U0098> \x98 |0 +<U0099> \x99 |0 +<U009A> \x9A |0 +<U009B> \x9B |0 +<U009C> \x9C |0 +<U009D> \x9D |0 +<U009E> \x9E |0 +<U009F> \x9F |0 +<U00A0> \xA0 |0 +<U00A3> \xA3 |0 +<U00A4> \xA4 |0 +<U00A7> \xA7 |0 +<U00A8> \xA8 |0 +<U00AD> \xAD |0 +<U00B0> \xB0 |0 +<U00B2> \xB2 |0 +<U00B3> \xB3 |0 +<U00B4> \xB4 |0 +<U00B5> \xB5 |0 +<U00B7> \xB7 |0 +<U00B8> \xB8 |0 +<U00BD> \xBD |0 +<U00C0> \xC0 |0 +<U00C1> \xC1 |0 +<U00C2> \xC2 |0 +<U00C4> \xC4 |0 +<U00C7> \xC7 |0 +<U00C8> \xC8 |0 +<U00C9> \xC9 |0 +<U00CA> \xCA |0 +<U00CB> \xCB |0 +<U00CC> \xCC |0 +<U00CD> \xCD |0 +<U00CE> \xCE |0 +<U00CF> \xCF |0 +<U00D1> \xD1 |0 +<U00D2> \xD2 |0 +<U00D3> \xD3 |0 +<U00D4> \xD4 |0 +<U00D6> \xD6 |0 +<U00D7> \xD7 |0 +<U00D9> \xD9 |0 +<U00DA> \xDA |0 +<U00DB> \xDB |0 +<U00DC> \xDC |0 +<U00DF> \xDF |0 +<U00E0> \xE0 |0 +<U00E1> \xE1 |0 +<U00E2> \xE2 |0 +<U00E4> \xE4 |0 +<U00E7> \xE7 |0 +<U00E8> \xE8 |0 +<U00E9> \xE9 |0 +<U00EA> \xEA |0 +<U00EB> \xEB |0 +<U00EC> \xEC |0 +<U00ED> \xED |0 +<U00EE> \xEE |0 +<U00EF> \xEF |0 +<U00F1> \xF1 |0 +<U00F2> \xF2 |0 +<U00F3> \xF3 |0 +<U00F4> \xF4 |0 +<U00F6> \xF6 |0 +<U00F7> \xF7 |0 +<U00F9> \xF9 |0 +<U00FA> \xFA |0 +<U00FB> \xFB |0 +<U00FC> \xFC |0 +<U0108> \xC6 |0 +<U0109> \xE6 |0 +<U010A> \xC5 |0 +<U010B> \xE5 |0 +<U011C> \xD8 |0 +<U011D> \xF8 |0 +<U011E> \xAB |0 +<U011F> \xBB |0 +<U0120> \xD5 |0 +<U0121> \xF5 |0 +<U0124> \xA6 |0 +<U0125> \xB6 |0 +<U0126> \xA1 |0 +<U0127> \xB1 |0 +<U0130> \xA9 |0 +<U0131> \xB9 |0 +<U0134> \xAC |0 +<U0135> \xBC |0 +<U015C> \xDE |0 +<U015D> \xFE |0 +<U015E> \xAA |0 +<U015F> \xBA |0 +<U016C> \xDD |0 +<U016D> \xFD |0 +<U017B> \xAF |0 +<U017C> \xBF |0 +<U02D8> \xA2 |0 +<U02D9> \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 +<code_set_name> "iso8859-4" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x3F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x04 |0 +<U0005> \x05 |0 +<U0006> \x06 |0 +<U0007> \x07 |0 +<U0008> \x08 |0 +<U0009> \x09 |0 +<U000A> \x0A |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x14 |0 +<U0015> \x15 |0 +<U0016> \x16 |0 +<U0017> \x17 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x1A |0 +<U001B> \x1B |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x20 |0 +<U0021> \x21 |0 +<U0022> \x22 |0 +<U0023> \x23 |0 +<U0024> \x24 |0 +<U0025> \x25 |0 +<U0026> \x26 |0 +<U0027> \x27 |0 +<U0028> \x28 |0 +<U0029> \x29 |0 +<U002A> \x2A |0 +<U002B> \x2B |0 +<U002C> \x2C |0 +<U002D> \x2D |0 +<U002E> \x2E |0 +<U002F> \x2F |0 +<U0030> \x30 |0 +<U0031> \x31 |0 +<U0032> \x32 |0 +<U0033> \x33 |0 +<U0034> \x34 |0 +<U0035> \x35 |0 +<U0036> \x36 |0 +<U0037> \x37 |0 +<U0038> \x38 |0 +<U0039> \x39 |0 +<U003A> \x3A |0 +<U003B> \x3B |0 +<U003C> \x3C |0 +<U003D> \x3D |0 +<U003E> \x3E |0 +<U003F> \x3F |0 +<U0040> \x40 |0 +<U0041> \x41 |0 +<U0042> \x42 |0 +<U0043> \x43 |0 +<U0044> \x44 |0 +<U0045> \x45 |0 +<U0046> \x46 |0 +<U0047> \x47 |0 +<U0048> \x48 |0 +<U0049> \x49 |0 +<U004A> \x4A |0 +<U004B> \x4B |0 +<U004C> \x4C |0 +<U004D> \x4D |0 +<U004E> \x4E |0 +<U004F> \x4F |0 +<U0050> \x50 |0 +<U0051> \x51 |0 +<U0052> \x52 |0 +<U0053> \x53 |0 +<U0054> \x54 |0 +<U0055> \x55 |0 +<U0056> \x56 |0 +<U0057> \x57 |0 +<U0058> \x58 |0 +<U0059> \x59 |0 +<U005A> \x5A |0 +<U005B> \x5B |0 +<U005C> \x5C |0 +<U005D> \x5D |0 +<U005E> \x5E |0 +<U005F> \x5F |0 +<U0060> \x60 |0 +<U0061> \x61 |0 +<U0062> \x62 |0 +<U0063> \x63 |0 +<U0064> \x64 |0 +<U0065> \x65 |0 +<U0066> \x66 |0 +<U0067> \x67 |0 +<U0068> \x68 |0 +<U0069> \x69 |0 +<U006A> \x6A |0 +<U006B> \x6B |0 +<U006C> \x6C |0 +<U006D> \x6D |0 +<U006E> \x6E |0 +<U006F> \x6F |0 +<U0070> \x70 |0 +<U0071> \x71 |0 +<U0072> \x72 |0 +<U0073> \x73 |0 +<U0074> \x74 |0 +<U0075> \x75 |0 +<U0076> \x76 |0 +<U0077> \x77 |0 +<U0078> \x78 |0 +<U0079> \x79 |0 +<U007A> \x7A |0 +<U007B> \x7B |0 +<U007C> \x7C |0 +<U007D> \x7D |0 +<U007E> \x7E |0 +<U007F> \x7F |0 +<U0080> \x80 |0 +<U0081> \x81 |0 +<U0082> \x82 |0 +<U0083> \x83 |0 +<U0084> \x84 |0 +<U0085> \x85 |0 +<U0086> \x86 |0 +<U0087> \x87 |0 +<U0088> \x88 |0 +<U0089> \x89 |0 +<U008A> \x8A |0 +<U008B> \x8B |0 +<U008C> \x8C |0 +<U008D> \x8D |0 +<U008E> \x8E |0 +<U008F> \x8F |0 +<U0090> \x90 |0 +<U0091> \x91 |0 +<U0092> \x92 |0 +<U0093> \x93 |0 +<U0094> \x94 |0 +<U0095> \x95 |0 +<U0096> \x96 |0 +<U0097> \x97 |0 +<U0098> \x98 |0 +<U0099> \x99 |0 +<U009A> \x9A |0 +<U009B> \x9B |0 +<U009C> \x9C |0 +<U009D> \x9D |0 +<U009E> \x9E |0 +<U009F> \x9F |0 +<U00A0> \xA0 |0 +<U00A4> \xA4 |0 +<U00A7> \xA7 |0 +<U00A8> \xA8 |0 +<U00AD> \xAD |0 +<U00AF> \xAF |0 +<U00B0> \xB0 |0 +<U00B4> \xB4 |0 +<U00B8> \xB8 |0 +<U00C1> \xC1 |0 +<U00C2> \xC2 |0 +<U00C3> \xC3 |0 +<U00C4> \xC4 |0 +<U00C5> \xC5 |0 +<U00C6> \xC6 |0 +<U00C9> \xC9 |0 +<U00CB> \xCB |0 +<U00CD> \xCD |0 +<U00CE> \xCE |0 +<U00D4> \xD4 |0 +<U00D5> \xD5 |0 +<U00D6> \xD6 |0 +<U00D7> \xD7 |0 +<U00D8> \xD8 |0 +<U00DA> \xDA |0 +<U00DB> \xDB |0 +<U00DC> \xDC |0 +<U00DF> \xDF |0 +<U00E1> \xE1 |0 +<U00E2> \xE2 |0 +<U00E3> \xE3 |0 +<U00E4> \xE4 |0 +<U00E5> \xE5 |0 +<U00E6> \xE6 |0 +<U00E9> \xE9 |0 +<U00EB> \xEB |0 +<U00ED> \xED |0 +<U00EE> \xEE |0 +<U00F4> \xF4 |0 +<U00F5> \xF5 |0 +<U00F6> \xF6 |0 +<U00F7> \xF7 |0 +<U00F8> \xF8 |0 +<U00FA> \xFA |0 +<U00FB> \xFB |0 +<U00FC> \xFC |0 +<U0100> \xC0 |0 +<U0101> \xE0 |0 +<U0104> \xA1 |0 +<U0105> \xB1 |0 +<U010C> \xC8 |0 +<U010D> \xE8 |0 +<U0110> \xD0 |0 +<U0111> \xF0 |0 +<U0112> \xAA |0 +<U0113> \xBA |0 +<U0116> \xCC |0 +<U0117> \xEC |0 +<U0118> \xCA |0 +<U0119> \xEA |0 +<U0122> \xAB |0 +<U0123> \xBB |0 +<U0128> \xA5 |0 +<U0129> \xB5 |0 +<U012A> \xCF |0 +<U012B> \xEF |0 +<U012E> \xC7 |0 +<U012F> \xE7 |0 +<U0136> \xD3 |0 +<U0137> \xF3 |0 +<U0138> \xA2 |0 +<U013B> \xA6 |0 +<U013C> \xB6 |0 +<U0145> \xD1 |0 +<U0146> \xF1 |0 +<U014A> \xBD |0 +<U014B> \xBF |0 +<U014C> \xD2 |0 +<U014D> \xF2 |0 +<U0156> \xA3 |0 +<U0157> \xB3 |0 +<U0160> \xA9 |0 +<U0161> \xB9 |0 +<U0166> \xAC |0 +<U0167> \xBC |0 +<U0168> \xDD |0 +<U0169> \xFD |0 +<U016A> \xDE |0 +<U016B> \xFE |0 +<U0172> \xD9 |0 +<U0173> \xF9 |0 +<U017D> \xAE |0 +<U017E> \xBE |0 +<U02C7> \xB7 |0 +<U02D9> \xFF |0 +<U02DB> \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 +<code_set_name> "iso8859-5" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x3F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x04 |0 +<U0005> \x05 |0 +<U0006> \x06 |0 +<U0007> \x07 |0 +<U0008> \x08 |0 +<U0009> \x09 |0 +<U000A> \x0A |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x14 |0 +<U0015> \x15 |0 +<U0016> \x16 |0 +<U0017> \x17 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x1A |0 +<U001B> \x1B |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x20 |0 +<U0021> \x21 |0 +<U0022> \x22 |0 +<U0023> \x23 |0 +<U0024> \x24 |0 +<U0025> \x25 |0 +<U0026> \x26 |0 +<U0027> \x27 |0 +<U0028> \x28 |0 +<U0029> \x29 |0 +<U002A> \x2A |0 +<U002B> \x2B |0 +<U002C> \x2C |0 +<U002D> \x2D |0 +<U002E> \x2E |0 +<U002F> \x2F |0 +<U0030> \x30 |0 +<U0031> \x31 |0 +<U0032> \x32 |0 +<U0033> \x33 |0 +<U0034> \x34 |0 +<U0035> \x35 |0 +<U0036> \x36 |0 +<U0037> \x37 |0 +<U0038> \x38 |0 +<U0039> \x39 |0 +<U003A> \x3A |0 +<U003B> \x3B |0 +<U003C> \x3C |0 +<U003D> \x3D |0 +<U003E> \x3E |0 +<U003F> \x3F |0 +<U0040> \x40 |0 +<U0041> \x41 |0 +<U0042> \x42 |0 +<U0043> \x43 |0 +<U0044> \x44 |0 +<U0045> \x45 |0 +<U0046> \x46 |0 +<U0047> \x47 |0 +<U0048> \x48 |0 +<U0049> \x49 |0 +<U004A> \x4A |0 +<U004B> \x4B |0 +<U004C> \x4C |0 +<U004D> \x4D |0 +<U004E> \x4E |0 +<U004F> \x4F |0 +<U0050> \x50 |0 +<U0051> \x51 |0 +<U0052> \x52 |0 +<U0053> \x53 |0 +<U0054> \x54 |0 +<U0055> \x55 |0 +<U0056> \x56 |0 +<U0057> \x57 |0 +<U0058> \x58 |0 +<U0059> \x59 |0 +<U005A> \x5A |0 +<U005B> \x5B |0 +<U005C> \x5C |0 +<U005D> \x5D |0 +<U005E> \x5E |0 +<U005F> \x5F |0 +<U0060> \x60 |0 +<U0061> \x61 |0 +<U0062> \x62 |0 +<U0063> \x63 |0 +<U0064> \x64 |0 +<U0065> \x65 |0 +<U0066> \x66 |0 +<U0067> \x67 |0 +<U0068> \x68 |0 +<U0069> \x69 |0 +<U006A> \x6A |0 +<U006B> \x6B |0 +<U006C> \x6C |0 +<U006D> \x6D |0 +<U006E> \x6E |0 +<U006F> \x6F |0 +<U0070> \x70 |0 +<U0071> \x71 |0 +<U0072> \x72 |0 +<U0073> \x73 |0 +<U0074> \x74 |0 +<U0075> \x75 |0 +<U0076> \x76 |0 +<U0077> \x77 |0 +<U0078> \x78 |0 +<U0079> \x79 |0 +<U007A> \x7A |0 +<U007B> \x7B |0 +<U007C> \x7C |0 +<U007D> \x7D |0 +<U007E> \x7E |0 +<U007F> \x7F |0 +<U0080> \x80 |0 +<U0081> \x81 |0 +<U0082> \x82 |0 +<U0083> \x83 |0 +<U0084> \x84 |0 +<U0085> \x85 |0 +<U0086> \x86 |0 +<U0087> \x87 |0 +<U0088> \x88 |0 +<U0089> \x89 |0 +<U008A> \x8A |0 +<U008B> \x8B |0 +<U008C> \x8C |0 +<U008D> \x8D |0 +<U008E> \x8E |0 +<U008F> \x8F |0 +<U0090> \x90 |0 +<U0091> \x91 |0 +<U0092> \x92 |0 +<U0093> \x93 |0 +<U0094> \x94 |0 +<U0095> \x95 |0 +<U0096> \x96 |0 +<U0097> \x97 |0 +<U0098> \x98 |0 +<U0099> \x99 |0 +<U009A> \x9A |0 +<U009B> \x9B |0 +<U009C> \x9C |0 +<U009D> \x9D |0 +<U009E> \x9E |0 +<U009F> \x9F |0 +<U00A0> \xA0 |0 +<U00A7> \xFD |0 +<U00AD> \xAD |0 +<U0401> \xA1 |0 +<U0402> \xA2 |0 +<U0403> \xA3 |0 +<U0404> \xA4 |0 +<U0405> \xA5 |0 +<U0406> \xA6 |0 +<U0407> \xA7 |0 +<U0408> \xA8 |0 +<U0409> \xA9 |0 +<U040A> \xAA |0 +<U040B> \xAB |0 +<U040C> \xAC |0 +<U040E> \xAE |0 +<U040F> \xAF |0 +<U0410> \xB0 |0 +<U0411> \xB1 |0 +<U0412> \xB2 |0 +<U0413> \xB3 |0 +<U0414> \xB4 |0 +<U0415> \xB5 |0 +<U0416> \xB6 |0 +<U0417> \xB7 |0 +<U0418> \xB8 |0 +<U0419> \xB9 |0 +<U041A> \xBA |0 +<U041B> \xBB |0 +<U041C> \xBC |0 +<U041D> \xBD |0 +<U041E> \xBE |0 +<U041F> \xBF |0 +<U0420> \xC0 |0 +<U0421> \xC1 |0 +<U0422> \xC2 |0 +<U0423> \xC3 |0 +<U0424> \xC4 |0 +<U0425> \xC5 |0 +<U0426> \xC6 |0 +<U0427> \xC7 |0 +<U0428> \xC8 |0 +<U0429> \xC9 |0 +<U042A> \xCA |0 +<U042B> \xCB |0 +<U042C> \xCC |0 +<U042D> \xCD |0 +<U042E> \xCE |0 +<U042F> \xCF |0 +<U0430> \xD0 |0 +<U0431> \xD1 |0 +<U0432> \xD2 |0 +<U0433> \xD3 |0 +<U0434> \xD4 |0 +<U0435> \xD5 |0 +<U0436> \xD6 |0 +<U0437> \xD7 |0 +<U0438> \xD8 |0 +<U0439> \xD9 |0 +<U043A> \xDA |0 +<U043B> \xDB |0 +<U043C> \xDC |0 +<U043D> \xDD |0 +<U043E> \xDE |0 +<U043F> \xDF |0 +<U0440> \xE0 |0 +<U0441> \xE1 |0 +<U0442> \xE2 |0 +<U0443> \xE3 |0 +<U0444> \xE4 |0 +<U0445> \xE5 |0 +<U0446> \xE6 |0 +<U0447> \xE7 |0 +<U0448> \xE8 |0 +<U0449> \xE9 |0 +<U044A> \xEA |0 +<U044B> \xEB |0 +<U044C> \xEC |0 +<U044D> \xED |0 +<U044E> \xEE |0 +<U044F> \xEF |0 +<U0451> \xF1 |0 +<U0452> \xF2 |0 +<U0453> \xF3 |0 +<U0454> \xF4 |0 +<U0455> \xF5 |0 +<U0456> \xF6 |0 +<U0457> \xF7 |0 +<U0458> \xF8 |0 +<U0459> \xF9 |0 +<U045A> \xFA |0 +<U045B> \xFB |0 +<U045C> \xFC |0 +<U045E> \xFE |0 +<U045F> \xFF |0 +<U2116> \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 +<code_set_name> "iso8859-6" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x3F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x04 |0 +<U0005> \x05 |0 +<U0006> \x06 |0 +<U0007> \x07 |0 +<U0008> \x08 |0 +<U0009> \x09 |0 +<U000A> \x0A |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x14 |0 +<U0015> \x15 |0 +<U0016> \x16 |0 +<U0017> \x17 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x1A |0 +<U001B> \x1B |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x20 |0 +<U0021> \x21 |0 +<U0022> \x22 |0 +<U0023> \x23 |0 +<U0024> \x24 |0 +<U0025> \x25 |0 +<U0026> \x26 |0 +<U0027> \x27 |0 +<U0028> \x28 |0 +<U0029> \x29 |0 +<U002A> \x2A |0 +<U002B> \x2B |0 +<U002C> \x2C |0 +<U002D> \x2D |0 +<U002E> \x2E |0 +<U002F> \x2F |0 +<U003A> \x3A |0 +<U003B> \x3B |0 +<U003C> \x3C |0 +<U003D> \x3D |0 +<U003E> \x3E |0 +<U003F> \x3F |0 +<U0040> \x40 |0 +<U0041> \x41 |0 +<U0042> \x42 |0 +<U0043> \x43 |0 +<U0044> \x44 |0 +<U0045> \x45 |0 +<U0046> \x46 |0 +<U0047> \x47 |0 +<U0048> \x48 |0 +<U0049> \x49 |0 +<U004A> \x4A |0 +<U004B> \x4B |0 +<U004C> \x4C |0 +<U004D> \x4D |0 +<U004E> \x4E |0 +<U004F> \x4F |0 +<U0050> \x50 |0 +<U0051> \x51 |0 +<U0052> \x52 |0 +<U0053> \x53 |0 +<U0054> \x54 |0 +<U0055> \x55 |0 +<U0056> \x56 |0 +<U0057> \x57 |0 +<U0058> \x58 |0 +<U0059> \x59 |0 +<U005A> \x5A |0 +<U005B> \x5B |0 +<U005C> \x5C |0 +<U005D> \x5D |0 +<U005E> \x5E |0 +<U005F> \x5F |0 +<U0060> \x60 |0 +<U0061> \x61 |0 +<U0062> \x62 |0 +<U0063> \x63 |0 +<U0064> \x64 |0 +<U0065> \x65 |0 +<U0066> \x66 |0 +<U0067> \x67 |0 +<U0068> \x68 |0 +<U0069> \x69 |0 +<U006A> \x6A |0 +<U006B> \x6B |0 +<U006C> \x6C |0 +<U006D> \x6D |0 +<U006E> \x6E |0 +<U006F> \x6F |0 +<U0070> \x70 |0 +<U0071> \x71 |0 +<U0072> \x72 |0 +<U0073> \x73 |0 +<U0074> \x74 |0 +<U0075> \x75 |0 +<U0076> \x76 |0 +<U0077> \x77 |0 +<U0078> \x78 |0 +<U0079> \x79 |0 +<U007A> \x7A |0 +<U007B> \x7B |0 +<U007C> \x7C |0 +<U007D> \x7D |0 +<U007E> \x7E |0 +<U007F> \x7F |0 +<U0080> \x80 |0 +<U0081> \x81 |0 +<U0082> \x82 |0 +<U0083> \x83 |0 +<U0084> \x84 |0 +<U0085> \x85 |0 +<U0086> \x86 |0 +<U0087> \x87 |0 +<U0088> \x88 |0 +<U0089> \x89 |0 +<U008A> \x8A |0 +<U008B> \x8B |0 +<U008C> \x8C |0 +<U008D> \x8D |0 +<U008E> \x8E |0 +<U008F> \x8F |0 +<U0090> \x90 |0 +<U0091> \x91 |0 +<U0092> \x92 |0 +<U0093> \x93 |0 +<U0094> \x94 |0 +<U0095> \x95 |0 +<U0096> \x96 |0 +<U0097> \x97 |0 +<U0098> \x98 |0 +<U0099> \x99 |0 +<U009A> \x9A |0 +<U009B> \x9B |0 +<U009C> \x9C |0 +<U009D> \x9D |0 +<U009E> \x9E |0 +<U009F> \x9F |0 +<U00A0> \xA0 |0 +<U00A4> \xA4 |0 +<U00AD> \xAD |0 +<U060C> \xAC |0 +<U061B> \xBB |0 +<U061F> \xBF |0 +<U0621> \xC1 |0 +<U0622> \xC2 |0 +<U0623> \xC3 |0 +<U0624> \xC4 |0 +<U0625> \xC5 |0 +<U0626> \xC6 |0 +<U0627> \xC7 |0 +<U0628> \xC8 |0 +<U0629> \xC9 |0 +<U062A> \xCA |0 +<U062B> \xCB |0 +<U062C> \xCC |0 +<U062D> \xCD |0 +<U062E> \xCE |0 +<U062F> \xCF |0 +<U0630> \xD0 |0 +<U0631> \xD1 |0 +<U0632> \xD2 |0 +<U0633> \xD3 |0 +<U0634> \xD4 |0 +<U0635> \xD5 |0 +<U0636> \xD6 |0 +<U0637> \xD7 |0 +<U0638> \xD8 |0 +<U0639> \xD9 |0 +<U063A> \xDA |0 +<U0640> \xE0 |0 +<U0641> \xE1 |0 +<U0642> \xE2 |0 +<U0643> \xE3 |0 +<U0644> \xE4 |0 +<U0645> \xE5 |0 +<U0646> \xE6 |0 +<U0647> \xE7 |0 +<U0648> \xE8 |0 +<U0649> \xE9 |0 +<U064A> \xEA |0 +<U064B> \xEB |0 +<U064C> \xEC |0 +<U064D> \xED |0 +<U064E> \xEE |0 +<U064F> \xEF |0 +<U0650> \xF0 |0 +<U0651> \xF1 |0 +<U0652> \xF2 |0 +<U0660> \x30 |0 +<U0661> \x31 |0 +<U0662> \x32 |0 +<U0663> \x33 |0 +<U0664> \x34 |0 +<U0665> \x35 |0 +<U0666> \x36 |0 +<U0667> \x37 |0 +<U0668> \x38 |0 +<U0669> \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 +<code_set_name> "iso8859-7" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x3F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x04 |0 +<U0005> \x05 |0 +<U0006> \x06 |0 +<U0007> \x07 |0 +<U0008> \x08 |0 +<U0009> \x09 |0 +<U000A> \x0A |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x14 |0 +<U0015> \x15 |0 +<U0016> \x16 |0 +<U0017> \x17 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x1A |0 +<U001B> \x1B |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x20 |0 +<U0021> \x21 |0 +<U0022> \x22 |0 +<U0023> \x23 |0 +<U0024> \x24 |0 +<U0025> \x25 |0 +<U0026> \x26 |0 +<U0027> \x27 |0 +<U0028> \x28 |0 +<U0029> \x29 |0 +<U002A> \x2A |0 +<U002B> \x2B |0 +<U002C> \x2C |0 +<U002D> \x2D |0 +<U002E> \x2E |0 +<U002F> \x2F |0 +<U0030> \x30 |0 +<U0031> \x31 |0 +<U0032> \x32 |0 +<U0033> \x33 |0 +<U0034> \x34 |0 +<U0035> \x35 |0 +<U0036> \x36 |0 +<U0037> \x37 |0 +<U0038> \x38 |0 +<U0039> \x39 |0 +<U003A> \x3A |0 +<U003B> \x3B |0 +<U003C> \x3C |0 +<U003D> \x3D |0 +<U003E> \x3E |0 +<U003F> \x3F |0 +<U0040> \x40 |0 +<U0041> \x41 |0 +<U0042> \x42 |0 +<U0043> \x43 |0 +<U0044> \x44 |0 +<U0045> \x45 |0 +<U0046> \x46 |0 +<U0047> \x47 |0 +<U0048> \x48 |0 +<U0049> \x49 |0 +<U004A> \x4A |0 +<U004B> \x4B |0 +<U004C> \x4C |0 +<U004D> \x4D |0 +<U004E> \x4E |0 +<U004F> \x4F |0 +<U0050> \x50 |0 +<U0051> \x51 |0 +<U0052> \x52 |0 +<U0053> \x53 |0 +<U0054> \x54 |0 +<U0055> \x55 |0 +<U0056> \x56 |0 +<U0057> \x57 |0 +<U0058> \x58 |0 +<U0059> \x59 |0 +<U005A> \x5A |0 +<U005B> \x5B |0 +<U005C> \x5C |0 +<U005D> \x5D |0 +<U005E> \x5E |0 +<U005F> \x5F |0 +<U0060> \x60 |0 +<U0061> \x61 |0 +<U0062> \x62 |0 +<U0063> \x63 |0 +<U0064> \x64 |0 +<U0065> \x65 |0 +<U0066> \x66 |0 +<U0067> \x67 |0 +<U0068> \x68 |0 +<U0069> \x69 |0 +<U006A> \x6A |0 +<U006B> \x6B |0 +<U006C> \x6C |0 +<U006D> \x6D |0 +<U006E> \x6E |0 +<U006F> \x6F |0 +<U0070> \x70 |0 +<U0071> \x71 |0 +<U0072> \x72 |0 +<U0073> \x73 |0 +<U0074> \x74 |0 +<U0075> \x75 |0 +<U0076> \x76 |0 +<U0077> \x77 |0 +<U0078> \x78 |0 +<U0079> \x79 |0 +<U007A> \x7A |0 +<U007B> \x7B |0 +<U007C> \x7C |0 +<U007D> \x7D |0 +<U007E> \x7E |0 +<U007F> \x7F |0 +<U0080> \x80 |0 +<U0081> \x81 |0 +<U0082> \x82 |0 +<U0083> \x83 |0 +<U0084> \x84 |0 +<U0085> \x85 |0 +<U0086> \x86 |0 +<U0087> \x87 |0 +<U0088> \x88 |0 +<U0089> \x89 |0 +<U008A> \x8A |0 +<U008B> \x8B |0 +<U008C> \x8C |0 +<U008D> \x8D |0 +<U008E> \x8E |0 +<U008F> \x8F |0 +<U0090> \x90 |0 +<U0091> \x91 |0 +<U0092> \x92 |0 +<U0093> \x93 |0 +<U0094> \x94 |0 +<U0095> \x95 |0 +<U0096> \x96 |0 +<U0097> \x97 |0 +<U0098> \x98 |0 +<U0099> \x99 |0 +<U009A> \x9A |0 +<U009B> \x9B |0 +<U009C> \x9C |0 +<U009D> \x9D |0 +<U009E> \x9E |0 +<U009F> \x9F |0 +<U00A0> \xA0 |0 +<U00A3> \xA3 |0 +<U00A6> \xA6 |0 +<U00A7> \xA7 |0 +<U00A8> \xA8 |0 +<U00A9> \xA9 |0 +<U00AB> \xAB |0 +<U00AC> \xAC |0 +<U00AD> \xAD |0 +<U00B0> \xB0 |0 +<U00B1> \xB1 |0 +<U00B2> \xB2 |0 +<U00B3> \xB3 |0 +<U00B7> \xB7 |0 +<U00BB> \xBB |0 +<U00BD> \xBD |0 +<U02BC> \xA2 |0 +<U02BD> \xA1 |0 +<U0384> \xB4 |0 +<U0385> \xB5 |0 +<U0386> \xB6 |0 +<U0388> \xB8 |0 +<U0389> \xB9 |0 +<U038A> \xBA |0 +<U038C> \xBC |0 +<U038E> \xBE |0 +<U038F> \xBF |0 +<U0390> \xC0 |0 +<U0391> \xC1 |0 +<U0392> \xC2 |0 +<U0393> \xC3 |0 +<U0394> \xC4 |0 +<U0395> \xC5 |0 +<U0396> \xC6 |0 +<U0397> \xC7 |0 +<U0398> \xC8 |0 +<U0399> \xC9 |0 +<U039A> \xCA |0 +<U039B> \xCB |0 +<U039C> \xCC |0 +<U039D> \xCD |0 +<U039E> \xCE |0 +<U039F> \xCF |0 +<U03A0> \xD0 |0 +<U03A1> \xD1 |0 +<U03A3> \xD3 |0 +<U03A4> \xD4 |0 +<U03A5> \xD5 |0 +<U03A6> \xD6 |0 +<U03A7> \xD7 |0 +<U03A8> \xD8 |0 +<U03A9> \xD9 |0 +<U03AA> \xDA |0 +<U03AB> \xDB |0 +<U03AC> \xDC |0 +<U03AD> \xDD |0 +<U03AE> \xDE |0 +<U03AF> \xDF |0 +<U03B0> \xE0 |0 +<U03B1> \xE1 |0 +<U03B2> \xE2 |0 +<U03B3> \xE3 |0 +<U03B4> \xE4 |0 +<U03B5> \xE5 |0 +<U03B6> \xE6 |0 +<U03B7> \xE7 |0 +<U03B8> \xE8 |0 +<U03B9> \xE9 |0 +<U03BA> \xEA |0 +<U03BB> \xEB |0 +<U03BC> \xEC |0 +<U03BD> \xED |0 +<U03BE> \xEE |0 +<U03BF> \xEF |0 +<U03C0> \xF0 |0 +<U03C1> \xF1 |0 +<U03C2> \xF2 |0 +<U03C3> \xF3 |0 +<U03C4> \xF4 |0 +<U03C5> \xF5 |0 +<U03C6> \xF6 |0 +<U03C7> \xF7 |0 +<U03C8> \xF8 |0 +<U03C9> \xF9 |0 +<U03CA> \xFA |0 +<U03CB> \xFB |0 +<U03CC> \xFC |0 +<U03CD> \xFD |0 +<U03CE> \xFE |0 +<U2015> \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 +<code_set_name> "iso8859-8" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x3F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x04 |0 +<U0005> \x05 |0 +<U0006> \x06 |0 +<U0007> \x07 |0 +<U0008> \x08 |0 +<U0009> \x09 |0 +<U000A> \x0A |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x14 |0 +<U0015> \x15 |0 +<U0016> \x16 |0 +<U0017> \x17 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x1A |0 +<U001B> \x1B |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x20 |0 +<U0021> \x21 |0 +<U0022> \x22 |0 +<U0023> \x23 |0 +<U0024> \x24 |0 +<U0025> \x25 |0 +<U0026> \x26 |0 +<U0027> \x27 |0 +<U0028> \x28 |0 +<U0029> \x29 |0 +<U002A> \x2A |0 +<U002B> \x2B |0 +<U002C> \x2C |0 +<U002D> \x2D |0 +<U002E> \x2E |0 +<U002F> \x2F |0 +<U0030> \x30 |0 +<U0031> \x31 |0 +<U0032> \x32 |0 +<U0033> \x33 |0 +<U0034> \x34 |0 +<U0035> \x35 |0 +<U0036> \x36 |0 +<U0037> \x37 |0 +<U0038> \x38 |0 +<U0039> \x39 |0 +<U003A> \x3A |0 +<U003B> \x3B |0 +<U003C> \x3C |0 +<U003D> \x3D |0 +<U003E> \x3E |0 +<U003F> \x3F |0 +<U0040> \x40 |0 +<U0041> \x41 |0 +<U0042> \x42 |0 +<U0043> \x43 |0 +<U0044> \x44 |0 +<U0045> \x45 |0 +<U0046> \x46 |0 +<U0047> \x47 |0 +<U0048> \x48 |0 +<U0049> \x49 |0 +<U004A> \x4A |0 +<U004B> \x4B |0 +<U004C> \x4C |0 +<U004D> \x4D |0 +<U004E> \x4E |0 +<U004F> \x4F |0 +<U0050> \x50 |0 +<U0051> \x51 |0 +<U0052> \x52 |0 +<U0053> \x53 |0 +<U0054> \x54 |0 +<U0055> \x55 |0 +<U0056> \x56 |0 +<U0057> \x57 |0 +<U0058> \x58 |0 +<U0059> \x59 |0 +<U005A> \x5A |0 +<U005B> \x5B |0 +<U005C> \x5C |0 +<U005D> \x5D |0 +<U005E> \x5E |0 +<U005F> \x5F |0 +<U0060> \x60 |0 +<U0061> \x61 |0 +<U0062> \x62 |0 +<U0063> \x63 |0 +<U0064> \x64 |0 +<U0065> \x65 |0 +<U0066> \x66 |0 +<U0067> \x67 |0 +<U0068> \x68 |0 +<U0069> \x69 |0 +<U006A> \x6A |0 +<U006B> \x6B |0 +<U006C> \x6C |0 +<U006D> \x6D |0 +<U006E> \x6E |0 +<U006F> \x6F |0 +<U0070> \x70 |0 +<U0071> \x71 |0 +<U0072> \x72 |0 +<U0073> \x73 |0 +<U0074> \x74 |0 +<U0075> \x75 |0 +<U0076> \x76 |0 +<U0077> \x77 |0 +<U0078> \x78 |0 +<U0079> \x79 |0 +<U007A> \x7A |0 +<U007B> \x7B |0 +<U007C> \x7C |0 +<U007D> \x7D |0 +<U007E> \x7E |0 +<U007F> \x7F |0 +<U0080> \x80 |0 +<U0081> \x81 |0 +<U0082> \x82 |0 +<U0083> \x83 |0 +<U0084> \x84 |0 +<U0085> \x85 |0 +<U0086> \x86 |0 +<U0087> \x87 |0 +<U0088> \x88 |0 +<U0089> \x89 |0 +<U008A> \x8A |0 +<U008B> \x8B |0 +<U008C> \x8C |0 +<U008D> \x8D |0 +<U008E> \x8E |0 +<U008F> \x8F |0 +<U0090> \x90 |0 +<U0091> \x91 |0 +<U0092> \x92 |0 +<U0093> \x93 |0 +<U0094> \x94 |0 +<U0095> \x95 |0 +<U0096> \x96 |0 +<U0097> \x97 |0 +<U0098> \x98 |0 +<U0099> \x99 |0 +<U009A> \x9A |0 +<U009B> \x9B |0 +<U009C> \x9C |0 +<U009D> \x9D |0 +<U009E> \x9E |0 +<U009F> \x9F |0 +<U00A0> \xA0 |0 +<U00A2> \xA2 |0 +<U00A3> \xA3 |0 +<U00A4> \xA4 |0 +<U00A5> \xA5 |0 +<U00A6> \xA6 |0 +<U00A7> \xA7 |0 +<U00A8> \xA8 |0 +<U00A9> \xA9 |0 +<U00AB> \xAB |0 +<U00AC> \xAC |0 +<U00AD> \xAD |0 +<U00AE> \xAE |0 +<U00B0> \xB0 |0 +<U00B1> \xB1 |0 +<U00B2> \xB2 |0 +<U00B3> \xB3 |0 +<U00B4> \xB4 |0 +<U00B5> \xB5 |0 +<U00B6> \xB6 |0 +<U00B7> \xB7 |0 +<U00B8> \xB8 |0 +<U00B9> \xB9 |0 +<U00BB> \xBB |0 +<U00BC> \xBC |0 +<U00BD> \xBD |0 +<U00BE> \xBE |0 +<U00D7> \xAA |0 +<U00F7> \xBA |0 +<U05D0> \xE0 |0 +<U05D1> \xE1 |0 +<U05D2> \xE2 |0 +<U05D3> \xE3 |0 +<U05D4> \xE4 |0 +<U05D5> \xE5 |0 +<U05D6> \xE6 |0 +<U05D7> \xE7 |0 +<U05D8> \xE8 |0 +<U05D9> \xE9 |0 +<U05DA> \xEA |0 +<U05DB> \xEB |0 +<U05DC> \xEC |0 +<U05DD> \xED |0 +<U05DE> \xEE |0 +<U05DF> \xEF |0 +<U05E0> \xF0 |0 +<U05E1> \xF1 |0 +<U05E2> \xF2 |0 +<U05E3> \xF3 |0 +<U05E4> \xF4 |0 +<U05E5> \xF5 |0 +<U05E6> \xF6 |0 +<U05E7> \xF7 |0 +<U05E8> \xF8 |0 +<U05E9> \xF9 |0 +<U05EA> \xFA |0 +<U2017> \xDF |0 +<U203E> \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 +<code_set_name> "iso8859-9" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x3F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x04 |0 +<U0005> \x05 |0 +<U0006> \x06 |0 +<U0007> \x07 |0 +<U0008> \x08 |0 +<U0009> \x09 |0 +<U000A> \x0A |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x14 |0 +<U0015> \x15 |0 +<U0016> \x16 |0 +<U0017> \x17 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x1A |0 +<U001B> \x1B |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x20 |0 +<U0021> \x21 |0 +<U0022> \x22 |0 +<U0023> \x23 |0 +<U0024> \x24 |0 +<U0025> \x25 |0 +<U0026> \x26 |0 +<U0027> \x27 |0 +<U0028> \x28 |0 +<U0029> \x29 |0 +<U002A> \x2A |0 +<U002B> \x2B |0 +<U002C> \x2C |0 +<U002D> \x2D |0 +<U002E> \x2E |0 +<U002F> \x2F |0 +<U0030> \x30 |0 +<U0031> \x31 |0 +<U0032> \x32 |0 +<U0033> \x33 |0 +<U0034> \x34 |0 +<U0035> \x35 |0 +<U0036> \x36 |0 +<U0037> \x37 |0 +<U0038> \x38 |0 +<U0039> \x39 |0 +<U003A> \x3A |0 +<U003B> \x3B |0 +<U003C> \x3C |0 +<U003D> \x3D |0 +<U003E> \x3E |0 +<U003F> \x3F |0 +<U0040> \x40 |0 +<U0041> \x41 |0 +<U0042> \x42 |0 +<U0043> \x43 |0 +<U0044> \x44 |0 +<U0045> \x45 |0 +<U0046> \x46 |0 +<U0047> \x47 |0 +<U0048> \x48 |0 +<U0049> \x49 |0 +<U004A> \x4A |0 +<U004B> \x4B |0 +<U004C> \x4C |0 +<U004D> \x4D |0 +<U004E> \x4E |0 +<U004F> \x4F |0 +<U0050> \x50 |0 +<U0051> \x51 |0 +<U0052> \x52 |0 +<U0053> \x53 |0 +<U0054> \x54 |0 +<U0055> \x55 |0 +<U0056> \x56 |0 +<U0057> \x57 |0 +<U0058> \x58 |0 +<U0059> \x59 |0 +<U005A> \x5A |0 +<U005B> \x5B |0 +<U005C> \x5C |0 +<U005D> \x5D |0 +<U005E> \x5E |0 +<U005F> \x5F |0 +<U0060> \x60 |0 +<U0061> \x61 |0 +<U0062> \x62 |0 +<U0063> \x63 |0 +<U0064> \x64 |0 +<U0065> \x65 |0 +<U0066> \x66 |0 +<U0067> \x67 |0 +<U0068> \x68 |0 +<U0069> \x69 |0 +<U006A> \x6A |0 +<U006B> \x6B |0 +<U006C> \x6C |0 +<U006D> \x6D |0 +<U006E> \x6E |0 +<U006F> \x6F |0 +<U0070> \x70 |0 +<U0071> \x71 |0 +<U0072> \x72 |0 +<U0073> \x73 |0 +<U0074> \x74 |0 +<U0075> \x75 |0 +<U0076> \x76 |0 +<U0077> \x77 |0 +<U0078> \x78 |0 +<U0079> \x79 |0 +<U007A> \x7A |0 +<U007B> \x7B |0 +<U007C> \x7C |0 +<U007D> \x7D |0 +<U007E> \x7E |0 +<U007F> \x7F |0 +<U0080> \x80 |0 +<U0081> \x81 |0 +<U0082> \x82 |0 +<U0083> \x83 |0 +<U0084> \x84 |0 +<U0085> \x85 |0 +<U0086> \x86 |0 +<U0087> \x87 |0 +<U0088> \x88 |0 +<U0089> \x89 |0 +<U008A> \x8A |0 +<U008B> \x8B |0 +<U008C> \x8C |0 +<U008D> \x8D |0 +<U008E> \x8E |0 +<U008F> \x8F |0 +<U0090> \x90 |0 +<U0091> \x91 |0 +<U0092> \x92 |0 +<U0093> \x93 |0 +<U0094> \x94 |0 +<U0095> \x95 |0 +<U0096> \x96 |0 +<U0097> \x97 |0 +<U0098> \x98 |0 +<U0099> \x99 |0 +<U009A> \x9A |0 +<U009B> \x9B |0 +<U009C> \x9C |0 +<U009D> \x9D |0 +<U009E> \x9E |0 +<U009F> \x9F |0 +<U00A0> \xA0 |0 +<U00A1> \xA1 |0 +<U00A2> \xA2 |0 +<U00A3> \xA3 |0 +<U00A4> \xA4 |0 +<U00A5> \xA5 |0 +<U00A6> \xA6 |0 +<U00A7> \xA7 |0 +<U00A8> \xA8 |0 +<U00A9> \xA9 |0 +<U00AA> \xAA |0 +<U00AB> \xAB |0 +<U00AC> \xAC |0 +<U00AD> \xAD |0 +<U00AE> \xAE |0 +<U00AF> \xAF |0 +<U00B0> \xB0 |0 +<U00B1> \xB1 |0 +<U00B2> \xB2 |0 +<U00B3> \xB3 |0 +<U00B4> \xB4 |0 +<U00B5> \xB5 |0 +<U00B6> \xB6 |0 +<U00B7> \xB7 |0 +<U00B8> \xB8 |0 +<U00B9> \xB9 |0 +<U00BA> \xBA |0 +<U00BB> \xBB |0 +<U00BC> \xBC |0 +<U00BD> \xBD |0 +<U00BE> \xBE |0 +<U00BF> \xBF |0 +<U00C0> \xC0 |0 +<U00C1> \xC1 |0 +<U00C2> \xC2 |0 +<U00C3> \xC3 |0 +<U00C4> \xC4 |0 +<U00C5> \xC5 |0 +<U00C6> \xC6 |0 +<U00C7> \xC7 |0 +<U00C8> \xC8 |0 +<U00C9> \xC9 |0 +<U00CA> \xCA |0 +<U00CB> \xCB |0 +<U00CC> \xCC |0 +<U00CD> \xCD |0 +<U00CE> \xCE |0 +<U00CF> \xCF |0 +<U00D1> \xD1 |0 +<U00D2> \xD2 |0 +<U00D3> \xD3 |0 +<U00D4> \xD4 |0 +<U00D5> \xD5 |0 +<U00D6> \xD6 |0 +<U00D7> \xD7 |0 +<U00D8> \xD8 |0 +<U00D9> \xD9 |0 +<U00DA> \xDA |0 +<U00DB> \xDB |0 +<U00DC> \xDC |0 +<U00DF> \xDF |0 +<U00E0> \xE0 |0 +<U00E1> \xE1 |0 +<U00E2> \xE2 |0 +<U00E3> \xE3 |0 +<U00E4> \xE4 |0 +<U00E5> \xE5 |0 +<U00E6> \xE6 |0 +<U00E7> \xE7 |0 +<U00E8> \xE8 |0 +<U00E9> \xE9 |0 +<U00EA> \xEA |0 +<U00EB> \xEB |0 +<U00EC> \xEC |0 +<U00ED> \xED |0 +<U00EE> \xEE |0 +<U00EF> \xEF |0 +<U00F1> \xF1 |0 +<U00F2> \xF2 |0 +<U00F3> \xF3 |0 +<U00F4> \xF4 |0 +<U00F5> \xF5 |0 +<U00F6> \xF6 |0 +<U00F7> \xF7 |0 +<U00F8> \xF8 |0 +<U00F9> \xF9 |0 +<U00FA> \xFA |0 +<U00FB> \xFB |0 +<U00FC> \xFC |0 +<U00FF> \xFF |0 +<U011E> \xD0 |0 +<U011F> \xF0 |0 +<U0130> \xDD |0 +<U0131> \xFD |0 +<U015E> \xDE |0 +<U015F> \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 +<code_set_name> "posix-bc" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x6F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x37 |0 +<U0005> \x2D |0 +<U0006> \x2E |0 +<U0007> \x2F |0 +<U0008> \x16 |0 +<U0009> \x05 |0 +<U000A> \x15 |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x3C |0 +<U0015> \x3D |0 +<U0016> \x32 |0 +<U0017> \x26 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x3F |0 +<U001B> \x27 |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x40 |0 +<U0021> \x5A |0 +<U0022> \x7F |0 +<U0023> \x7B |0 +<U0024> \x5B |0 +<U0025> \x6C |0 +<U0026> \x50 |0 +<U0027> \x7D |0 +<U0028> \x4D |0 +<U0029> \x5D |0 +<U002A> \x5C |0 +<U002B> \x4E |0 +<U002C> \x6B |0 +<U002D> \x60 |0 +<U002E> \x4B |0 +<U002F> \x61 |0 +<U0030> \xF0 |0 +<U0031> \xF1 |0 +<U0032> \xF2 |0 +<U0033> \xF3 |0 +<U0034> \xF4 |0 +<U0035> \xF5 |0 +<U0036> \xF6 |0 +<U0037> \xF7 |0 +<U0038> \xF8 |0 +<U0039> \xF9 |0 +<U003A> \x7A |0 +<U003B> \x5E |0 +<U003C> \x4C |0 +<U003D> \x7E |0 +<U003E> \x6E |0 +<U003F> \x6F |0 +<U0040> \x7C |0 +<U0041> \xC1 |0 +<U0042> \xC2 |0 +<U0043> \xC3 |0 +<U0044> \xC4 |0 +<U0045> \xC5 |0 +<U0046> \xC6 |0 +<U0047> \xC7 |0 +<U0048> \xC8 |0 +<U0049> \xC9 |0 +<U004A> \xD1 |0 +<U004B> \xD2 |0 +<U004C> \xD3 |0 +<U004D> \xD4 |0 +<U004E> \xD5 |0 +<U004F> \xD6 |0 +<U0050> \xD7 |0 +<U0051> \xD8 |0 +<U0052> \xD9 |0 +<U0053> \xE2 |0 +<U0054> \xE3 |0 +<U0055> \xE4 |0 +<U0056> \xE5 |0 +<U0057> \xE6 |0 +<U0058> \xE7 |0 +<U0059> \xE8 |0 +<U005A> \xE9 |0 +<U005B> \xBB |0 +<U005C> \xBC |0 +<U005D> \xBD |0 +<U005E> \x6A |0 +<U005F> \x6D |0 +<U0060> \x4A |0 +<U0061> \x81 |0 +<U0062> \x82 |0 +<U0063> \x83 |0 +<U0064> \x84 |0 +<U0065> \x85 |0 +<U0066> \x86 |0 +<U0067> \x87 |0 +<U0068> \x88 |0 +<U0069> \x89 |0 +<U006A> \x91 |0 +<U006B> \x92 |0 +<U006C> \x93 |0 +<U006D> \x94 |0 +<U006E> \x95 |0 +<U006F> \x96 |0 +<U0070> \x97 |0 +<U0071> \x98 |0 +<U0072> \x99 |0 +<U0073> \xA2 |0 +<U0074> \xA3 |0 +<U0075> \xA4 |0 +<U0076> \xA5 |0 +<U0077> \xA6 |0 +<U0078> \xA7 |0 +<U0079> \xA8 |0 +<U007A> \xA9 |0 +<U007B> \xFB |0 +<U007C> \x4F |0 +<U007D> \xFD |0 +<U007E> \xFF |0 +<U007F> \x07 |0 +<U0080> \x20 |0 +<U0081> \x21 |0 +<U0082> \x22 |0 +<U0083> \x23 |0 +<U0084> \x24 |0 +<U0085> \x25 |0 +<U0086> \x06 |0 +<U0087> \x17 |0 +<U0088> \x28 |0 +<U0089> \x29 |0 +<U008A> \x2A |0 +<U008B> \x2B |0 +<U008C> \x2C |0 +<U008D> \x09 |0 +<U008E> \x0A |0 +<U008F> \x1B |0 +<U0090> \x30 |0 +<U0091> \x31 |0 +<U0092> \x1A |0 +<U0093> \x33 |0 +<U0094> \x34 |0 +<U0095> \x35 |0 +<U0096> \x36 |0 +<U0097> \x08 |0 +<U0098> \x38 |0 +<U0099> \x39 |0 +<U009A> \x3A |0 +<U009B> \x3B |0 +<U009C> \x04 |0 +<U009D> \x14 |0 +<U009E> \x3E |0 +<U009F> \x5F |0 +<U00A0> \x41 |0 +<U00A1> \xAA |0 +<U00A2> \xB0 |0 +<U00A3> \xB1 |0 +<U00A4> \x9F |0 +<U00A5> \xB2 |0 +<U00A6> \xD0 |0 +<U00A7> \xB5 |0 +<U00A8> \x79 |0 +<U00A9> \xB4 |0 +<U00AA> \x9A |0 +<U00AB> \x8A |0 +<U00AC> \xBA |0 +<U00AD> \xCA |0 +<U00AE> \xAF |0 +<U00AF> \xA1 |0 +<U00B0> \x90 |0 +<U00B1> \x8F |0 +<U00B2> \xEA |0 +<U00B3> \xFA |0 +<U00B4> \xBE |0 +<U00B5> \xA0 |0 +<U00B6> \xB6 |0 +<U00B7> \xB3 |0 +<U00B8> \x9D |0 +<U00B9> \xDA |0 +<U00BA> \x9B |0 +<U00BB> \x8B |0 +<U00BC> \xB7 |0 +<U00BD> \xB8 |0 +<U00BE> \xB9 |0 +<U00BF> \xAB |0 +<U00C0> \x64 |0 +<U00C1> \x65 |0 +<U00C2> \x62 |0 +<U00C3> \x66 |0 +<U00C4> \x63 |0 +<U00C5> \x67 |0 +<U00C6> \x9E |0 +<U00C7> \x68 |0 +<U00C8> \x74 |0 +<U00C9> \x71 |0 +<U00CA> \x72 |0 +<U00CB> \x73 |0 +<U00CC> \x78 |0 +<U00CD> \x75 |0 +<U00CE> \x76 |0 +<U00CF> \x77 |0 +<U00D0> \xAC |0 +<U00D1> \x69 |0 +<U00D2> \xED |0 +<U00D3> \xEE |0 +<U00D4> \xEB |0 +<U00D5> \xEF |0 +<U00D6> \xEC |0 +<U00D7> \xBF |0 +<U00D8> \x80 |0 +<U00D9> \xE0 |0 +<U00DA> \xFE |0 +<U00DB> \xDD |0 +<U00DC> \xFC |0 +<U00DD> \xAD |0 +<U00DE> \xAE |0 +<U00DF> \x59 |0 +<U00E0> \x44 |0 +<U00E1> \x45 |0 +<U00E2> \x42 |0 +<U00E3> \x46 |0 +<U00E4> \x43 |0 +<U00E5> \x47 |0 +<U00E6> \x9C |0 +<U00E7> \x48 |0 +<U00E8> \x54 |0 +<U00E9> \x51 |0 +<U00EA> \x52 |0 +<U00EB> \x53 |0 +<U00EC> \x58 |0 +<U00ED> \x55 |0 +<U00EE> \x56 |0 +<U00EF> \x57 |0 +<U00F0> \x8C |0 +<U00F1> \x49 |0 +<U00F2> \xCD |0 +<U00F3> \xCE |0 +<U00F4> \xCB |0 +<U00F5> \xCF |0 +<U00F6> \xCC |0 +<U00F7> \xE1 |0 +<U00F8> \x70 |0 +<U00F9> \xC0 |0 +<U00FA> \xDE |0 +<U00FB> \xDB |0 +<U00FC> \xDC |0 +<U00FD> \x8D |0 +<U00FE> \x8E |0 +<U00FF> \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 +<code_set_name> "symbol" +<mb_cur_min> 1 +<mb_cur_max> 1 +<subchar> \x3F +# +CHARMAP +<U0000> \x00 |0 +<U0001> \x01 |0 +<U0002> \x02 |0 +<U0003> \x03 |0 +<U0004> \x04 |0 +<U0005> \x05 |0 +<U0006> \x06 |0 +<U0007> \x07 |0 +<U0008> \x08 |0 +<U0009> \x09 |0 +<U000A> \x0A |0 +<U000B> \x0B |0 +<U000C> \x0C |0 +<U000D> \x0D |0 +<U000E> \x0E |0 +<U000F> \x0F |0 +<U0010> \x10 |0 +<U0011> \x11 |0 +<U0012> \x12 |0 +<U0013> \x13 |0 +<U0014> \x14 |0 +<U0015> \x15 |0 +<U0016> \x16 |0 +<U0017> \x17 |0 +<U0018> \x18 |0 +<U0019> \x19 |0 +<U001A> \x1A |0 +<U001B> \x1B |0 +<U001C> \x1C |0 +<U001D> \x1D |0 +<U001E> \x1E |0 +<U001F> \x1F |0 +<U0020> \x20 |0 +<U0021> \x21 |0 +<U0023> \x23 |0 +<U0025> \x25 |0 +<U0026> \x26 |0 +<U0028> \x28 |0 +<U0029> \x29 |0 +<U002B> \x2B |0 +<U002C> \x2C |0 +<U002E> \x2E |0 +<U002F> \x2F |0 +<U0030> \x30 |0 +<U0031> \x31 |0 +<U0032> \x32 |0 +<U0033> \x33 |0 +<U0034> \x34 |0 +<U0035> \x35 |0 +<U0036> \x36 |0 +<U0037> \x37 |0 +<U0038> \x38 |0 +<U0039> \x39 |0 +<U003A> \x3A |0 +<U003B> \x3B |0 +<U003C> \x3C |0 +<U003D> \x3D |0 +<U003E> \x3E |0 +<U003F> \x3F |0 +<U005B> \x5B |0 +<U005D> \x5D |0 +<U005F> \x5F |0 +<U007B> \x7B |0 +<U007C> \x7C |0 +<U007D> \x7D |0 +<U007F> \x7F |0 +<U0080> \x80 |0 +<U0081> \x81 |0 +<U0082> \x82 |0 +<U0083> \x83 |0 +<U0084> \x84 |0 +<U0085> \x85 |0 +<U0086> \x86 |0 +<U0087> \x87 |0 +<U0088> \x88 |0 +<U0089> \x89 |0 +<U008A> \x8A |0 +<U008B> \x8B |0 +<U008C> \x8C |0 +<U008D> \x8D |0 +<U008E> \x8E |0 +<U008F> \x8F |0 +<U0090> \x90 |0 +<U0091> \x91 |0 +<U0092> \x92 |0 +<U0093> \x93 |0 +<U0094> \x94 |0 +<U0095> \x95 |0 +<U0096> \x96 |0 +<U0097> \x97 |0 +<U0098> \x98 |0 +<U0099> \x99 |0 +<U009A> \x9A |0 +<U009B> \x9B |0 +<U009C> \x9C |0 +<U009D> \x9D |0 +<U009E> \x9E |0 +<U009F> \x9F |0 +<U00A9> \xD3 |0 +<U00AC> \xD8 |0 +<U00AE> \xD2 |0 +<U00B0> \xB0 |0 +<U00B1> \xB1 |0 +<U00D7> \xB4 |0 +<U00F7> \xB8 |0 +<U0192> \xA6 |0 +<U0391> \x41 |0 +<U0392> \x42 |0 +<U0393> \x47 |0 +<U0394> \x44 |0 +<U0395> \x45 |0 +<U0396> \x5A |0 +<U0397> \x48 |0 +<U0398> \x51 |0 +<U0399> \x49 |0 +<U039A> \x4B |0 +<U039B> \x4C |0 +<U039C> \x4D |0 +<U039D> \x4E |0 +<U039E> \x58 |0 +<U039F> \x4F |0 +<U03A0> \x50 |0 +<U03A1> \x52 |0 +<U03A3> \x53 |0 +<U03A4> \x54 |0 +<U03A5> \x55 |0 +<U03A6> \x46 |0 +<U03A7> \x43 |0 +<U03A8> \x59 |0 +<U03A9> \x57 |0 +<U03B1> \x61 |0 +<U03B2> \x62 |0 +<U03B3> \x67 |0 +<U03B4> \x64 |0 +<U03B5> \x65 |0 +<U03B6> \x7A |0 +<U03B7> \x68 |0 +<U03B8> \x71 |0 +<U03B9> \x69 |0 +<U03BA> \x6B |0 +<U03BB> \x6C |0 +<U03BC> \x6D |0 +<U03BD> \x6E |0 +<U03BE> \x78 |0 +<U03BF> \x6F |0 +<U03C0> \x70 |0 +<U03C1> \x72 |0 +<U03C2> \x56 |0 +<U03C3> \x73 |0 +<U03C4> \x74 |0 +<U03C5> \x75 |0 +<U03C6> \x66 |0 +<U03C7> \x63 |0 +<U03C8> \x79 |0 +<U03C9> \x77 |0 +<U03D1> \x4A |0 +<U03D2> \xA1 |0 +<U03D5> \x6A |0 +<U03D6> \x76 |0 +<U2022> \xB7 |0 +<U2026> \xBC |0 +<U2032> \xA2 |0 +<U2033> \xB2 |0 +<U2044> \xA4 |0 +<U2111> \xC1 |0 +<U2118> \xC3 |0 +<U211C> \xC2 |0 +<U2122> \xD4 |0 +<U2135> \xC0 |0 +<U2190> \xAC |0 +<U2191> \xAD |0 +<U2192> \xAE |0 +<U2193> \xAF |0 +<U2194> \xAB |0 +<U21B5> \xBF |0 +<U21D0> \xDC |0 +<U21D1> \xDD |0 +<U21D2> \xDE |0 +<U21D3> \xDF |0 +<U21D4> \xDB |0 +<U2200> \x22 |0 +<U2202> \xB6 |0 +<U2203> \x24 |0 +<U2205> \xC6 |0 +<U2207> \xD1 |0 +<U2208> \xCE |0 +<U2209> \xCF |0 +<U220D> \x27 |0 +<U220F> \xD5 |0 +<U2211> \xE5 |0 +<U2212> \x2D |0 +<U2217> \x2A |0 +<U221A> \xD6 |0 +<U221D> \xB5 |0 +<U221E> \xA5 |0 +<U2220> \xD0 |0 +<U2227> \xD9 |0 +<U2228> \xDA |0 +<U2229> \xC7 |0 +<U222A> \xC8 |0 +<U222B> \xF2 |0 +<U2234> \x5C |0 +<U223C> \x7E |0 +<U2245> \x40 |0 +<U2248> \xBB |0 +<U2260> \xB9 |0 +<U2261> \xBA |0 +<U2264> \xA3 |0 +<U2265> \xB3 |0 +<U2282> \xCC |0 +<U2283> \xC9 |0 +<U2284> \xCB |0 +<U2286> \xCD |0 +<U2287> \xCA |0 +<U2295> \xC5 |0 +<U2297> \xC4 |0 +<U22A5> \x5E |0 +<U22C4> \xE0 |0 +<U22C5> \xD7 |0 +<U2320> \xF3 |0 +<U2321> \xF5 |0 +<U2329> \xE1 |0 +<U232A> \xF1 |0 +<U2660> \xAA |0 +<U2663> \xA7 |0 +<U2665> \xA9 |0 +<U2666> \xA8 |0 +<UF8E5> \x60 |0 +<UF8E6> \xBD |0 +<UF8E7> \xBE |0 +<UF8E8> \xE2 |0 +<UF8E9> \xE3 |0 +<UF8EA> \xE4 |0 +<UF8EB> \xE6 |0 +<UF8EC> \xE7 |0 +<UF8ED> \xE8 |0 +<UF8EE> \xE9 |0 +<UF8EF> \xEA |0 +<UF8F0> \xEB |0 +<UF8F1> \xEC |0 +<UF8F2> \xED |0 +<UF8F3> \xEE |0 +<UF8F4> \xEF |0 +<UF8F5> \xF4 |0 +<UF8F6> \xF6 |0 +<UF8F7> \xF7 |0 +<UF8F8> \xF8 |0 +<UF8F9> \xF9 |0 +<UF8FA> \xFA |0 +<UF8FB> \xFB |0 +<UF8FC> \xFC |0 +<UF8FD> \xFD |0 +<UF8FE> \xFE |0 +<UF8FF> \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 = <FLIST>); + 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) = /^<U([0-9a-f]+)>\s+(?:\\x([0-9a-f]+))+\s*(\|[0-3]|)\s*$/i; - my $fb = pop(@byte); + my ($u,@byte); + my $fb = ''; + $u = $1 if (/^<U([0-9a-f]+)>\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 "<code_set_name> \"$name\"\n"; + if (defined $min_el) + { + print $fh "<mb_cur_min> $min_el\n"; + } + if (defined $max_el) + { + print $fh "<mb_cur_max> $max_el\n"; + } + if (defined $rep) + { + print $fh "<subchar> "; + 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<IO::Socket::INET> 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 |