The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Razor2::Preproc::deQP;
#use MIME::QuotedPrint;


sub new { 
    return bless {}, shift;
}


sub isit {
    my ($self, $text) = @_;
    my ($hdr, $body) = split /\n\r*\n/, $$text, 2;
    return $hdr =~ /^Content-Transfer-Encoding: quoted-printable/ism;
}


sub doit {

    my ($self, $text) = @_;

    my ($hdr, $body) = split /\n\r*\n/, $$text, 2;

    # comment this out to be compatible with libpreproc.cc:qp_decode()
    #$body =~ s/[ \t]+?(\r?\n)/$1/g;  # rule #3 (trailing space must be deleted)
    $body =~ s/=\r?\n//g;            # rule #5 (soft line breaks)
    $body =~ s/=([\da-fA-F]{2})/pack("C", hex($1))/ge;

    $$text = "$hdr\n\n$body";

    return $text;
}


sub extract_qp {
    my ($self, $text) = @_;

    if ($$text =~ /Content-Transfer-Encoding: quoted-printable(.*)$/sim) {
        my $rhs = $1;
        $rhs =~ /\r?\n\r?\n(.*)$/s;
        return $1;
    }
    return undef;
}

1;