summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/Encode.pm
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-05-21 00:15:27 +0000
committerKarl Berry <karl@freefriends.org>2012-05-21 00:15:27 +0000
commita4c42bfb2337d37da89d789cb8cc226367994e32 (patch)
treec3eabdef5d565a4e515d2be0d9d4d0540bde0250 /Master/tlpkg/tlperl/lib/Encode.pm
parent8274475057f024d35332ac47c2e2f23ea156e6ed (diff)
perl 5.14.2 from siep
git-svn-id: svn://tug.org/texlive/trunk@26525 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlperl/lib/Encode.pm')
-rw-r--r--Master/tlpkg/tlperl/lib/Encode.pm36
1 files changed, 25 insertions, 11 deletions
diff --git a/Master/tlpkg/tlperl/lib/Encode.pm b/Master/tlpkg/tlperl/lib/Encode.pm
index f1dff7820c2..a8f06341d15 100644
--- a/Master/tlpkg/tlperl/lib/Encode.pm
+++ b/Master/tlpkg/tlperl/lib/Encode.pm
@@ -1,10 +1,10 @@
#
-# $Id: Encode.pm,v 2.39 2009/11/26 09:23:48 dankogai Exp $
+# $Id: Encode.pm,v 2.42 2010/12/31 22:48:10 dankogai Exp $
#
package Encode;
use strict;
use warnings;
-our $VERSION = sprintf "%d.%02d", q$Revision: 2.39 $ =~ /(\d+)/g;
+our $VERSION = sprintf "%d.%02d_01", q$Revision: 2.42 $ =~ /(\d+)/g;
sub DEBUG () { 0 }
use XSLoader ();
XSLoader::load( __PACKAGE__, $VERSION );
@@ -203,18 +203,32 @@ sub encode_utf8($) {
return $str;
}
+my $utf8enc;
+
sub decode_utf8($;$) {
- my ( $str, $check ) = @_;
- return $str if is_utf8($str);
- if ($check) {
- return decode( "utf8", $str, $check );
- }
- else {
- return decode( "utf8", $str );
- return $str;
- }
+ my ( $octets, $check ) = @_;
+ return $octets if is_utf8($octets);
+ return undef unless defined $octets;
+ $octets .= '' if ref $octets;
+ $check ||= 0;
+ $utf8enc ||= find_encoding('utf8');
+ my $string = $utf8enc->decode( $octets, $check );
+ $_[0] = $octets if $check and !ref $check and !( $check & LEAVE_SRC() );
+ return $string;
}
+# sub decode_utf8($;$) {
+# my ( $str, $check ) = @_;
+# return $str if is_utf8($str);
+# if ($check) {
+# return decode( "utf8", $str, $check );
+# }
+# else {
+# return decode( "utf8", $str );
+# return $str;
+# }
+# }
+
predefine_encodings(1);
#