#!/usr/local/bin/wish8.4 -f
#
# TK interface to the MH Mail utility
# Brent Welch <welch@acm.org>
# Original version by <Ed Oskiewicz (eo@ansa.co.uk)>
#
# Copyright (c) 1993-8 Brent Welch
# Copyright (c) 1993-5 Xerox Corporation.
# Copyright (c) 1996-8 Sun Microsystems
# Use and copying of this software and preparation of derivative works based
# upon this software are permitted. Any distribution of this software or
# derivative works must comply with all applicable United States export
# control laws. This software is made available AS IS, and Xerox Corporation
# and Sun Microsystems
# make no warranty about the software, its performance or its conformity to
# any specification.

# The following lines are patched by exmh.install
#CONFIGURATION

# Saved state from exmh.install
# Mon Mar 14 10:59:18 MST 2005
set wish /usr/local/bin/wish8.4
set exmh(version) {version 2.7.2 01/07/2005}
set exmh(name) exmh
set exmh(maintainer) welch@acm.org
set mh_path /usr/local/bin
set exmh(slocal) /usr/local/libexec/slocal
set mime(dir) /usr/local/bin
set mailcap_default /etc/mailcap
set mimetypes_default /usr/local/share/exmh/mime.types
set exmh(expect) /usr/local/bin/expect
set exmh(expectk) /usr/local/bin/expectk
set faces(dir) /usr/local/faces/faces
set faces(set,user) {local users usenix misc}
set faces(set,unknown) {domains unknown}
set faces(set,news) news
set faces(defaultDomain) {}
set faces(suffix) {xpm gif xbm}
set pgp(pgp,path) /usr/local/bin
set pgp(pgp5,path) /usr/local/bin
set pgp(gpg,path) /usr/local/bin
set pgp(pgp6,path) /usr/local/bin
set glimpse(path) /usr/local/bin
set sound(cmd) /usr/bin/aucat
set exmh(library) /usr/local/share/exmh
set install(dir,bin) /usr/local/bin
set install(dir,man) /usr/local/man/man1
set install(dir,lib) /usr/local/share/exmh
#END CONFIGURATION

package require Tk
if {$tcl_version < 8.0} {
    error "Tcl 8.0 (final release) or higher required."
    exit 1
}
# Do this so popups related to user initialization
# appear all alone.
wm withdraw .

proc auto_path_update { path } {
    # Add library directories to the auto_path,
    # ensuring that later paths have precedence
    # and that function override works
    global auto_path tk_version
    if [file exists $path/tclIndex] {
	if {[info tclversion] != 7.0} {
	    set auto_path "$path $auto_path"
	} else {
	    lappend auto_path $path
	}
	# Used to have an "auto_reset" here, but that has the bad
	# side effect of causing Tk's entry.tcl and text.tcl files
	# to reload and redefine top-level Entry and Text bindings
	# that we change in seditBind.tcl.
	# catch {auto_reset} ;# Needed for function override
    }
}

auto_path_update $exmh(library)

if ![file exists $exmh(library)/tclIndex] {
    if [file exists ./lib/tclIndex] {
	puts stderr "Warning, using local script library, ./lib"
	set exmh(library) ./lib
    }
}

# Support per-user directory containing .tcl files.
# This was originally the ~/.tk/exmh directory,
# but then files migrated into ~/.exmh so
# a lib subdirectory there is cleaner

foreach exmh(userLibrary) [list [glob ~]/.exmh/lib [glob ~]/.tk/exmh] {
    if {[file exists [file join $exmh(userLibrary) tclIndex]]} {
	auto_path_update $exmh(userLibrary)	;# library for new modules
	break
    }
}
# Fall through with ~/.tk/exmh as the default because there
# are other places in the code that assume exmh(userLibrary) is defined

# Set up the environment
if {[catch {
  Env_Init
} err]} {
  puts stderr "Error running Env_Init: $err"
  puts stderr "This usually means exmh isn't installed right"
  puts stderr "Check the main exmh script for the CONFIGURATION section"
  puts stderr "and make sure exmh(library) is a valid absolute pathname"
  exit 1
}

# For WindowMaker, http://www.inf.ufrgs.br/~kojima/wmaker/
wm group . .

# For session managers
wm command . "$argv0 $argv"
catch {wm client . "[exec hostname]"}
catch { . configure -cursor left_ptr }

# modified by k.furukawa, jul.1994.  for kanji
# this piece of code enables japanese kanji display if you use
# tk-jp extension and JIS code.  if you use EUC for MH processing 
# codes, you may replace JIS with EUC and you may need more works.

if {[info commands kanji] == "kanji"} {
    kanji internalCode JIS
    option add *Text.Font a14
}

# Ensure the user is in a writable directory for @ links
if {[string match /* $exmh(library)] &&
    [string match /* $argv0]} {
    # Don't go anywhere when testing
    cd
}

# The rest of the application is defined by routines in the exmh library
# The after 1 trick is to ensure we get the built-in error handler.

after 1 {Exmh}
