[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/battery.el,v
From: |
Romain Francoise |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/battery.el,v |
Date: |
Sun, 05 Nov 2006 13:22:32 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Romain Francoise <rfrancoise> 06/11/05 13:22:31
Index: battery.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/battery.el,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -b -r1.37 -r1.38
--- battery.el 1 Nov 2006 14:24:37 -0000 1.37
+++ battery.el 5 Nov 2006 13:22:30 -0000 1.38
@@ -355,45 +355,19 @@
60)))
hours (/ minutes 60)))
(list (cons ?c (or (and capacity (number-to-string capacity)) "N/A"))
- (cons ?L (or (when (file-exists-p "/proc/acpi/ac_adapter/AC/state")
- (with-temp-buffer
- (insert-file-contents
- "/proc/acpi/ac_adapter/AC/state")
- (when (re-search-forward "state: +\\(.*\\)$" nil t)
- (match-string 1))))
+ (cons ?L (or (battery-search-for-one-match-in-files
+ (mapcar (lambda (e) (concat e "/state"))
+ (directory-files "/proc/acpi/ac_adapter/"
+ t "\\`[^.]"))
+ "state: +\\(.*\\)$" 1)
+
"N/A"))
- (cons ?d (or (when (file-exists-p
- "/proc/acpi/thermal_zone/THRM/temperature")
- (with-temp-buffer
- (insert-file-contents
- "/proc/acpi/thermal_zone/THRM/temperature")
- (when (re-search-forward
- "temperature: +\\([0-9]+\\) C$" nil t)
- (match-string 1))))
- (when (file-exists-p
- "/proc/acpi/thermal_zone/THM/temperature")
- (with-temp-buffer
- (insert-file-contents
- "/proc/acpi/thermal_zone/THM/temperature")
- (when (re-search-forward
- "temperature: +\\([0-9]+\\) C$" nil t)
- (match-string 1))))
- (when (file-exists-p
- "/proc/acpi/thermal_zone/THM0/temperature")
- (with-temp-buffer
- (insert-file-contents
- "/proc/acpi/thermal_zone/THM0/temperature")
- (when (re-search-forward
- "temperature: +\\([0-9]+\\) C$" nil t)
- (match-string 1))))
- (when (file-exists-p
- "/proc/acpi/thermal_zone/THR2/temperature")
- (with-temp-buffer
- (insert-file-contents
- "/proc/acpi/thermal_zone/THR2/temperature")
- (when (re-search-forward
- "temperature: +\\([0-9]+\\) C$" nil t)
- (match-string 1))))
+ (cons ?d (or (battery-search-for-one-match-in-files
+ (mapcar (lambda (e) (concat e "/temperature"))
+ (directory-files "/proc/acpi/thermal_zone/"
+ t "\\`[^.]"))
+ "temperature: +\\([0-9]+\\) C$" 1)
+
"N/A"))
(cons ?r (or (and rate (concat (number-to-string rate) " "
rate-type)) "N/A"))
@@ -479,6 +453,17 @@
(or (cdr (assoc char alist)) ""))))
format t t))
+(defun battery-search-for-one-match-in-files (files regexp match-num)
+ "Search REGEXP in the content of the files listed in FILES.
+If a match occured, return the parenthesized expression numbered by
+MATCH-NUM in the match. Otherwise, return nil."
+ (with-temp-buffer
+ (catch 'found
+ (dolist (file files)
+ (and (ignore-errors (insert-file-contents file nil nil nil 'replace))
+ (re-search-forward regexp nil t)
+ (throw 'found (match-string match-num)))))))
+
(provide 'battery)