From: Dan Nicolaescu Date: Tue, 10 Apr 2012 23:24:31 +0000 (+0200) Subject: battery.el not working when multiple batteries are present X-Git-Tag: emacs-24.2.90~471^2~364^2~47 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6a8c9eafb92f15fd9194cb38499008f1f4579e20;p=emacs.git battery.el not working when multiple batteries are present * battery.el (battery-linux-proc-acpi): Only one battery is discharged at a time, but that seems to confuse battery.el when computing `rate-type' for the battery not being discharged. Fixes: debbugs:10332 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 135f01d6268..8cdff58369f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2012-04-10 Dan Nicolaescu + + * battery.el (battery-linux-proc-acpi): Only one battery is + discharged at a time, but that seems to confuse battery.el when + computing `rate-type' for the battery not being discharged + (bug#10332). + 2012-04-10 Stefan Monnier * emacs-lisp/autoload.el (autoload-make-program): Remove, unused. diff --git a/lisp/battery.el b/lisp/battery.el index 586be9e8938..5cb10252539 100644 --- a/lisp/battery.el +++ b/lisp/battery.el @@ -344,14 +344,15 @@ The following %-sequences are provided: (setq charging-state (match-string 1))) (when (re-search-forward "present rate: +\\([0-9]+\\) \\(m[AW]\\)$" nil t) - (setq rate (+ (or rate 0) (string-to-number (match-string 1))) - rate-type (or (and rate-type + (setq rate (+ (or rate 0) (string-to-number (match-string 1)))) + (when (> rate 0) + (setq rate-type (or (and rate-type (if (string= rate-type (match-string 2)) rate-type (error "Inconsistent rate types (%s vs. %s)" rate-type (match-string 2)))) - (match-string 2)))) + (match-string 2))))) (when (re-search-forward "remaining capacity: +\\([0-9]+\\) m[AW]h$" nil t) (setq capacity