blob: 3acf45c3fd8936e985caf00a37af7bd430076c0c (
plain)
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
|
package PerlIO::via::QuotedPrint;
# Make sure we do things by the book
# Set the version info
use strict;
$PerlIO::via::QuotedPrint::VERSION = 0.01;
# Make sure the encoding/decoding stuff is available
use MIME::QuotedPrint (); # no need to pollute this namespace
#-----------------------------------------------------------------------
# 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 [],$_[0] } #PUSHED
#-----------------------------------------------------------------------
# IN: 1 instantiated object (ignored)
# 2 handle to read from
# OUT: 1 decoded string
sub FILL {
# Read the line from the handle
# Decode if there is something decode and return result or signal eof
my $line = readline( $_[1] );
(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 whatever needs to be encoded and write to handle: indicate result
(print {$_[2]} MIME::QuotedPrint::encode_qp($_[1])) ? length($_[1]) : -1;
} #WRITE
# Satisfy -require-
1;
__END__
=head1 NAME
PerlIO::via::QuotedPrint - PerlIO layer for quoted-printable strings
=head1 SYNOPSIS
use PerlIO::via::QuotedPrint;
open( my $in,'<Via(PerlIO::via::QuotedPrint)','file.qp' )
or die "Can't open file.qp for reading: $!\n";
open( my $out,'>Via(PerlIO::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 SEE ALSO
L<PerlIO::via>, L<MIME::QuotedPrint>, L<PerlIO::via::Base64>, L<PerlIO::via::MD5>,
L<PerlIO::via::StripHTML>.
=head1 COPYRIGHT
Copyright (c) 2002 Elizabeth Mattijsen. Based on example that was initially
added to MIME::QuotedPrint.pm for the 5.8.0 distribution of Perl.
This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
=cut
|