#!/afs/athena/contrib/perl/p

require 'getopt.pl';
$jdir = $ENV{'HOME'}.'/journal/' unless ($jdir = $ENV{'JOURNALDIR'});

while(@ARGV){
    $_ = shift(@ARGV);
    if(/^-(.+)/){
	$f = $1;
	eval "\$opt_$f = 1";
    }
    else{
	push(@NARG, $_);
    }
}
@ARGV=@NARG;
$search = join(' ', @ARGV);


if(!$search){
    print("Usage:\n");
    print("jsearch [-u] [-l] search-string\n");
    exit(0);
}

$/ = '---___---';
open(JT, "$jdir"."journal.text");
$i=0;
while(<JT>){
    $x = $i-1;
    if($opt_n && grep(/^$x$/, @ARGV[0..$#ARGV])){
	$us = "[4m".$search."[0m";
	s/$search/$us/ig if $opt_u;
	if($opt_l){
	    split("\n");
	    $listing .= "#$x: ".$_[1].', '.$_[2]."\n";
	}
	else{
	push(@entry, "Journal Entry #$x:\n".$_);
	}
    }
    elsif(($_ =~ /$search/i)&&!$opt_n){
	$us = "[4m".$search."[0m";
	s/$search/$us/ig if $opt_u;
	$x = $i-1;
	if($opt_l){
	    split("\n");
	    $listing .= "#$x: ".$_[1].', '.$_[2]."\n";
	}
	else{
	push(@entry, "Journal Entry #$x:\n".$_);
	}
    }
    $i++;
}
$/="\n";
if(@entry){
    for $e (@entry){
	print(`clear`); 
	print($e);
        print("\nPress return to continue...");
        $bluh = (<STDIN>);
	exit(0) if $bluh eq "q\n";

    }

}
else{
    if($opt_l){
	print($listing);
    }
    else{
	print("No matching journal entries were found.\n");
    }
}


