Spaces:
Sleeping
Sleeping
File size: 4,668 Bytes
1d777c4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 |
# 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<LICENCE> 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, '<: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 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<None>.
=head1 KNOWN BUGS
I<None>.
=head1 FEEDBACK
Patches, bug reports, suggestions or any other feedback is welcome.
Patches can be sent as GitHub pull requests at
L<https://github.com/steve-m-hay/PerlIO-via-QuotedPrint/pulls>.
Bug reports and suggestions can be made on the CPAN Request Tracker at
L<https://rt.cpan.org/Public/Bug/Report.html?Queue=PerlIO-via-QuotedPrint>.
Currently active requests on the CPAN Request Tracker can be viewed at
L<https://rt.cpan.org/Public/Dist/Display.html?Status=Active;Queue=PerlIO-via-QuotedPrint>.
Please test this distribution. See CPAN Testers Reports at
L<https://www.cpantesters.org/> for details of how to get involved.
Previous test results on CPAN Testers Reports can be viewed at
L<https://www.cpantesters.org/distro/P/PerlIO-via-QuotedPrint.html>.
Please rate this distribution on CPAN Ratings at
L<https://cpanratings.perl.org/rate/?distribution=PerlIO-via-QuotedPrint>.
=head1 SEE ALSO
L<PerlIO::via>,
L<MIME::QuotedPrint>.
=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<perlmodlib/"CPAN"> for details) at
L<https://metacpan.org/release/PerlIO-via-QuotedPrint> or
L<https://www.cpan.org/authors/id/S/SH/SHAY/> or
L<https://www.cpan.org/modules/by-module/PerlIO/>.
The latest source code is available from GitHub at
L<https://github.com/steve-m-hay/PerlIO-via-QuotedPrint>.
=head1 INSTALLATION
See the F<INSTALL> file.
=head1 AUTHOR
Elizabeth Mattijsen E<lt>L<[email protected]|mailto:[email protected]>E<gt>.
Steve Hay E<lt>L<[email protected]|mailto:[email protected]>E<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<LICENCE> file.
=head1 VERSION
Version 0.09
=head1 DATE
08 Dec 2020
=head1 HISTORY
See the F<Changes> file.
=cut
|