summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/URI/_idna.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/URI/_idna.pm')
-rw-r--r--Master/tlpkg/tlperl/lib/URI/_idna.pm89
1 files changed, 0 insertions, 89 deletions
diff --git a/Master/tlpkg/tlperl/lib/URI/_idna.pm b/Master/tlpkg/tlperl/lib/URI/_idna.pm
deleted file mode 100644
index be0cccf16b3..00000000000
--- a/Master/tlpkg/tlperl/lib/URI/_idna.pm
+++ /dev/null
@@ -1,89 +0,0 @@
-package URI::_idna;
-
-# This module implements the RFCs 3490 (IDNA) and 3491 (Nameprep)
-# based on Python-2.6.4/Lib/encodings/idna.py
-
-use strict;
-use warnings;
-
-use URI::_punycode qw(encode_punycode decode_punycode);
-use Carp qw(croak);
-
-BEGIN {
- *URI::_idna::_ENV_::JOIN_LEAKS_UTF8_FLAGS = $] < 5.008_003
- ? sub () { 1 }
- : sub () { 0 }
- ;
-}
-
-my $ASCII = qr/^[\x00-\x7F]*\z/;
-
-sub encode {
- my $idomain = shift;
- my @labels = split(/\./, $idomain, -1);
- my @last_empty;
- push(@last_empty, pop @labels) if @labels > 1 && $labels[-1] eq "";
- for (@labels) {
- $_ = ToASCII($_);
- }
-
- return eval 'join(".", @labels, @last_empty)' if URI::_idna::_ENV_::JOIN_LEAKS_UTF8_FLAGS;
- return join(".", @labels, @last_empty);
-}
-
-sub decode {
- my $domain = shift;
- return join(".", map ToUnicode($_), split(/\./, $domain, -1))
-}
-
-sub nameprep { # XXX real implementation missing
- my $label = shift;
- $label = lc($label);
- return $label;
-}
-
-sub check_size {
- my $label = shift;
- croak "Label empty" if $label eq "";
- croak "Label too long" if length($label) > 63;
- return $label;
-}
-
-sub ToASCII {
- my $label = shift;
- return check_size($label) if $label =~ $ASCII;
-
- # Step 2: nameprep
- $label = nameprep($label);
- # Step 3: UseSTD3ASCIIRules is false
- # Step 4: try ASCII again
- return check_size($label) if $label =~ $ASCII;
-
- # Step 5: Check ACE prefix
- if ($label =~ /^xn--/) {
- croak "Label starts with ACE prefix";
- }
-
- # Step 6: Encode with PUNYCODE
- $label = encode_punycode($label);
-
- # Step 7: Prepend ACE prefix
- $label = "xn--$label";
-
- # Step 8: Check size
- return check_size($label);
-}
-
-sub ToUnicode {
- my $label = shift;
- $label = nameprep($label) unless $label =~ $ASCII;
- return $label unless $label =~ /^xn--/;
- my $result = decode_punycode(substr($label, 4));
- my $label2 = ToASCII($result);
- if (lc($label) ne $label2) {
- croak "IDNA does not round-trip: '\L$label\E' vs '$label2'";
- }
- return $result;
-}
-
-1;