diff --git a/debian/changelog b/debian/changelog index cfe11907..0855e90e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,8 @@ byobu (4.44) unreleased; urgency=low - * UNRELEASED + [ Dustin Kirkland ] + * usr/lib/byobu/battery: + - protect against division by zero -- Dustin Kirkland Sat, 22 Oct 2011 03:21:46 -0500 diff --git a/usr/lib/byobu/battery b/usr/lib/byobu/battery index ee930d71..76a5e7e3 100755 --- a/usr/lib/byobu/battery +++ b/usr/lib/byobu/battery @@ -67,25 +67,27 @@ __battery() { ;; esac done - percent=$(((100*$rem)/$full)) - if [ "$percent" -lt 33 ]; then - color="R k" - bcolor="b R k" - elif [ "$percent" -lt 67 ]; then - color="Y k" - bcolor="b Y k" - else - color="G k" - bcolor="b G k" + if [ $rem -ge 0 ] && [ $full -gt 0 ]; then + percent=$(((100*$rem)/$full)) + if [ "$percent" -lt 33 ]; then + color="R k" + bcolor="b R k" + elif [ "$percent" -lt 67 ]; then + color="Y k" + bcolor="b Y k" + else + color="G k" + bcolor="b G k" + fi + percent="$percent$PCT" + case $state in + charging|Charging|Unknown) sign="+" ;; + discharging|Discharging) sign="-" ;; + charged|Unknown) sign="="; percent="" ;; + *) sign="$state" ;; + esac + color $bcolor; printf "%s" "$percent"; color -; color $color; printf "%s" "$sign"; color -- fi - percent="$percent$PCT" - case $state in - charging|Charging|Unknown) sign="+" ;; - discharging|Discharging) sign="-" ;; - charged|Unknown) sign="="; percent="" ;; - *) sign="$state" ;; - esac - color $bcolor; printf "%s" "$percent"; color -; color $color; printf "%s" "$sign"; color -- } # vi: syntax=sh ts=4 noexpandtab