bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#9363: display-battery-mode


From: Juri Linkov
Subject: bug#9363: display-battery-mode
Date: Wed, 24 Aug 2011 21:12:08 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (x86_64-pc-linux-gnu)

When ACPI is turned off with `acpi=off' after booting the Linux kernel
`M-x display-battery-mode RET' fails with:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  read-from-string(nil)
  battery-update()
  display-battery-mode(toggle)
  call-interactively(display-battery-mode t nil)
  execute-extended-command(nil)
  call-interactively(execute-extended-command nil nil)

whereas `M-x battery RET' displays a polite message "Battery status not 
available".

This patch fixes `display-battery-mode' to display the same message when
`battery-status-function' is nil.

I don't know if it's desirable to force turning off this mode and to
reset the value of `display-battery-mode' to nil in this case.
But at least, the message is informative with this patch:

=== modified file 'lisp/battery.el'
--- lisp/battery.el     2011-06-27 08:04:55 +0000
+++ lisp/battery.el     2011-08-24 18:11:15 +0000
@@ -173,13 +173,15 @@ (define-minor-mode display-battery-mode
   (setq battery-mode-line-string "")
   (or global-mode-string (setq global-mode-string '("")))
   (and battery-update-timer (cancel-timer battery-update-timer))
-  (if (not display-battery-mode)
-      (setq global-mode-string
-           (delq 'battery-mode-line-string global-mode-string))
-    (add-to-list 'global-mode-string 'battery-mode-line-string t)
-    (setq battery-update-timer (run-at-time nil battery-update-interval
-                                           'battery-update-handler))
-    (battery-update)))
+  (if (and battery-status-function battery-mode-line-format)
+      (if (not display-battery-mode)
+         (setq global-mode-string
+               (delq 'battery-mode-line-string global-mode-string))
+       (add-to-list 'global-mode-string 'battery-mode-line-string t)
+       (setq battery-update-timer (run-at-time nil battery-update-interval
+                                               'battery-update-handler))
+       (battery-update))
+    (message "Battery status not available")))
 
 (defun battery-update-handler ()
   (battery-update)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]