#!/usr/local/bin/perl -w
# msgview - simple viewer for news and mail messages
#
# written by Rob Funk <funk+@osu.edu>
# 15-Jul-1998

$line="";
# read headers
while (defined($_=<>) and (!/^$/)) {
    if (/^\s/) {
	# continuing previous line
	$line.=$_;
    } else {
	push(@headers,$line);
    }
    $line=$_;
}
# Order: date from reply-to subject to cc
#
# All: from: subject to cc reply-to date x-mailing-list newsgroups
#         x-original-newsgroups posted-and-mailed
push(@vheaders,
     grep(/^Date:/i,@headers),
     grep(/^From:/i,@headers),
     grep(/^Reply-To:/i,@headers),
     grep(/^Subject:/i,@headers),
     grep(/^To:/i,@headers),
     grep(/^Cc:/i,@headers),
     grep(/^X-Mailing-List:/i,@headers),
     grep(/^Newsgroups:/i,@headers),
     grep(/^X-Original-Newsgroups:/i,@headers),
     grep(/^Posted-And-Mailed:/i,@headers),
     );

# use pager?
if (-t STDOUT) {
    open(PAGER,"|".($ENV{PAGER}||"/bin/more"));
    select PAGER;
    $pager=1;
}

# now output
print @vheaders;
print "\n";
while (<>) {
    print;
}
if (defined($pager)) {
    select STDOUT;
    close(PAGER);
}

exit(0);
