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 )