]> code.delx.au - gnu-emacs/commitdiff
2006-11-05 Micha�Cadilhac <michael.cadilhac@lrde.org>
authorRomain Francoise <romain@orebokech.com>
Sun, 5 Nov 2006 13:22:30 +0000 (13:22 +0000)
committerRomain Francoise <romain@orebokech.com>
Sun, 5 Nov 2006 13:22:30 +0000 (13:22 +0000)
* battery.el (battery-linux-proc-acpi): Search an ac_adapter in
`/proc/acpi/ac_adapter/*'.  Ditto for the thermometers in
`/proc/acpi/thermal_zone/*'.
(battery-search-for-one-match-in-files): New.  Search a regexp in
the content of some files.

lisp/ChangeLog
lisp/battery.el

index 5d1136a945f2598632c874c3c160b563180e3cde..b699521bf4b89a40334c32237e174088a0b85e7f 100644 (file)
@@ -1,3 +1,11 @@
+2006-11-05  Micha\e,Ak\e(Bl Cadilhac  <michael.cadilhac@lrde.org>
+
+       * battery.el (battery-linux-proc-acpi): Search an ac_adapter in
+       `/proc/acpi/ac_adapter/*'.  Ditto for the thermometers in
+       `/proc/acpi/thermal_zone/*'.
+       (battery-search-for-one-match-in-files): New.  Search a regexp in
+       the content of some files.
+
 2006-11-05  Martin Rudalics  <rudalics@gmx.at>
 
        * window.el (mouse-autoselect-window-now): Remove variable.
index ec35e04e1aba7261f2c6e1d6400cde4f2288aa4a..a4c72df0bbb910d4d184b256a01aabb0f92d56a4 100644 (file)
@@ -49,8 +49,8 @@
              (file-directory-p "/proc/acpi/battery"))
         'battery-linux-proc-acpi)
        ((and (eq system-type 'darwin)
-             (condition-case nil  
-                 (with-temp-buffer 
+             (condition-case nil
+                 (with-temp-buffer
                    (and (eq (call-process "pmset" nil t nil "-g" "ps") 0)
                         (> (buffer-size) 0)))
                (error nil)))
@@ -355,45 +355,19 @@ The following %-sequences are provided:
                                   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 @@ The following %-sequences are provided:
         (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)))))))
+
 \f
 (provide 'battery)