From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Nicolas Richard Newsgroups: gmane.emacs.bugs Subject: bug#17319: 24.3.50; Error when battery-status-function reports "N/A" Date: Wed, 23 Apr 2014 07:29:42 +0200 Message-ID: <87eh0owr3t.fsf@yahoo.fr> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1398231085 5946 80.91.229.3 (23 Apr 2014 05:31:25 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 23 Apr 2014 05:31:25 +0000 (UTC) To: 17319@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Apr 23 07:31:19 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Wcpm8-00053U-Uv for geb-bug-gnu-emacs@m.gmane.org; Wed, 23 Apr 2014 07:31:17 +0200 Original-Received: from localhost ([::1]:58696 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wcpm8-0001BT-Ic for geb-bug-gnu-emacs@m.gmane.org; Wed, 23 Apr 2014 01:31:16 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41024) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wcpm0-0001BB-NP for bug-gnu-emacs@gnu.org; Wed, 23 Apr 2014 01:31:13 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Wcplv-0000TR-Lz for bug-gnu-emacs@gnu.org; Wed, 23 Apr 2014 01:31:08 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:47455) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wcplv-0000TN-JR for bug-gnu-emacs@gnu.org; Wed, 23 Apr 2014 01:31:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1Wcplu-0001XB-Vk for bug-gnu-emacs@gnu.org; Wed, 23 Apr 2014 01:31:03 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Nicolas Richard Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 23 Apr 2014 05:31:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 17319 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.13982310055542 (code B ref -1); Wed, 23 Apr 2014 05:31:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 23 Apr 2014 05:30:05 +0000 Original-Received: from localhost ([127.0.0.1]:55612 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wcpkw-0001Qu-VF for submit@debbugs.gnu.org; Wed, 23 Apr 2014 01:30:04 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:39043) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wcpkt-0001QI-RV for submit@debbugs.gnu.org; Wed, 23 Apr 2014 01:30:00 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Wcpkn-0008Sc-UQ for submit@debbugs.gnu.org; Wed, 23 Apr 2014 01:29:59 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:35436) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wcpkn-0008SX-RE for submit@debbugs.gnu.org; Wed, 23 Apr 2014 01:29:53 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40733) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wcpkj-0008Qz-0m for bug-gnu-emacs@gnu.org; Wed, 23 Apr 2014 01:29:53 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Wcpke-0008Rb-7w for bug-gnu-emacs@gnu.org; Wed, 23 Apr 2014 01:29:48 -0400 Original-Received: from mailrelay004.isp.belgacom.be ([195.238.6.170]:9197) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wcpke-0008RJ-1x for bug-gnu-emacs@gnu.org; Wed, 23 Apr 2014 01:29:44 -0400 X-Belgacom-Dynamic: yes Original-Received: from 2.152-246-81.adsl-dyn.isp.belgacom.be (HELO LDLC-portable) ([81.246.152.2]) by relay.skynet.be with ESMTP; 23 Apr 2014 07:29:42 +0200 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:88235 Archived-At: Hello, When I open the lid of my laptop, it might happen that the percentage is "N/A". battery.el assumed it is a number. I suggest the following patch to avoid the lisp error (sorry I did not save the backtrace). In GNU Emacs 24.3.50.7 (i686-pc-linux-gnu, GTK+ Version 2.24.20) of 2014-04-10 on LDLC-portable Windowing system distributor `The X.Org Foundation', version 11.0.11405000 System Description: Ubuntu 13.10 Configured using: `configure 'CFLAGS=-g3 -O2'' Important settings: value of $LANG: fr_BE.UTF-8 locale-coding-system: utf-8-unix 2 files changed, 16 insertions(+), 9 deletions(-) lisp/ChangeLog | 4 ++++ lisp/battery.el | 21 ++++++++++++--------- Modified lisp/ChangeLog diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a31aa5d..d81712f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2014-04-11 Nicolas Richard + + * battery.el (battery-update): Handle the case where battery + status is "N/A". 2014-04-23 Stefan Monnier * simple.el (completion-list-mode-map): Use choose-completion for the Modified lisp/battery.el diff --git a/lisp/battery.el b/lisp/battery.el index 1eef80a..768ed78 100644 --- a/lisp/battery.el +++ b/lisp/battery.el @@ -201,19 +201,22 @@ seconds." (defun battery-update () "Update battery status information in the mode line." - (let ((data (and battery-status-function (funcall battery-status-function)))) + (let* ((data (and battery-status-function (funcall battery-status-function))) + (percentage (car (read-from-string (cdr (assq ?p data)))))) (setq battery-mode-line-string (propertize (if (and battery-mode-line-format - (<= (car (read-from-string (cdr (assq ?p data)))) - battery-mode-line-limit)) - (battery-format - battery-mode-line-format - data) + (or + (not (numberp percentage)) + (<= percentage + battery-mode-line-limit))) + (battery-format battery-mode-line-format data) "") 'face - (and (<= (car (read-from-string (cdr (assq ?p data)))) - battery-load-critical) - 'error) + (or + (not (numberp percentage)) + (and (<= percentage + battery-load-critical) + 'error)) 'help-echo "Battery status information"))) (force-mode-line-update)) -- Nico.