MHonArc
view release on metacpan or search on metacpan
lib/mhopt.pl view on Meta::CPAN
$Index2MsgId{$MsgId{$_}} = $_;
}
## Set $ExpireDateTime from $ExpireDate
if ($ExpireDate) {
my @array = ();
if (@array = &parse_date($ExpireDate)) {
$ExpireDateTime = &get_time_from_date(@array[1 .. $#array]);
} else {
warn qq|Warning: Unable to parse EXPIREDATE, "$ExpireDate"\n|;
}
}
## Get highest message number
if ($ADD) {
$LastMsgNum = &get_last_msg_num();
} else {
$LastMsgNum = -1;
}
## Delete bogus empty entries in hashes due to bug in earlier
## versions to avoid any future problems.
delete($IndexNum{''});
delete($Subject{''});
delete($From{''});
delete($MsgId{''});
delete($FollowOld{''});
delete($ContentType{''});
delete($Refs{''});
# update DOCURL if default old value
if ($DOCURL eq 'http://www.oac.uci.edu/indiv/ehood/mhonarc.html') {
$DOCURL = 'http://www.mhonarc.org/';
}
## Check if printing process time
$TIME = $opt{'time'};
1;
}
##---------------------------------------------------------------------------
## Version routine
##
sub version {
select(STDOUT);
print $VINFO;
}
##---------------------------------------------------------------------------
## Usage routine
##
sub usage {
require 'mhusage.pl';
&mhusage();
}
##---------------------------------------------------------------------------
## Routine to update 1.x data structures to 2.0.
##
sub update_data_1_to_2 {
local (%EntName2Char) = ('lt', '<', 'gt', '>', 'amp', '&',);
#--------------------------------------
sub entname_to_char {
my ($name) = shift;
my ($ret) = $EntName2Char{$name};
if (!$ret) {
$ret = "&$name;";
}
$ret;
}
#--------------------------------------
my ($index);
foreach $index (keys %From) {
$From{$index} =~ s/\&([\w\-.]+);/&entname_to_char($1)/ge;
}
foreach $index (keys %Subject) {
$Subject{$index} =~ s/\&([\w\-.]+);/&entname_to_char($1)/ge;
}
delete $IndexNum{''};
$TLITXT = '<li>' . $TLITXT unless ($TLITXT) && ($TLITXT =~ /<li>/i);
$THEAD .= "<ul>\n" unless ($THEAD) && ($THEAD =~ m%<ul>\s*$%i);
$TFOOT = "</ul>\n" unless ($TFOOT) && ($TFOOT =~ m%^\s*</ul>%i);
}
##---------------------------------------------------------------------------
## Update 2.1, or earlier, data.
##
sub update_data_2_1_to_later {
no warnings qw(deprecated);
# we can preserve filter arguments
if (%main::MIMEFiltersArgs) {
warn qq/ preserving MIMEARGS...\n/;
%readmail::MIMEFiltersArgs = %main::MIMEFiltersArgs;
$IsDefault{'MIMEARGS'} = 0;
}
}
##---------------------------------------------------------------------------
## Update 2.4, or earlier, data.
##
sub update_data_2_4_to_later {
# convert Perl 4 style data to Perl 5 style
my ($index, $value);
while (($index, $value) = each(%Refs)) {
next if ref($value);
$Refs{$index} = [split(/$X/o, $value)];
}
while (($index, $value) = each(%FollowOld)) {
next if ref($value);
$FollowOld{$index} = [split(/$bs/o, $value)];
}
while (($index, $value) = each(%Derived)) {
next if ref($value);
$Derived{$index} = [split(/$X/o, $value)];
}
}
##---------------------------------------------------------------------------
## Initialize readmail.pl variables
##
sub mhinit_readmail_vars {
$readmail::DEBUG = $DEBUG;
## Default decoders
%readmail::MIMEDecoders = (
'7bit' => 'as-is',
'8bit' => 'as-is',
'binary' => 'as-is',
'base64' => 'base64::b64decode',
'quoted-printable' => 'quoted_printable::qprdecode',
'x-uuencode' => 'base64::uudecode',
'x-uue' => 'base64::uudecode',
'uuencode' => 'base64::uudecode',
);
%readmail::MIMEDecodersSrc = (
'base64' => 'base64.pl',
'quoted-printable' => 'qprint.pl',
'x-uuencode' => 'base64.pl',
'x-uue' => 'base64.pl',
'uuencode' => 'base64.pl',
);
$IsDefault{'MIMEDECODERS'} = 1;
## Default filters
%readmail::MIMEFilters = (
# Content-type Filter
#-----------------------------------------------------------------
"application/ms-tnef", "m2h_null::filter",
"application/octet-stream", "m2h_external::filter",
"application/x-patch", "m2h_text_plain::filter",
"message/delivery-status", "m2h_text_plain::filter",
"message/external-body", "m2h_msg_extbody::filter",
"message/partial", "m2h_text_plain::filter",
"text/enriched", "m2h_text_enriched::filter",
"text/html", "m2h_text_html::filter",
"text/plain", "m2h_text_plain::filter",
"text/richtext", "m2h_text_enriched::filter",
"text/tab-separated-values", "m2h_text_tsv::filter",
"text/x-html", "m2h_text_html::filter",
"application/*", "m2h_external::filter",
( run in 0.823 second using v1.01-cache-2.11-cpan-5a3173703d6 )