From: Richard M. Stallman Date: Mon, 27 Jun 2011 08:04:55 +0000 (-0400) Subject: Implement battery-mode-line-limit option. X-Git-Tag: emacs-pretest-24.0.90~104^2~152^2~366 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=43d5bf84cf4f81bc11045971f34cc2b51fa06b03;p=emacs.git Implement battery-mode-line-limit option. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 3fcb5e59fc6..c7fb8fcd069 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2011-06-27 Richard Stallman + * battery.el (battery-mode-line-limit): New variable. + (battery-update): Handle it. + * mail/rmailmm.el (rmail-mime-process-multipart): Handle truncated messages. diff --git a/lisp/battery.el b/lisp/battery.el index 9afe9de7b98..d7d3045fa58 100644 --- a/lisp/battery.el +++ b/lisp/battery.el @@ -102,6 +102,11 @@ string are substituted as defined by the current value of the variable "String to display in the mode line.") ;;;###autoload (put 'battery-mode-line-string 'risky-local-variable t) +(defcustom battery-mode-line-limit 100 + "Percentage of full battery load below which display battery status" + :type 'integer + :group 'battery) + (defcustom battery-mode-line-format (cond ((eq battery-status-function 'battery-linux-proc-acpi) "[%b%p%%,%d°C]") @@ -182,16 +187,21 @@ seconds." (defun battery-update () "Update battery status information in the mode line." - (setq battery-mode-line-string - (propertize (if (and battery-mode-line-format - battery-status-function) - (battery-format - battery-mode-line-format - (funcall battery-status-function)) - "") - 'help-echo "Battery status information")) + (let ((data (and battery-status-function (funcall battery-status-function)))) + (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) + "") + 'face + (and (<= (car (read-from-string (cdr (assq ?p data)))) + battery-load-critical) + 'font-lock-warning-face) + 'help-echo "Battery status information"))) (force-mode-line-update)) - ;;; `/proc/apm' interface for Linux.