#!/afs/ece/usr/tcl/bin/wish -f
# The next line is executed by most shells, but not Tcl \
wish $0 $*

# Mail waiting program...waits for new mail, then brings it up when it
# arrives.

# First start bread...get some mail shown.

set cwd [pwd]
if {([string match /* [info script]])} {
  set bethmail_dir [file dirname [info script]]
} else {set bethmail_dir [file dirname $cwd/[info script]]}
cd $bethmail_dir

# Mail file

# Source bread, to show last message.
source $bethmail_dir/bread

set new_mail "/usr/spool/mail/$env(USER)"
set bread_text ".syme1.t"

elsbeth_goto_file $bread_text $new_mail
set bith_text ".syme2.t"

th_Text_paint_region $bith_text 1.0 end 0
"[th_frame $bread_text].quit" configure -command "exit"

set f [th_frame $bith_text]
destroy "$f.quit"
pack [menubutton $f.move -text "Put in folder..." -menu $f.move.m] \
	-side left -expand yes -fill both
make_move_menu $bith_text "$f.move.m" read_new_mail

set TH(File,Auto,Type,$bith_text) 0
set TH(Cycle,Time,$bith_text) 10000
set TH(Cycle,Command,$bith_text) {th_update_mail $bith_text}

$bith_text configure -height 10 -state disabled

proc th_update_mail {w} {
  $w configure -state normal
  if {![th_file_auto $w]} {return 0}
  th_Text_paint_region $w 1.0 end 0
  if {[$w compare [lindex [$w tag ranges HEADER] end] >= "end -1l"]} {
    set i [lindex [$w tag ranges HEADER] [expr [llength [$w tag ranges HEADER] - 3]]]
  } else {set i [lindex [$w tag ranges HEADER] end]}
  th_Text_goto $w $i
  $w configure -state disabled
  return 1
}

proc read_new_mail {w new_folder} {
  global TH
  set TH(Cycle,Active,$w) 0
  exec inc "+$new_folder"
  $w configure -state normal
  set TH(File,New,$w) $TH(File,$w)
  th_load_file $w
  $w configure -state disabled
  set TH(Cycle,Active,$w) 1

  wm iconify [winfo toplevel $w]

# Update the file browsing variables
  global TH
  set TH(File,Browse,Listing) [exec $TH(File,Browse,Shortcommand) $TH(File,Browse,Dir)]
  set TH(File,Browse,Length) [llength $TH(File,Browse,Listing)]
  global bread_text
  check_buttons $bread_text
}

