diff options
Diffstat (limited to 'systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO/via/QuotedPrint.pm')
-rw-r--r-- | systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO/via/QuotedPrint.pm | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO/via/QuotedPrint.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO/via/QuotedPrint.pm new file mode 100644 index 0000000000..8135e17640 --- /dev/null +++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO/via/QuotedPrint.pm @@ -0,0 +1,102 @@ +package PerlIO::via::QuotedPrint; + +$VERSION= '0.08'; + +# be as strict as possible +use strict; + +# modules that we need +use MIME::QuotedPrint (); # no need to pollute this namespace + +# satisfy -require- +1; + +#------------------------------------------------------------------------------- +# +# Standard Perl features +# +#------------------------------------------------------------------------------- +# IN: 1 class to bless with +# 2 mode string (ignored) +# 3 file handle of PerlIO layer below (ignored) +# OUT: 1 blessed object + +sub PUSHED { bless \*PUSHED,$_[0] } #PUSHED + +#------------------------------------------------------------------------------- +# IN: 1 instantiated object (ignored) +# 2 handle to read from +# OUT: 1 decoded string + +sub FILL { + + # decode and return + my $line= readline( $_[1] ); + return ( defined $line ) + ? MIME::QuotedPrint::decode_qp($line) + : undef; +} #FILL + +#------------------------------------------------------------------------------- +# IN: 1 instantiated object (ignored) +# 2 buffer to be written +# 3 handle to write to +# OUT: 1 number of bytes written + +sub WRITE { + + # encode and write to handle: indicate result + return ( print { $_[2] } MIME::QuotedPrint::encode_qp( $_[1] ) ) + ? length( $_[1] ) + : -1; +} #WRITE + +#------------------------------------------------------------------------------- + +__END__ + +=head1 NAME + +PerlIO::via::QuotedPrint - PerlIO layer for quoted-printable strings + +=head1 SYNOPSIS + + use PerlIO::via::QuotedPrint; + + open( my $in, '<:via(QuotedPrint)', 'file.qp' ) + or die "Can't open file.qp for reading: $!\n"; + + open( my $out, '>:via(QuotedPrint)', 'file.qp' ) + or die "Can't open file.qp for writing: $!\n"; + +=head1 VERSION + +This documentation describes version 0.08. + +=head1 DESCRIPTION + +This module implements a PerlIO layer that works on files encoded in the +quoted-printable format. It will decode from quoted-printable while reading +from a handle, and it will encode as quoted-printable while writing to a handle. + +=head1 REQUIRED MODULES + + MIME::QuotedPrint (any) + +=head1 SEE ALSO + +L<PerlIO::via>, L<MIME::QuotedPrint>, L<PerlIO::via::Base64>, +L<PerlIO::via::MD5>, L<PerlIO::via::StripHTML>, L<PerlIO::via::Rotate>. + +=head1 ACKNOWLEDGEMENTS + +Based on example that was initially added to MIME::QuotedPrint.pm for the +5.8.0 distribution of Perl. + +=head1 COPYRIGHT + +Copyright (c) 2002, 2003, 2004, 2012 Elizabeth Mattijsen. All rights reserved. +This library is free software; you can redistribute it and/or modify it under +the same terms as Perl itself. + +=cut |