diff --git a/site_ansto/instrument/util/write_tree.tcl b/site_ansto/instrument/util/write_tree.tcl index 75382d53..98a5db35 100644 --- a/site_ansto/instrument/util/write_tree.tcl +++ b/site_ansto/instrument/util/write_tree.tcl @@ -15,36 +15,36 @@ } else { set line "$nam ([hinfo $tc_root]) = $val" } + clientput "$space* $line" } message ] { clientput "Error in writeNode/hinfo for $tc_root : $message" - return } - clientput "$space* $line" if {"[string tolower "$do_props"]" == "-prop"} { if [ catch { - set props [hlistprop $tc_root] - } message ] { - clientput "Error in writeNode/hlistprop for $tc_root : $message" - return - } - #clientput "<<$props>>" - foreach prop $props { - #clientput "prop: $prop" - set flds [split $prop "="] - #clientput "flds: $flds" - if {[llength $flds] > 1} { - set fld0 [lindex $flds 0] - #clientput "fld0: $fld0" - if {[hpropexists $tc_root $fld0]} { - set rst [hgetprop $tc_root $fld0] - set nam [lindex [split [lindex $rst 0] "."] 1] - set rst [join [lrange [split $rst " "] 1 end] " "] - clientput "$space - $nam $rst" + set props [lsort [hlistprop $tc_root]] + #clientput "<<$props>>" + foreach prop $props { + if [ catch { + # guard against embedded spaces producing false properties + #clientput "prop: $prop" + set flds [split $prop "="] + #clientput "flds: $flds" + if {[llength $flds] > 1} { + set nam [lindex $flds 0] + if {[hpropexists $tc_root $nam]} { + set rst [hgetpropval $tc_root $nam] + clientput "$space - $nam=$rst" + } + } + } message ] { + clientput "Error in writeNode/hlistprop for $tc_root : $message" } } + } message ] { + clientput "Error in writeNode/hlistprop for $tc_root : $message" } } - foreach node [hlist $tc_root] { + foreach node [lsort [hlist $tc_root]] { ::utility::writeNode $tc_root/$node "$do_props" [expr {$level + 1}] } } message ] {