+proc append-energies {av energy power eunit punit fmt} {
+ upvar 1 o o
+ upvar 1 $av a
+ append o [format " ${fmt}%s / ${fmt}%s / ${fmt}%s ${fmt}%s" \
+ [expr { $a(${energy}_NOW) * 1e-6 }] $eunit \
+ [expr { $a(${energy}_FULL) * 1e-6 }] $eunit \
+ [expr { $a(${energy}_FULL_DESIGN) * 1e-6 }] $eunit \
+ [expr { $a(${power}_NOW) * 1e-6 }] $punit]
+}
+
+proc append-percents {qv} {
+ upvar 1 o o
+ upvar 1 $qv q
+ append o [format " %.0f%% (%.0f%%/%.0f%%)" \
+ [expr { $q(energy_NOW) * 100.0 / $q(energy_FULL_DESIGN) }] \
+ [expr { $q(energy_NOW) * 100.0 / $q(energy_FULL) }] \
+ [expr { $q(energy_FULL) * 100.0 / $q(energy_FULL_DESIGN) }]]
+ if {$q(power_NOW) < -1} {
+ set endpoint 0
+ } elseif {$q(power_NOW) > -1} {
+ set endpoint $q(energy_FULL)
+ }
+ if {[info exists endpoint]} {
+ set until [expr {($endpoint - $q(energy_NOW)) * 60.0/ $q(power_NOW)}]
+ if {$until < 72*60} {
+ append o [format " %.fmins" $until]
+ }
+ }
+}
+