########################################################################
#
# "main_ini" : Tvi, 初期実行スクリプト
#
# Copyright (c) 1998,1999  Motomu Nakashima
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option) 
# any later version.
#
# This program is distributed in the hope that it will be useful, 
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
# GNU General Public License for more details.
#
########################################################################

###########################
# ファイルの初期読み込み   
###########################

set current_dir [ pwd ] ; # カレントディレクトリを調べる

# 引数が１個以上の場合，すぐに exit
if { [llength $argv ] > 1 } { 
     return -code error "エラー：引数が多すぎるか間違っています"

# 引数が１個の場合
} elseif { [llength $argv ] == 1 } { 
     set filename [lindex $argv 0] ; # 引数をとりあえずfilenameにする
     set dirlist [split $current_dir / ]  ; # カレントディレクトリをリスト化する

     # フルパスで指定してある場合以外は相対パスとみなし，解析する
     if {[string index $filename 0] != "/"} {
        set filelist  [split $filename / ] ; # filename をリスト化
        set fullpathlist [concat $dirlist $filelist]  
                                             # dirlist と filelist をつなげる

        # まず "." を消去
        while { [lsearch -exact $fullpathlist "." ] != -1 } {
           set fullpathlist [lreplace $fullpathlist \
                               [lsearch -exact $fullpathlist "." ] \
                               [lsearch -exact $fullpathlist "." ] ] }

        # ついで ".." を消去(一つ前の要素と一緒に消せば良い)
        while { [lsearch -exact $fullpathlist ".." ] != -1 } {
           set fullpathlist [lreplace $fullpathlist \
                     [expr [lsearch -exact $fullpathlist ".." ] - 1 ] \
                               [lsearch -exact $fullpathlist ".." ] ] }
        # filename を決定
        set filename [join $fullpathlist / ]

     } else { }

     # filename が存在するか否かで新規ファイルか否かを判別
     if {[file exists $filename] == 1 } {
        set new_filename 0
     } else { 
        set new_filename 1 
     }

     # file_dir を求める
     set fullpathlist [split $filename / ]
     set file_dir [lrange $fullpathlist 0 [expr [llength $fullpathlist ] - 2 ]]
     set file_dir [join $file_dir / ]

# 引数がない場合
} else {
     set filename ${current_dir}/unnamed.tex
     set new_filename 1 
     set file_dir $current_dir
}

loadfile $filename

# compile_file の初期値を設定
set compile_file "Not TeX file"
# 末尾が .tex だったら filename から .tex を取ったものにする
if {[string match "*.tex" $filename] == 1 } {
   set compile_file [string range $filename 0 \
                       [ expr [string length $filename] - 5 ]]
}

cd $file_dir 

# 漢字コードの初期化
kanji defaultOutputCode $kanji_code

##################################
# LaTeX 関係の初期実行スクリプト #
##################################

# colorize_flag で実行を判断する
if {$colorize_flag == 1 } { after 10 { colorize 1.0 end } }

# コマンドリストを読み込む
set f [open $tvi_directory/latex_commands] 
set latex_cmds [read $f 10000000] 
close $f 

# 環境リストを読み込む
set f [open $tvi_directory/latex_environments] 
set latex_envs [read $f 10000000] 
close $f 

# 数式記号リストを読み込む
set f [open $tvi_directory/latex_symbols] 
set latex_symbols [read $f 10000000] 
close $f 

