#!/bin/sh
# -*- perl -*-
# This code allows us to start perl from our path or an environment variable
# rather than hardcoding a path into the #! line.  It works from sh or csh.
(exit $?0) && eval 'exec ${QPERLQ-perl} -x $0 ${1+"$@"}'
if (! $?QPERLQ) setenv QPERLQ perl
exec $QPERLQ -x $0 $argv:q

#!/usr/local/bin/perl -w
#
# $Id: split_mailbox,v 1.1 1998/06/09 20:14:41 ejb Exp $
# $Source: /home/ejb/scripts/RCS/split_mailbox,v $
# $Author: ejb $
#

require 5.002;
use strict;

my $whoami = ($0 =~ m,([^/\\]*)$,) ? $1 : $0;
#my $dirname = ($0 =~ m,(.*)[/\\][^/\\]+$,) ? $1 : ".";

&usage() if (@ARGV != 1);
my $file = $ARGV[0];

my $t = $/;
$/ = "\n\nFrom ";
open(F, "<$file") || die "$whoami: failed to open $file: $!\n";
my @messages = (<F>);
close(F);
$/ = $t;
my $i;
for ($i = 0; $i < scalar(@messages) - 1; ++$i)
{
    if ($messages[$i] =~ s/\nFrom $//s)
    {
	$messages[$i+1] =~ s/^/From /;
    }
}
$messages[scalar(@messages) - 1] =~ s/\n\n$/\n/s;

for ($i = 0; $i < scalar(@messages); $i++)
{
    $messages[$i] =~ m/^From ([^\s]+) /;
    printf("saving message %d from %s\n", $i, $1);
    open(F, ">$i") or die "$whoami: failed to open $i: $!\n";
    print F $messages[$i], "\n";
    close(F);
}

sub usage
{
    print STDERR "Usage: $whoami mail_file\n";
    exit 2;
}
