--- ray/src/util/do_file.tcl 1994/12/01 09:53:55 2.2 +++ ray/src/util/do_file.tcl 1995/09/21 10:29:12 2.11 @@ -8,7 +8,7 @@ set rif_glob *.rif proc preen {} { # clean up radvar global radvar rifname foreach n {objects scene materials illum mkillum render oconv pfilt - AMBFILE OPTFILE EXPOSURE ZONE REPORT} { + RAWFILE ZFILE AMBFILE OPTFILE EXPOSURE ZONE REPORT} { if {! [info exists radvar($n)]} { set radvar($n) {} } @@ -19,7 +19,7 @@ proc preen {} { # clean up radvar set n 1 foreach v $oldval { if {"[string index $v 0]" == "-"} { - lappend radvar(view) "$n $v" + lappend radvar(view) "u$n $v" } elseif {[lsearch -glob $radvar(view) \ "[lindex $v 0] *"] >= 0} { continue @@ -100,6 +100,8 @@ proc setradvar stmt { # assign a rad variable PEN* { set radvar(PENUMBRAS) $vval } VAR* { set radvar(VARIABILITY) $vval } REP* { set radvar(REPORT) $vval } + RAW* { set radvar(RAWFILE) $vval } + ZF* {set radvar(ZFILE) $vval } } } @@ -119,7 +121,7 @@ proc putradvar {fi vn} { # print out a rad variable } if {[lsearch -exact {ZONE QUALITY OCTREE PICTURE AMBFILE OPTFILE EXPOSURE RESOLUTION UP INDIRECT DETAIL PENUMBRAS - VARIABILITY REPORT} $vn] >= 0} { + RAWFILE ZFILE VARIABILITY REPORT} $vn] >= 0} { puts $fi "$vn= $radvar($vn)" return } @@ -148,7 +150,7 @@ proc load_vars {f {vl all}} { # load RIF variables } if {"$vl" == "all" && ! [chksave]} {return 0} set curmess {Please wait...} - update idletasks + update if [catch {exec rad -n -w -e $f >& /usr/tmp/ro[pid]}] { set curmess [exec cat /usr/tmp/ro[pid]] exec rm -f /usr/tmp/ro[pid] @@ -167,7 +169,7 @@ proc load_vars {f {vl all}} { # load RIF variables set curmess {Project loaded.} } else { foreach n $vl { - set radvar($n) {} + catch {unset radvar($n)} } while {[gets $fi curli] != -1} { if [regexp {^[a-zA-Z][a-zA-Z0-9]* *=} $curli] { @@ -242,6 +244,11 @@ proc newsave f { # save a RIF return 0 } } + if {[file exists $f] && ! [file writable $f] && + [catch {exec chmod u+w $f} curmess]} { + beep + return 0 + } if [save_vars $f] { set rifname [pwd]/$f set readonly 0 @@ -282,8 +289,8 @@ proc do_file w { pack $w.left -side left button $w.left.load -text LOAD -width 5 \ -relief raised -command {newload $curfile} - button $w.left.save -text SAVE -width 5 \ - -relief raised -command {newsave $curfile} + button $w.left.save -text SAVE -width 5 -relief raised \ + -command "newsave \$curfile; update_dir $w.right" button $w.left.new -text NEW -width 5 \ -relief raised -command {newnew $curfile} pack $w.left.load $w.left.save $w.left.new -side top -pady 15 -padx 20