<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;"># Copyright (C) 2002-2004, 2012 Elizabeth Mattijsen.  All rights reserved.
# Copyright (C) 2015 Steve Hay.  All rights reserved.

# This module is free software; you can redistribute it and/or modify it under
# the same terms as Perl itself, i.e. under the terms of either the GNU General
# Public License or the Artistic License, as specified in the F&lt;LICENCE&gt; file.

package PerlIO::via::QuotedPrint;

use 5.008001;

# be as strict as possible
use strict;

our $VERSION = '0.09';

# 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, '&lt;:via(QuotedPrint)', 'file.qp') or
        die "Can't open file.qp for reading: $!\n";

    open(my $out, '&gt;:via(QuotedPrint)', 'file.qp') or
        die "Can't open file.qp for writing: $!\n";

=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 EXPORTS

I&lt;None&gt;.

=head1 KNOWN BUGS

I&lt;None&gt;.

=head1 FEEDBACK

Patches, bug reports, suggestions or any other feedback is welcome.

Patches can be sent as GitHub pull requests at
L&lt;https://github.com/steve-m-hay/PerlIO-via-QuotedPrint/pulls&gt;.

Bug reports and suggestions can be made on the CPAN Request Tracker at
L&lt;https://rt.cpan.org/Public/Bug/Report.html?Queue=PerlIO-via-QuotedPrint&gt;.

Currently active requests on the CPAN Request Tracker can be viewed at
L&lt;https://rt.cpan.org/Public/Dist/Display.html?Status=Active;Queue=PerlIO-via-QuotedPrint&gt;.

Please test this distribution.  See CPAN Testers Reports at
L&lt;https://www.cpantesters.org/&gt; for details of how to get involved.

Previous test results on CPAN Testers Reports can be viewed at
L&lt;https://www.cpantesters.org/distro/P/PerlIO-via-QuotedPrint.html&gt;.

Please rate this distribution on CPAN Ratings at
L&lt;https://cpanratings.perl.org/rate/?distribution=PerlIO-via-QuotedPrint&gt;.

=head1 SEE ALSO

L&lt;PerlIO::via&gt;,
L&lt;MIME::QuotedPrint&gt;.

=head1 ACKNOWLEDGEMENTS

Based on an example in the standard library module MIME::QuotedPrint in Perl
(version 5.8.0).

=head1 AVAILABILITY

The latest version of this module is available from CPAN (see
L&lt;perlmodlib/"CPAN"&gt; for details) at

L&lt;https://metacpan.org/release/PerlIO-via-QuotedPrint&gt; or

L&lt;https://www.cpan.org/authors/id/S/SH/SHAY/&gt; or

L&lt;https://www.cpan.org/modules/by-module/PerlIO/&gt;.

The latest source code is available from GitHub at
L&lt;https://github.com/steve-m-hay/PerlIO-via-QuotedPrint&gt;.

=head1 INSTALLATION

See the F&lt;INSTALL&gt; file.

=head1 AUTHOR

Elizabeth Mattijsen E&lt;lt&gt;L&lt;liz@dijkmat.nl|mailto:liz@dijkmat.nl&gt;E&lt;gt&gt;.

Steve Hay E&lt;lt&gt;L&lt;shay@cpan.org|mailto:shay@cpan.org&gt;E&lt;gt&gt; is now maintaining
PerlIO::via::QuotedPrint as of version 0.08.

=head1 COPYRIGHT

Copyright (C) 2002-2004, 2012 Elizabeth Mattijsen.  All rights reserved.

Copyright (C) 2015, 2020 Steve Hay.  All rights reserved.

=head1 LICENCE

This module is free software; you can redistribute it and/or modify it under
the same terms as Perl itself, i.e. under the terms of either the GNU General
Public License or the Artistic License, as specified in the F&lt;LICENCE&gt; file.

=head1 VERSION

Version 0.09

=head1 DATE

08 Dec 2020

=head1 HISTORY

See the F&lt;Changes&gt; file.

=cut
</pre></body></html>