#!wish -f # # TK interface to the MH Mail utility # Brent Welch # Original version by # # 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 #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}