aboutsummaryrefslogtreecommitdiff
path: root/mail/p5-MIME-Tools/files/patch-Parser-BinHex
diff options
context:
space:
mode:
Diffstat (limited to 'mail/p5-MIME-Tools/files/patch-Parser-BinHex')
-rw-r--r--mail/p5-MIME-Tools/files/patch-Parser-BinHex260
1 files changed, 0 insertions, 260 deletions
diff --git a/mail/p5-MIME-Tools/files/patch-Parser-BinHex b/mail/p5-MIME-Tools/files/patch-Parser-BinHex
deleted file mode 100644
index cdeec197cc10..000000000000
--- a/mail/p5-MIME-Tools/files/patch-Parser-BinHex
+++ /dev/null
@@ -1,260 +0,0 @@
---- /dev/null Sun Aug 1 22:44:02 2004
-+++ lib/MIME/Decoder/BinHex.pm Sun Aug 1 22:43:12 2004
-@@ -0,0 +1,182 @@
-+package MIME::Decoder::BinHex;
-+
-+
-+=head1 NAME
-+
-+MIME::Decoder::BinHex - decode a "binhex" stream
-+
-+
-+=head1 SYNOPSIS
-+
-+A generic decoder object; see L<MIME::Decoder> for usage.
-+
-+Also supports a preamble() method to recover text before
-+the binhexed portion of the stream.
-+
-+
-+=head1 DESCRIPTION
-+
-+A MIME::Decoder subclass for a nonstandard encoding whereby
-+data are binhex-encoded. Common non-standard MIME encodings for this:
-+
-+ x-uu
-+ x-uuencode
-+
-+
-+=head1 AUTHOR
-+
-+Julian Field (F<mailscanner@ecs.soton.ac.uk>).
-+
-+All rights reserved. This program is free software; you can redistribute
-+it and/or modify it under the same terms as Perl itself.
-+
-+=head1 VERSION
-+
-+$Revision: 1.1 $ $Date: 2004/08/01 20:46:17 $
-+
-+=cut
-+
-+
-+require 5.002;
-+use vars qw(@ISA $VERSION);
-+use MIME::Decoder;
-+use MIME::Tools qw(whine);
-+use Convert::BinHex;
-+
-+@ISA = qw(MIME::Decoder);
-+
-+# The package version, both in 1.23 style *and* usable by MakeMaker:
-+$VERSION = substr q$Revision: 1.1 $, 10;
-+
-+
-+#------------------------------
-+#
-+# decode_it IN, OUT
-+#
-+sub decode_it {
-+ my ($self, $in, $out) = @_;
-+ my ($mode, $file);
-+ my (@preamble, @data);
-+ local $_;
-+ my $H2B = Convert::BinHex->hex2bin;
-+ #my $H2B = Convert::BinHex->open($in);
-+ my $line;
-+
-+ $self->{MDU_Preamble} = \@preamble;
-+ $self->{MDU_Mode} = '600';
-+ $self->{MDU_File} = undef;
-+
-+ ### Find beginning...
-+ $MailScanner::BinHex::Inline = 1;
-+ if ($MailScanner::BinHex::Inline) {
-+ while (defined($_ = $in->getline)) {
-+ #print STDERR "Line is \"$_\"\n";
-+ if (/^\(This file must be converted/) {
-+ $_ = $in->getline;
-+ last if /^:/;
-+ }
-+ push @preamble, $_;
-+ }
-+ die("binhex decoding: fell off end of file\n") if !defined($_);
-+ } else {
-+ while (defined($_ = $in->getline)) {
-+ # Found the header? So start decoding it
-+ last if /^:/;
-+ push @preamble, $_;
-+ }
-+ ## hit eof!
-+ die("binhex decoding: no This file must be... found\n") if !defined($_);
-+ }
-+
-+ ### Decode:
-+ # Don't rely on the comment always being there
-+ #$self->whine(":H2B is $H2B\n");
-+ #$self->whine("Header is " . $H2B->read_header . "\n");
-+ #@data = $H2B->read_data;
-+ #$out->print(@data);
-+ #print STDERR "End of binhex stream\n";
-+ #return 1;
-+ #if (/^:/) {
-+ my $data;
-+ $data = $H2B->next($_); # or whine("Next error is $@ $!\n");
-+ #print STDERR "Data line 1 is length \"" . length($data) . "\" \"$data\"\n";
-+ my $len = unpack("C", $data);
-+ while ($len > length($data)+21 && defined($line = $in->getline)) {
-+ $data .= $H2B->next($line);
-+ }
-+ $data = substr($data, 22+$len);
-+ $out->print($data);
-+ #}
-+ while (defined($_ = $in->getline)) {
-+ $line = $_;
-+ $data = $H2B->next($line);
-+ #print STDERR "Data is length " . length($data) . " \"$data\"\n";
-+ $out->print($data);
-+ #chomp $line;
-+ #print STDERR "Line is length " . length($line) . " \"$line\"\n";
-+ #print STDERR "Line matches end\n" if $line =~ /:$/;
-+ last if $line =~ /:$/;
-+ }
-+ #print STDERR "Broken out of loop\n";
-+ #print STDERR "file incomplete, no end found\n" if !defined($_); # eof
-+ 1;
-+}
-+
-+#------------------------------
-+#
-+# encode_it IN, OUT
-+#
-+sub encode_it {
-+ my ($self, $in, $out) = @_;
-+ my $line;
-+ my $buf = '';
-+
-+ my $fname = (($self->head &&
-+ $self->head->mime_attr('content-disposition.filename')) ||
-+ '');
-+ my $B2H = Convert::BinHex->bin2hex;
-+ $out->print("(This file must be converted with BinHex 4.0)\n");
-+ #while (defined($line = <$in>)) {
-+ while ($in->read($buf, 1000)) {
-+ $out->print($B2H->next($buf));
-+ }
-+ $out->print($B2H->done);
-+ 1;
-+}
-+
-+#------------------------------
-+#
-+# last_preamble
-+#
-+# Return the last preamble as ref to array of lines.
-+# Gets reset by decode_it().
-+#
-+sub last_preamble {
-+ my $self = shift;
-+ return $self->{MDU_Preamble} || [];
-+}
-+
-+#------------------------------
-+#
-+# last_mode
-+#
-+# Return the last mode.
-+# Gets reset to undef by decode_it().
-+#
-+sub last_mode {
-+ shift->{MDU_Mode};
-+}
-+
-+#------------------------------
-+#
-+# last_filename
-+#
-+# Return the last filename.
-+# Gets reset by decode_it().
-+#
-+sub last_filename {
-+ shift->{MDU_File} || undef; #[];
-+}
-+
-+#------------------------------
-+1;
---- lib/MIME/Decoder.pm.orig Sun Aug 1 22:44:50 2004
-+++ lib/MIME/Decoder.pm Sun Aug 1 22:45:10 2004
-@@ -111,6 +111,7 @@
- 'quoted-printable' => 'MIME::Decoder::QuotedPrint',
-
- ### Non-standard...
-+ 'binhex' => 'MIME::Decoder::BinHex',
- 'x-uu' => 'MIME::Decoder::UU',
- 'x-uuencode' => 'MIME::Decoder::UU',
-
---- lib/MIME/Parser.pm Tue Aug 31 18:54:05 2004
-+++ lib/MIME/Parser.pm Tue Aug 31 18:53:33 2004
-@@ -799,10 +802,11 @@
- $self->debug("extract uuencode? ", $self->extract_uuencode);
- $self->debug("encoding? ", $encoding);
- $self->debug("effective type? ", $ent->effective_type);
-+
- if ($self->extract_uuencode and
- ($encoding =~ /^(7bit|8bit|binary)\Z/) and
-- ($ent->effective_type =~ m{^text/plain\Z})) {
--
-+ ($ent->effective_type =~
-+ m{^(?:text/plain|application/mac-binhex40|application/mac-binhex)\Z})) {
- ### Hunt for it:
- my $uu_ent = eval { $self->hunt_for_uuencode($ENCODED, $ent) };
- if ($uu_ent) { ### snark
-@@ -842,14 +844,21 @@
- #
- sub hunt_for_uuencode {
- my ($self, $ENCODED, $ent) = @_;
-- my $good;
-+ my ($good, $jkfis);
- local $_;
- $self->debug("sniffing around for UUENCODE");
-
- ### Heuristic:
- $ENCODED->seek(0,0);
- while (defined($_ = $ENCODED->getline)) {
-- last if ($good = /^begin [0-7]{3}/);
-+ if ($good = /^begin [0-7]{3}/) {
-+ $jkfis = 'uu';
-+ last;
-+ }
-+ if ($good = /^\(This file must be converted with/i) {
-+ $jkfis = 'binhex';
-+ last;
-+ }
- }
- $good or do { $self->debug("no one made the cut"); return 0 };
-
-@@ -860,7 +869,9 @@
-
- ### Made the first cut; on to the real stuff:
- $ENCODED->seek(0,0);
-- my $decoder = MIME::Decoder->new('x-uuencode');
-+ my $decoder = MIME::Decoder->new(($jkfis eq 'uu')?'x-uuencode'
-+ :'binhex');
-+ $self->whine("Found a $jkfis attachment");
- my $pre;
- while (1) {
- my @bin_data;
-@@ -910,12 +921,11 @@
-
- ### Did we get anything?
- @parts or return undef;
--
- ### Set the parts and a nice preamble:
- $top_ent->parts(\@parts);
- $top_ent->preamble
- (["The following is a multipart MIME message which was extracted\n",
-- "from a uuencoded message.\n"]);
-+ "from a $jkfis-encoded message.\n"]);
- $top_ent;
- }
-