summaryrefslogtreecommitdiff
path: root/systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO/via/QuotedPrint.pm
diff options
context:
space:
mode:
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.pm102
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