emacs-diffs
[Top][All Lists]
Advanced

[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)
 




reply via email to

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