
if {![exists -proc pretty_size]} {
	proc pretty_size {size} {{units {bytes KiB MiB GiB TiB}}} {

#		for {set i 0; set l [llength $units]; incr l -1} {
#		    $size > 1023 && $i < $l} {incr i} {
#			set size $($size / 1024.0)
#		}

		# We need to know how many powers of 1024 there are in
		# size. This calculates the answer effeciently. Testing
		# shows that this version takes 2/3 the time of the above.
		if {$size <= 0} {
			set i 0
		} else {
			set i $(int(log($size) / log(1024)))
			set size $($size / 1024.0 ** $i)
		}

		set size [string trimright \
			[string trimright [format "%.2f" $size] "0"] "."]

		return "$size [lindex $units $i]"
	}
}

