#******************************************************************************
#***
#*** This file is part of XTeXShell; see file xtexsh for details
#*** Version 0.91 (21.2.94)
#***
#******************************************************************************
#******************************************************************************
#*** Load Setup and Shortcuts file ********************************************
#******************************************************************************
set setup0fname "$xtexsh_path/setup.orig"
set setup1fname "$xtexsh_path/setup"
set setup2fname "$home_dir/.xtexsh.setup"
set setup3fname "./.xtexsh.setup"
set short0fname "$xtexsh_path/shortcuts.orig"
set short1fname "$xtexsh_path/shortcuts"
set short2fname "$home_dir/.xtexsh.shortcuts"
set short3fname "./.xtexsh.shortcuts"
proc loadsetup {} {
#*** Load setup file.
uplevel 1 {
if {[file exists "$setup1fname"]} {
source "$setup1fname"
} else {
source "$setup0fname"
}
if {[file exists "$setup2fname"]} {source "$setup2fname"}
if {[file exists "$setup3fname"]} {source "$setup3fname"}
}
}
proc writesetup {mode} {
#*** Update setup file mode=0: local, mode=1: global
#*** local: If setup-file doesn't exist, copy global, setup, setup.orig
#*** global: If setup-file doesn't exist, copy setup, setup.orig
global wrtsmode boldl_font
global goto_command
set wrtsmode $mode
DisplayMsg "Writing Configuration file.\n Press any key to continue..." $boldl_font
uplevel 1 {
if {$wrtsmode==0} {
set setupfname "$setup3fname"
} else {
set setupfname "$setup2fname"
}
#*** Does setup-file exist? If not, copy setup or setup.orig
#*** Create a copy of the setup file and open files for read and write
exec cp "$setupfname" "$setupfname.temp"
set infile [open $setupfname.temp "r"]
set outfile [open $setupfname "w"]
#*** Read old setup file line by line and copy to new setup file
#*** if line does not contain any words of setuplist
while {![eof $infile]} {
gets $infile inline
set flag 1
if {[string first "set" $inline] >= 0} {
foreach key $setuplist {
if {[string first " $key " $inline] >= 0} {
set flag 0
}
}
}
if {$flag} {
puts $outfile $inline
}
}
#*** Now write values of variables in setuplist to setup-file
while {![lempty $setuplist]} {
set var [lvarpop setuplist]
eval set val \"\$$var\"
puts $outfile [format "set\t%-10s\t\"%s\"" $var $val]
}
#*** Close files
close $infile
close $outfile
unlink -nocomplain "$setupfname.temp"
}