<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">package Pod::Simple::TranscodeDumb;
use strict;
our $VERSION = '3.45';
# This module basically pretends it knows how to transcode, except
#  only for null-transcodings!  We use this when Encode isn't
#  available.

our %Supported = (
  'ascii'       =&gt; 1,
  'ascii-ctrl'  =&gt; 1,
  'iso-8859-1'  =&gt; 1,
  'cp1252'      =&gt; 1,
  'null'        =&gt; 1,
  'latin1'      =&gt; 1,
  'latin-1'     =&gt; 1,
  %Supported,
);

sub is_dumb  {1}
sub is_smart {0}

sub all_encodings {
  return sort keys %Supported;
}

sub encoding_is_available {
  return exists $Supported{lc $_[1]};
}

sub encmodver {
  return __PACKAGE__ . " v" .($VERSION || '?');
}

sub make_transcoder {
    my ($e) = $_[1];
    die "WHAT ENCODING!?!?" unless $e;
    # No-op for all but CP1252.
    return sub {;} if $e !~ /^cp-?1252$/i;

    # Replace CP1252 nerbles with their ASCII equivalents.
    return sub {
        # Copied from Encode::ZapCP1252.
        my %ascii_for = (
            # http://en.wikipedia.org/wiki/Windows-1252
            "\x80" =&gt; 'e',    # EURO SIGN
            "\x82" =&gt; ',',    # SINGLE LOW-9 QUOTATION MARK
            "\x83" =&gt; 'f',    # LATIN SMALL LETTER F WITH HOOK
            "\x84" =&gt; ',,',   # DOUBLE LOW-9 QUOTATION MARK
            "\x85" =&gt; '...',  # HORIZONTAL ELLIPSIS
            "\x86" =&gt; '+',    # DAGGER
            "\x87" =&gt; '++',   # DOUBLE DAGGER
            "\x88" =&gt; '^',    # MODIFIER LETTER CIRCUMFLEX ACCENT
            "\x89" =&gt; '%',    # PER MILLE SIGN
            "\x8a" =&gt; 'S',    # LATIN CAPITAL LETTER S WITH CARON
            "\x8b" =&gt; '&lt;',    # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
            "\x8c" =&gt; 'OE',   # LATIN CAPITAL LIGATURE OE
            "\x8e" =&gt; 'Z',    # LATIN CAPITAL LETTER Z WITH CARON
            "\x91" =&gt; "'",    # LEFT SINGLE QUOTATION MARK
            "\x92" =&gt; "'",    # RIGHT SINGLE QUOTATION MARK
            "\x93" =&gt; '"',    # LEFT DOUBLE QUOTATION MARK
            "\x94" =&gt; '"',    # RIGHT DOUBLE QUOTATION MARK
            "\x95" =&gt; '*',    # BULLET
            "\x96" =&gt; '-',    # EN DASH
            "\x97" =&gt; '--',   # EM DASH
            "\x98" =&gt; '~',    # SMALL TILDE
            "\x99" =&gt; '(tm)', # TRADE MARK SIGN
            "\x9a" =&gt; 's',    # LATIN SMALL LETTER S WITH CARON
            "\x9b" =&gt; '&gt;',    # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
            "\x9c" =&gt; 'oe',   # LATIN SMALL LIGATURE OE
            "\x9e" =&gt; 'z',    # LATIN SMALL LETTER Z WITH CARON
            "\x9f" =&gt; 'Y',    # LATIN CAPITAL LETTER Y WITH DIAERESIS
        );

        s{([\x80-\x9f])}{$ascii_for{$1} || $1}emxsg for @_;
  };
}


1;


use warnings;
</pre></body></html>