From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#25559: Trouble getting battery status Date: Fri, 26 Jul 2019 17:06:22 +0200 Message-ID: <878sskltsh.fsf@mouse.gnus.org> References: <86wpdgavo1.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="219939"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: 25559@debbugs.gnu.org To: Rahul Martim Juliato Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Jul 26 17:07:10 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hr1oL-000v5H-5H for geb-bug-gnu-emacs@m.gmane.org; Fri, 26 Jul 2019 17:07:09 +0200 Original-Received: from localhost ([::1]:40974 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hr1oK-0002br-6q for geb-bug-gnu-emacs@m.gmane.org; Fri, 26 Jul 2019 11:07:08 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37554) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hr1oG-0002QI-5a for bug-gnu-emacs@gnu.org; Fri, 26 Jul 2019 11:07:05 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hr1oE-0005TV-OM for bug-gnu-emacs@gnu.org; Fri, 26 Jul 2019 11:07:04 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:34339) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hr1oE-0005Sy-Kh for bug-gnu-emacs@gnu.org; Fri, 26 Jul 2019 11:07:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hr1oE-0001MK-C1 for bug-gnu-emacs@gnu.org; Fri, 26 Jul 2019 11:07:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 26 Jul 2019 15:07:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25559 X-GNU-PR-Package: emacs Original-Received: via spool by 25559-submit@debbugs.gnu.org id=B25559.15641535905171 (code B ref 25559); Fri, 26 Jul 2019 15:07:02 +0000 Original-Received: (at 25559) by debbugs.gnu.org; 26 Jul 2019 15:06:29 +0000 Original-Received: from localhost ([127.0.0.1]:43157 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hr1nh-0001LK-CE for submit@debbugs.gnu.org; Fri, 26 Jul 2019 11:06:29 -0400 Original-Received: from quimby.gnus.org ([80.91.231.51]:38132) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hr1nf-0001L4-Bi for 25559@debbugs.gnu.org; Fri, 26 Jul 2019 11:06:28 -0400 Original-Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=marnie) by quimby.gnus.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hr1nb-0001Em-5U; Fri, 26 Jul 2019 17:06:25 +0200 In-Reply-To: <86wpdgavo1.fsf@gmail.com> (Rahul Martim Juliato's message of "Fri, 27 Jan 2017 22:13:34 -0200") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:163795 Archived-At: Rahul Martim Juliato writes: > battery.el gives me an error, where is not possible to find my battery > info directory. > > I'm on a 32 bit ARM, Arch Linux with 3.8.11 kernel, Samsung Chromebook, > and on the proc directoy this is what I have: > > ~ $ ls -l /sys/class/power_supply/ > total 0 > lrwxrwxrwx 1 root root 0 2017-01-27 21:48 sbs-104-000b -> > ../../devices/12ca0000.i2c/i2c-4/i2c-104/104-000b/power_supply/sbs-104-000b > lrwxrwxrwx 1 root root 0 2017-01-27 21:47 tps65090-ac -> > ../../devices/12ca0000.i2c/i2c-4/i2c-104/104-0048/tps65090-charger/power_supply/tps65090-ac > ~ $ > > That means, I have 2 sub-directories, and battery info is inside > sbs-104-000b. > > Taking a look into battery.el, it seems that the program does not tests > for inner directories possibility. It looks like it just looks for batteries named BATx: (defcustom battery-linux-sysfs-regexp "[bB][aA][tT][0-9]?$" That seems unnecessary -- surely we can just look into all the directories there and see whether it looks like we have a battery directory? The patch below does this, but perhaps it's problematic. Do all power_supply/ directories have a "capacity" file, or does that vary by Linux kernel version? diff --git a/lisp/battery.el b/lisp/battery.el index 7037d07dcf..9a09093d48 100644 --- a/lisp/battery.el +++ b/lisp/battery.el @@ -38,13 +38,6 @@ battery :prefix "battery-" :group 'hardware) -(defcustom battery-linux-sysfs-regexp "[bB][aA][tT][0-9]?$" - "Regexp for folder names to be searched under - /sys/class/power_supply/ that contain battery information." - :version "26.1" - :type 'regexp - :group 'battery) - (defcustom battery-upower-device "battery_BAT1" "Upower battery device name." :version "26.1" @@ -60,8 +53,8 @@ battery-status-function #'battery-linux-proc-acpi) ((and (eq system-type 'gnu/linux) (file-directory-p "/sys/class/power_supply/") - (directory-files "/sys/class/power_supply/" nil - battery-linux-sysfs-regexp)) + (directory-files-recursively "/sys/class/power_supply/" + "\\`capacity\\'" nil nil t)) #'battery-linux-sysfs) ((and (eq system-type 'berkeley-unix) (file-executable-p "/usr/sbin/apm")) @@ -449,9 +442,10 @@ battery-linux-sysfs ;; available information together. (with-temp-buffer (dolist (dir (ignore-errors - (directory-files - "/sys/class/power_supply/" t - battery-linux-sysfs-regexp))) + (mapcar + #'file-name-directory + (directory-files-recursively + "/sys/class/power_supply/" "\\`capacity\\'" nil nil t)))) (erase-buffer) (ignore-errors (insert-file-contents (expand-file-name "uevent" dir))) -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no