From a4c42bfb2337d37da89d789cb8cc226367994e32 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 21 May 2012 00:15:27 +0000 Subject: perl 5.14.2 from siep git-svn-id: svn://tug.org/texlive/trunk@26525 c570f23f-e606-0410-a88d-b1316a301751 --- Master/tlpkg/tlperl/lib/Encode.pm | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) (limited to 'Master/tlpkg/tlperl/lib/Encode.pm') 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); # -- cgit v1.2.3