all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Battery update
@ 2008-08-07 16:35 Chong Yidong
  2008-08-07 18:09 ` Sven Joachim
                   ` (5 more replies)
  0 siblings, 6 replies; 42+ messages in thread
From: Chong Yidong @ 2008-08-07 16:35 UTC (permalink / raw)
  To: emacs-devel; +Cc: 643, Emre Sahin

The Linux kernel developers have deprecated the longstanding /proc/acpi
interface, which breaks battery.el on recent kernels (bug#643 and
bug#660).  Now, the battery information is supposed to come through
sysfs.

Even though it's the feature freeze, I think it's necessary to ensure
that battery.el works at least at a basic level.  So, here's a patch
that adds primitive sysfs support for battery.el.  It doesn't do as much
as before, because AFAICT the new sysfs interface provides less
information than the old acpi interface (go figure).

It's lightly tested.  Could someone try this out and see if it does the
right thing?

*** trunk/lisp/battery.el.~1.46.~	2008-05-06 03:57:26.000000000 -0400
--- trunk/lisp/battery.el	2008-08-07 12:34:45.000000000 -0400
***************
*** 47,52 ****
--- 47,56 ----
  	((and (eq system-type 'gnu/linux)
  	      (file-directory-p "/proc/acpi/battery"))
  	 'battery-linux-proc-acpi)
+ 	((and (eq system-type 'gnu/linux)
+ 	      (file-directory-p "/sys/class/power_supply/")
+ 	      (directory-files "/sys/class/power_supply/" nil "BAT[0-9]$"))
+ 	 'battery-linux-sysfs)
  	((and (eq system-type 'darwin)
  	      (condition-case nil
  		  (with-temp-buffer
***************
*** 70,75 ****
--- 74,81 ----
  (defcustom battery-echo-area-format
    (cond ((eq battery-status-function 'battery-linux-proc-acpi)
  	 "Power %L, battery %B at %r (%p%% load, remaining time %t)")
+ 	((eq battery-status-function 'battery-linux-sysfs)
+ 	 "Power %L, battery %B (%p%% load)")
  	((eq battery-status-function 'battery-pmset)
  	 "%L power, battery %B (%p%% load, remaining time %t)")
  	(battery-status-function
***************
*** 276,282 ****
  
  (defun battery-linux-proc-acpi ()
    "Get ACPI status information from Linux kernel.
! This function works only with the new `/proc/acpi/' format introduced
  in Linux version 2.4.20 and 2.6.0.
  
  The following %-sequences are provided:
--- 282,288 ----
  
  (defun battery-linux-proc-acpi ()
    "Get ACPI status information from Linux kernel.
! This function works only with the `/proc/acpi/' format introduced
  in Linux version 2.4.20 and 2.6.0.
  
  The following %-sequences are provided:
***************
*** 390,395 ****
--- 396,480 ----
  		       "N/A")))))
  
  \f
+ ;;; `/sys/class/power_supply/BATN' interface for Linux.
+ 
+ (defun battery-linux-sysfs ()
+   "Get ACPI status information from Linux kernel.
+ This function works only with the new `/sys/class/power_supply/BAT'
+ format introduced in Linux version 2.4.25.
+ 
+ The following %-sequences are provided:
+ %c Current capacity (mAh or mWh)
+ %B Battery status (verbose)
+ %p Battery load percentage
+ %L AC line status (verbose)"
+   (let (charging-state
+ 	(charge-full 0)
+ 	(charge-now 0)
+ 	(energy-full 0)
+ 	(energy-now 0))
+     ;; SysFS provides information about each battery present in the
+     ;; system in a separate subdirectory.  We are going to merge the
+     ;; available information together.
+     (with-temp-buffer
+       (dolist (dir (ignore-errors
+ 		    (directory-files
+ 		     "/sys/class/power_supply/" t "BAT[0-9]$")))
+ 	(erase-buffer)
+ 	(ignore-errors (insert-file-contents
+ 			(expand-file-name "uevent" dir)))
+ 	(when (re-search-forward "POWER_SUPPLY_PRESENT=1$" nil t)
+ 	  (goto-char (point-min))
+ 	  (and (re-search-forward "POWER_SUPPLY_STATUS=\\(.*\\)$" nil t)
+ 	       ;; On most multi-battery systems, most of the time only
+ 	       ;; one battery is "charging"/"discharging", the others
+ 	       ;; are "unknown".
+ 	       (member charging-state '("Unknown" "Full" nil))
+ 	       (setq charging-state (match-string 1)))
+ 	  (let (full-string now-string)
+ 	    ;; Energy or charge
+ 	    (cond ((and (re-search-forward
+ 			 "POWER_SUPPLY_CHARGE_FULL=\\([0-9]*\\)$" nil t)
+ 			(setq full-string (match-string 1))
+ 			(re-search-forward
+ 			 "POWER_SUPPLY_CHARGE_NOW=\\([0-9]*\\)$" nil t)
+ 			(setq now-string (match-string 1)))
+ 		   (setq charge-full (+ charge-full
+ 					(string-to-number full-string))
+ 			 charge-now  (+ charge-now
+ 					(string-to-number now-string))))
+ 		  ((and (re-search-forward
+ 			 "POWER_SUPPLY_ENERGY_FULL=\\([0-9]*\\)$" nil t)
+ 			(setq full-string (match-string 1))
+ 			(re-search-forward
+ 			 "POWER_SUPPLY_ENERGY_NOW=\\([0-9]*\\)$" nil t)
+ 			(setq now-string (match-string 1)))
+ 		   (setq energy-full (+ energy-full
+ 					(string-to-number full-string))
+ 			 energy-now  (+ energy-now
+ 					(string-to-number now-string)))))))))
+     (list (cons ?c (cond ((or (> charge-full  0) (> charge-now  0))
+ 			  (number-to-string charge-now))
+ 			 ((or (> energy-full  0) (> energy-now  0))
+ 			  (number-to-string energy-now))
+ 			 (t "N/A")))
+ 	  (cons ?B (or charging-state "N/A"))
+ 	  (cons ?p (cond ((> charge-full 0)
+ 			  (format "%.1f"
+ 				  (/ (* 100 charge-now) (float charge-full))))
+ 			 ((> energy-full 0)
+ 			  (format "%.1f"
+ 				  (/ (* 100 energy-now) (float energy-full))))
+ 			 (t "N/A")))
+ 	  (cons ?L (if (file-readable-p "/sys/class/power_supply/AC/online")
+ 		       (if (battery-search-for-one-match-in-files
+ 			    "/sys/class/power_supply/AC/online" "1" 0)
+ 			   "AC"
+ 			 "BAT")
+ 		     "N/A")))))
+ 
+ 
+ \f
  ;;; `pmset' interface for Darwin (OS X).
  
  (defun battery-pmset ()




^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
@ 2008-08-07 16:35 Chong Yidong
  0 siblings, 0 replies; 42+ messages in thread
From: Chong Yidong @ 2008-08-07 16:35 UTC (permalink / raw)
  To: emacs-devel; +Cc: 643, Emre Sahin

The Linux kernel developers have deprecated the longstanding /proc/acpi
interface, which breaks battery.el on recent kernels (bug#643 and
bug#660).  Now, the battery information is supposed to come through
sysfs.

Even though it's the feature freeze, I think it's necessary to ensure
that battery.el works at least at a basic level.  So, here's a patch
that adds primitive sysfs support for battery.el.  It doesn't do as much
as before, because AFAICT the new sysfs interface provides less
information than the old acpi interface (go figure).

It's lightly tested.  Could someone try this out and see if it does the
right thing?

*** trunk/lisp/battery.el.~1.46.~	2008-05-06 03:57:26.000000000 -0400
--- trunk/lisp/battery.el	2008-08-07 12:34:45.000000000 -0400
***************
*** 47,52 ****
--- 47,56 ----
  	((and (eq system-type 'gnu/linux)
  	      (file-directory-p "/proc/acpi/battery"))
  	 'battery-linux-proc-acpi)
+ 	((and (eq system-type 'gnu/linux)
+ 	      (file-directory-p "/sys/class/power_supply/")
+ 	      (directory-files "/sys/class/power_supply/" nil "BAT[0-9]$"))
+ 	 'battery-linux-sysfs)
  	((and (eq system-type 'darwin)
  	      (condition-case nil
  		  (with-temp-buffer
***************
*** 70,75 ****
--- 74,81 ----
  (defcustom battery-echo-area-format
    (cond ((eq battery-status-function 'battery-linux-proc-acpi)
  	 "Power %L, battery %B at %r (%p%% load, remaining time %t)")
+ 	((eq battery-status-function 'battery-linux-sysfs)
+ 	 "Power %L, battery %B (%p%% load)")
  	((eq battery-status-function 'battery-pmset)
  	 "%L power, battery %B (%p%% load, remaining time %t)")
  	(battery-status-function
***************
*** 276,282 ****
  
  (defun battery-linux-proc-acpi ()
    "Get ACPI status information from Linux kernel.
! This function works only with the new `/proc/acpi/' format introduced
  in Linux version 2.4.20 and 2.6.0.
  
  The following %-sequences are provided:
--- 282,288 ----
  
  (defun battery-linux-proc-acpi ()
    "Get ACPI status information from Linux kernel.
! This function works only with the `/proc/acpi/' format introduced
  in Linux version 2.4.20 and 2.6.0.
  
  The following %-sequences are provided:
***************
*** 390,395 ****
--- 396,480 ----
  		       "N/A")))))
  
  \f
+ ;;; `/sys/class/power_supply/BATN' interface for Linux.
+ 
+ (defun battery-linux-sysfs ()
+   "Get ACPI status information from Linux kernel.
+ This function works only with the new `/sys/class/power_supply/BAT'
+ format introduced in Linux version 2.4.25.
+ 
+ The following %-sequences are provided:
+ %c Current capacity (mAh or mWh)
+ %B Battery status (verbose)
+ %p Battery load percentage
+ %L AC line status (verbose)"
+   (let (charging-state
+ 	(charge-full 0)
+ 	(charge-now 0)
+ 	(energy-full 0)
+ 	(energy-now 0))
+     ;; SysFS provides information about each battery present in the
+     ;; system in a separate subdirectory.  We are going to merge the
+     ;; available information together.
+     (with-temp-buffer
+       (dolist (dir (ignore-errors
+ 		    (directory-files
+ 		     "/sys/class/power_supply/" t "BAT[0-9]$")))
+ 	(erase-buffer)
+ 	(ignore-errors (insert-file-contents
+ 			(expand-file-name "uevent" dir)))
+ 	(when (re-search-forward "POWER_SUPPLY_PRESENT=1$" nil t)
+ 	  (goto-char (point-min))
+ 	  (and (re-search-forward "POWER_SUPPLY_STATUS=\\(.*\\)$" nil t)
+ 	       ;; On most multi-battery systems, most of the time only
+ 	       ;; one battery is "charging"/"discharging", the others
+ 	       ;; are "unknown".
+ 	       (member charging-state '("Unknown" "Full" nil))
+ 	       (setq charging-state (match-string 1)))
+ 	  (let (full-string now-string)
+ 	    ;; Energy or charge
+ 	    (cond ((and (re-search-forward
+ 			 "POWER_SUPPLY_CHARGE_FULL=\\([0-9]*\\)$" nil t)
+ 			(setq full-string (match-string 1))
+ 			(re-search-forward
+ 			 "POWER_SUPPLY_CHARGE_NOW=\\([0-9]*\\)$" nil t)
+ 			(setq now-string (match-string 1)))
+ 		   (setq charge-full (+ charge-full
+ 					(string-to-number full-string))
+ 			 charge-now  (+ charge-now
+ 					(string-to-number now-string))))
+ 		  ((and (re-search-forward
+ 			 "POWER_SUPPLY_ENERGY_FULL=\\([0-9]*\\)$" nil t)
+ 			(setq full-string (match-string 1))
+ 			(re-search-forward
+ 			 "POWER_SUPPLY_ENERGY_NOW=\\([0-9]*\\)$" nil t)
+ 			(setq now-string (match-string 1)))
+ 		   (setq energy-full (+ energy-full
+ 					(string-to-number full-string))
+ 			 energy-now  (+ energy-now
+ 					(string-to-number now-string)))))))))
+     (list (cons ?c (cond ((or (> charge-full  0) (> charge-now  0))
+ 			  (number-to-string charge-now))
+ 			 ((or (> energy-full  0) (> energy-now  0))
+ 			  (number-to-string energy-now))
+ 			 (t "N/A")))
+ 	  (cons ?B (or charging-state "N/A"))
+ 	  (cons ?p (cond ((> charge-full 0)
+ 			  (format "%.1f"
+ 				  (/ (* 100 charge-now) (float charge-full))))
+ 			 ((> energy-full 0)
+ 			  (format "%.1f"
+ 				  (/ (* 100 energy-now) (float energy-full))))
+ 			 (t "N/A")))
+ 	  (cons ?L (if (file-readable-p "/sys/class/power_supply/AC/online")
+ 		       (if (battery-search-for-one-match-in-files
+ 			    "/sys/class/power_supply/AC/online" "1" 0)
+ 			   "AC"
+ 			 "BAT")
+ 		     "N/A")))))
+ 
+ 
+ \f
  ;;; `pmset' interface for Darwin (OS X).
  
  (defun battery-pmset ()






^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-07 16:35 Battery update Chong Yidong
  2008-08-07 18:09 ` Sven Joachim
@ 2008-08-07 18:09 ` Sven Joachim
  2008-08-07 18:18 ` Lennart Borgman (gmail)
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 42+ messages in thread
From: Sven Joachim @ 2008-08-07 18:09 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 643, Emre Sahin, emacs-devel

On 2008-08-07 18:35 +0200, Chong Yidong wrote:

> The Linux kernel developers have deprecated the longstanding /proc/acpi
> interface, which breaks battery.el on recent kernels (bug#643 and
> bug#660).  Now, the battery information is supposed to come through
> sysfs.
>
> Even though it's the feature freeze, I think it's necessary to ensure
> that battery.el works at least at a basic level.  So, here's a patch
> that adds primitive sysfs support for battery.el.  It doesn't do as much
> as before, because AFAICT the new sysfs interface provides less
> information than the old acpi interface (go figure).
>
> It's lightly tested.  Could someone try this out and see if it does the
> right thing?

The results are funny on my laptop (battery full, online):

Power N/A, battery Full at (-34.7% load, remaining time)

Sven






^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: Battery update
  2008-08-07 16:35 Battery update Chong Yidong
@ 2008-08-07 18:09 ` Sven Joachim
  2008-08-07 18:19   ` Chong Yidong
  2008-08-07 18:19   ` Chong Yidong
  2008-08-07 18:09 ` Sven Joachim
                   ` (4 subsequent siblings)
  5 siblings, 2 replies; 42+ messages in thread
From: Sven Joachim @ 2008-08-07 18:09 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 643, Emre Sahin, emacs-devel

On 2008-08-07 18:35 +0200, Chong Yidong wrote:

> The Linux kernel developers have deprecated the longstanding /proc/acpi
> interface, which breaks battery.el on recent kernels (bug#643 and
> bug#660).  Now, the battery information is supposed to come through
> sysfs.
>
> Even though it's the feature freeze, I think it's necessary to ensure
> that battery.el works at least at a basic level.  So, here's a patch
> that adds primitive sysfs support for battery.el.  It doesn't do as much
> as before, because AFAICT the new sysfs interface provides less
> information than the old acpi interface (go figure).
>
> It's lightly tested.  Could someone try this out and see if it does the
> right thing?

The results are funny on my laptop (battery full, online):

Power N/A, battery Full at (-34.7% load, remaining time)

Sven




^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-07 16:35 Battery update Chong Yidong
  2008-08-07 18:09 ` Sven Joachim
  2008-08-07 18:09 ` Sven Joachim
@ 2008-08-07 18:18 ` Lennart Borgman (gmail)
  2008-08-07 18:18 ` Lennart Borgman (gmail)
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 42+ messages in thread
From: Lennart Borgman (gmail) @ 2008-08-07 18:18 UTC (permalink / raw)
  To: Chong Yidong, 643; +Cc: Emre Sahin, emacs-devel

Chong Yidong wrote:
> Even though it's the feature freeze, I think it's necessary to ensure
> that battery.el works at least at a basic level.

Just out of curiosity: Why is it necessary that battery.el works? Is not 
this information something that the OS normally gives the user without 
Emacs?







^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: bug#643: Battery update
  2008-08-07 16:35 Battery update Chong Yidong
                   ` (2 preceding siblings ...)
  2008-08-07 18:18 ` Lennart Borgman (gmail)
@ 2008-08-07 18:18 ` Lennart Borgman (gmail)
  2008-08-07 18:36   ` Óscar Fuentes
                     ` (5 more replies)
  2008-08-08 17:56 ` Stefan Monnier
  2008-08-08 17:56 ` Stefan Monnier
  5 siblings, 6 replies; 42+ messages in thread
From: Lennart Borgman (gmail) @ 2008-08-07 18:18 UTC (permalink / raw)
  To: Chong Yidong, 643; +Cc: Emre Sahin, emacs-devel

Chong Yidong wrote:
> Even though it's the feature freeze, I think it's necessary to ensure
> that battery.el works at least at a basic level.

Just out of curiosity: Why is it necessary that battery.el works? Is not 
this information something that the OS normally gives the user without 
Emacs?





^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-07 18:09 ` Sven Joachim
  2008-08-07 18:19   ` Chong Yidong
@ 2008-08-07 18:19   ` Chong Yidong
  1 sibling, 0 replies; 42+ messages in thread
From: Chong Yidong @ 2008-08-07 18:19 UTC (permalink / raw)
  To: Sven Joachim; +Cc: 643, Emre Sahin, emacs-devel

Sven Joachim <svenjoac@gmx.de> writes:

> The results are funny on my laptop (battery full, online):
>
> Power N/A, battery Full at (-34.7% load, remaining time)

What does

  M-: (battery-linux-sysfs)

return?






^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: Battery update
  2008-08-07 18:09 ` Sven Joachim
@ 2008-08-07 18:19   ` Chong Yidong
  2008-08-07 19:11     ` bug#643: " Sven Joachim
  2008-08-07 19:11     ` Sven Joachim
  2008-08-07 18:19   ` Chong Yidong
  1 sibling, 2 replies; 42+ messages in thread
From: Chong Yidong @ 2008-08-07 18:19 UTC (permalink / raw)
  To: Sven Joachim; +Cc: 643, Emre Sahin, emacs-devel

Sven Joachim <svenjoac@gmx.de> writes:

> The results are funny on my laptop (battery full, online):
>
> Power N/A, battery Full at (-34.7% load, remaining time)

What does

  M-: (battery-linux-sysfs)

return?




^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: bug#643: Battery update
  2008-08-07 18:18 ` Lennart Borgman (gmail)
@ 2008-08-07 18:36   ` Óscar Fuentes
  2008-08-07 18:54   ` David De La Harpe Golden
                     ` (4 subsequent siblings)
  5 siblings, 0 replies; 42+ messages in thread
From: Óscar Fuentes @ 2008-08-07 18:36 UTC (permalink / raw)
  To: emacs-devel

"Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:

> Just out of curiosity: Why is it necessary that battery.el works? Is
> not this information something that the OS normally gives the user
> without Emacs?

The OS gives the info, but does not display it.

-- 
Oscar





^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-07 18:18 ` Lennart Borgman (gmail)
  2008-08-07 18:36   ` Óscar Fuentes
  2008-08-07 18:54   ` David De La Harpe Golden
@ 2008-08-07 18:54   ` David De La Harpe Golden
  2008-08-10 10:14   ` Yoni Rabkin
                     ` (2 subsequent siblings)
  5 siblings, 0 replies; 42+ messages in thread
From: David De La Harpe Golden @ 2008-08-07 18:54 UTC (permalink / raw)
  To: Lennart Borgman (gmail); +Cc: 643, Chong Yidong, Emre Sahin, emacs-devel

Lennart Borgman (gmail) wrote:
> Chong Yidong wrote:
>> Even though it's the feature freeze, I think it's necessary to ensure
>> that battery.el works at least at a basic level.
> 
> Just out of curiosity: Why is it necessary that battery.el works? Is not
> this information something that the OS normally gives the user without
> Emacs?
> 

not if you're running emacs fullscreen I guess, can't see a tray icon
then...







^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: bug#643: Battery update
  2008-08-07 18:18 ` Lennart Borgman (gmail)
  2008-08-07 18:36   ` Óscar Fuentes
@ 2008-08-07 18:54   ` David De La Harpe Golden
  2008-08-07 21:54     ` Emre Sahin
  2008-08-07 21:54     ` Emre Sahin
  2008-08-07 18:54   ` David De La Harpe Golden
                     ` (3 subsequent siblings)
  5 siblings, 2 replies; 42+ messages in thread
From: David De La Harpe Golden @ 2008-08-07 18:54 UTC (permalink / raw)
  To: Lennart Borgman (gmail); +Cc: 643, Chong Yidong, Emre Sahin, emacs-devel

Lennart Borgman (gmail) wrote:
> Chong Yidong wrote:
>> Even though it's the feature freeze, I think it's necessary to ensure
>> that battery.el works at least at a basic level.
> 
> Just out of curiosity: Why is it necessary that battery.el works? Is not
> this information something that the OS normally gives the user without
> Emacs?
> 

not if you're running emacs fullscreen I guess, can't see a tray icon
then...





^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-07 18:19   ` Chong Yidong
@ 2008-08-07 19:11     ` Sven Joachim
  2008-08-07 19:11     ` Sven Joachim
  1 sibling, 0 replies; 42+ messages in thread
From: Sven Joachim @ 2008-08-07 19:11 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 643, Emre Sahin, emacs-devel

On 2008-08-07 20:19 +0200, Chong Yidong wrote:

> Sven Joachim <svenjoac@gmx.de> writes:
>
>> The results are funny on my laptop (battery full, online):
>>
>> Power N/A, battery Full at (-34.7% load, remaining time)
>
> What does
>
>   M-: (battery-linux-sysfs)
>
> return?

((99 . "3985000") (66 . "Full") (112 . "-34.7") (76 . "N/A"))

Sven






^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: Battery update
  2008-08-07 18:19   ` Chong Yidong
  2008-08-07 19:11     ` bug#643: " Sven Joachim
@ 2008-08-07 19:11     ` Sven Joachim
  2008-08-07 19:28       ` bug#643: " Chong Yidong
  2008-08-07 19:28       ` Chong Yidong
  1 sibling, 2 replies; 42+ messages in thread
From: Sven Joachim @ 2008-08-07 19:11 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 643, Emre Sahin, emacs-devel

On 2008-08-07 20:19 +0200, Chong Yidong wrote:

> Sven Joachim <svenjoac@gmx.de> writes:
>
>> The results are funny on my laptop (battery full, online):
>>
>> Power N/A, battery Full at (-34.7% load, remaining time)
>
> What does
>
>   M-: (battery-linux-sysfs)
>
> return?

((99 . "3985000") (66 . "Full") (112 . "-34.7") (76 . "N/A"))

Sven




^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-07 19:11     ` Sven Joachim
@ 2008-08-07 19:28       ` Chong Yidong
  2008-08-07 19:28       ` Chong Yidong
  1 sibling, 0 replies; 42+ messages in thread
From: Chong Yidong @ 2008-08-07 19:28 UTC (permalink / raw)
  To: Sven Joachim; +Cc: 643, Emre Sahin, emacs-devel

Sven Joachim <svenjoac@gmx.de> writes:

> On 2008-08-07 20:19 +0200, Chong Yidong wrote:
>
>> Sven Joachim <svenjoac@gmx.de> writes:
>>
>>> The results are funny on my laptop (battery full, online):
>>>
>>> Power N/A, battery Full at (-34.7% load, remaining time)
>>
>> What does
>>
>>   M-: (battery-linux-sysfs)
>>
>> return?
>
> ((99 . "3985000") (66 . "Full") (112 . "-34.7") (76 . "N/A"))

What about (from the shell)

  cat /sys/class/power_supply/BAT0/uevent

?






^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: Battery update
  2008-08-07 19:11     ` Sven Joachim
  2008-08-07 19:28       ` bug#643: " Chong Yidong
@ 2008-08-07 19:28       ` Chong Yidong
  2008-08-07 19:45         ` Sven Joachim
  2008-08-07 19:45         ` Sven Joachim
  1 sibling, 2 replies; 42+ messages in thread
From: Chong Yidong @ 2008-08-07 19:28 UTC (permalink / raw)
  To: Sven Joachim; +Cc: 643, Emre Sahin, emacs-devel

Sven Joachim <svenjoac@gmx.de> writes:

> On 2008-08-07 20:19 +0200, Chong Yidong wrote:
>
>> Sven Joachim <svenjoac@gmx.de> writes:
>>
>>> The results are funny on my laptop (battery full, online):
>>>
>>> Power N/A, battery Full at (-34.7% load, remaining time)
>>
>> What does
>>
>>   M-: (battery-linux-sysfs)
>>
>> return?
>
> ((99 . "3985000") (66 . "Full") (112 . "-34.7") (76 . "N/A"))

What about (from the shell)

  cat /sys/class/power_supply/BAT0/uevent

?




^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-07 19:28       ` Chong Yidong
  2008-08-07 19:45         ` Sven Joachim
@ 2008-08-07 19:45         ` Sven Joachim
  1 sibling, 0 replies; 42+ messages in thread
From: Sven Joachim @ 2008-08-07 19:45 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 643, Emre Sahin, emacs-devel

On 2008-08-07 21:28 +0200, Chong Yidong wrote:

> What about (from the shell)
>
>   cat /sys/class/power_supply/BAT0/uevent
>
> ?

No such file or directory, but here's /sys/class/power_supply/BAT1/uevent:

PHYSDEVPATH=/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:2c/PNP0C0A:00
PHYSDEVBUS=acpi
PHYSDEVDRIVER=battery
POWER_SUPPLY_NAME=BAT1
POWER_SUPPLY_TYPE=Battery
POWER_SUPPLY_STATUS=Full
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=10800000
POWER_SUPPLY_VOLTAGE_NOW=12444000
POWER_SUPPLY_CURRENT_NOW=0
POWER_SUPPLY_CHARGE_FULL_DESIGN=4000000
POWER_SUPPLY_CHARGE_FULL=3985000
POWER_SUPPLY_CHARGE_NOW=3985000
POWER_SUPPLY_MODEL_NAME=GC86503SY90 
POWER_SUPPLY_MANUFACTURER=SONY 
POWER_SUPPLY_SERIAL_NUMBER=

Sven






^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: Battery update
  2008-08-07 19:28       ` Chong Yidong
@ 2008-08-07 19:45         ` Sven Joachim
  2008-08-07 20:32           ` bug#643: " Chong Yidong
  2008-08-07 20:32           ` Chong Yidong
  2008-08-07 19:45         ` Sven Joachim
  1 sibling, 2 replies; 42+ messages in thread
From: Sven Joachim @ 2008-08-07 19:45 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 643, Emre Sahin, emacs-devel

On 2008-08-07 21:28 +0200, Chong Yidong wrote:

> What about (from the shell)
>
>   cat /sys/class/power_supply/BAT0/uevent
>
> ?

No such file or directory, but here's /sys/class/power_supply/BAT1/uevent:

PHYSDEVPATH=/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:2c/PNP0C0A:00
PHYSDEVBUS=acpi
PHYSDEVDRIVER=battery
POWER_SUPPLY_NAME=BAT1
POWER_SUPPLY_TYPE=Battery
POWER_SUPPLY_STATUS=Full
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=10800000
POWER_SUPPLY_VOLTAGE_NOW=12444000
POWER_SUPPLY_CURRENT_NOW=0
POWER_SUPPLY_CHARGE_FULL_DESIGN=4000000
POWER_SUPPLY_CHARGE_FULL=3985000
POWER_SUPPLY_CHARGE_NOW=3985000
POWER_SUPPLY_MODEL_NAME=GC86503SY90 
POWER_SUPPLY_MANUFACTURER=SONY 
POWER_SUPPLY_SERIAL_NUMBER=

Sven




^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-07 19:45         ` Sven Joachim
@ 2008-08-07 20:32           ` Chong Yidong
  2008-08-07 20:32           ` Chong Yidong
  1 sibling, 0 replies; 42+ messages in thread
From: Chong Yidong @ 2008-08-07 20:32 UTC (permalink / raw)
  To: Sven Joachim; +Cc: 643, Emre Sahin, emacs-devel

Sven Joachim <svenjoac@gmx.de> writes:

>> What about (from the shell)
>>
>>   cat /sys/class/power_supply/BAT0/uevent
>
> POWER_SUPPLY_VOLTAGE_NOW=12444000
> POWER_SUPPLY_CURRENT_NOW=0
> POWER_SUPPLY_CHARGE_FULL_DESIGN=4000000
> POWER_SUPPLY_CHARGE_FULL=3985000
> POWER_SUPPLY_CHARGE_NOW=3985000
> POWER_SUPPLY_MODEL_NAME=GC86503SY90 
> POWER_SUPPLY_MANUFACTURER=SONY 
> POWER_SUPPLY_SERIAL_NUMBER=

Maybe it's a Lisp integer overflow (I'm guessing you're on a 32-bit
machine).  Does the following patch give better results?

*** trunk/lisp/battery.el.~1.46.~	2008-05-06 03:57:26.000000000 -0400
--- trunk/lisp/battery.el	2008-08-07 16:31:34.000000000 -0400
***************
*** 47,52 ****
--- 47,56 ----
  	((and (eq system-type 'gnu/linux)
  	      (file-directory-p "/proc/acpi/battery"))
  	 'battery-linux-proc-acpi)
+ 	((and (eq system-type 'gnu/linux)
+ 	      (file-directory-p "/sys/class/power_supply/")
+ 	      (directory-files "/sys/class/power_supply/" nil "BAT[0-9]$"))
+ 	 'battery-linux-sysfs)
  	((and (eq system-type 'darwin)
  	      (condition-case nil
  		  (with-temp-buffer
***************
*** 70,75 ****
--- 74,81 ----
  (defcustom battery-echo-area-format
    (cond ((eq battery-status-function 'battery-linux-proc-acpi)
  	 "Power %L, battery %B at %r (%p%% load, remaining time %t)")
+ 	((eq battery-status-function 'battery-linux-sysfs)
+ 	 "Power %L, battery %B (%p%% load)")
  	((eq battery-status-function 'battery-pmset)
  	 "%L power, battery %B (%p%% load, remaining time %t)")
  	(battery-status-function
***************
*** 276,282 ****
  
  (defun battery-linux-proc-acpi ()
    "Get ACPI status information from Linux kernel.
! This function works only with the new `/proc/acpi/' format introduced
  in Linux version 2.4.20 and 2.6.0.
  
  The following %-sequences are provided:
--- 282,288 ----
  
  (defun battery-linux-proc-acpi ()
    "Get ACPI status information from Linux kernel.
! This function works only with the `/proc/acpi/' format introduced
  in Linux version 2.4.20 and 2.6.0.
  
  The following %-sequences are provided:
***************
*** 390,395 ****
--- 396,480 ----
  		       "N/A")))))
  
  \f
+ ;;; `/sys/class/power_supply/BATN' interface for Linux.
+ 
+ (defun battery-linux-sysfs ()
+   "Get ACPI status information from Linux kernel.
+ This function works only with the new `/sys/class/power_supply/BAT'
+ format introduced in Linux version 2.4.25.
+ 
+ The following %-sequences are provided:
+ %c Current capacity (mAh or mWh)
+ %B Battery status (verbose)
+ %p Battery load percentage
+ %L AC line status (verbose)"
+   (let (charging-state
+ 	(charge-full 0.0)
+ 	(charge-now 0.0)
+ 	(energy-full 0.0)
+ 	(energy-now 0.0))
+     ;; SysFS provides information about each battery present in the
+     ;; system in a separate subdirectory.  We are going to merge the
+     ;; available information together.
+     (with-temp-buffer
+       (dolist (dir (ignore-errors
+ 		    (directory-files
+ 		     "/sys/class/power_supply/" t "BAT[0-9]$")))
+ 	(erase-buffer)
+ 	(ignore-errors (insert-file-contents
+ 			(expand-file-name "uevent" dir)))
+ 	(when (re-search-forward "POWER_SUPPLY_PRESENT=1$" nil t)
+ 	  (goto-char (point-min))
+ 	  (and (re-search-forward "POWER_SUPPLY_STATUS=\\(.*\\)$" nil t)
+ 	       ;; On most multi-battery systems, most of the time only
+ 	       ;; one battery is "charging"/"discharging", the others
+ 	       ;; are "unknown".
+ 	       (member charging-state '("Unknown" "Full" nil))
+ 	       (setq charging-state (match-string 1)))
+ 	  (let (full-string now-string)
+ 	    ;; Sysfs may list either charge (mAh) or energy (mWh)
+ 	    (cond ((and (re-search-forward
+ 			 "POWER_SUPPLY_CHARGE_FULL=\\([0-9]*\\)$" nil t)
+ 			(setq full-string (match-string 1))
+ 			(re-search-forward
+ 			 "POWER_SUPPLY_CHARGE_NOW=\\([0-9]*\\)$" nil t)
+ 			(setq now-string (match-string 1)))
+ 		   (setq charge-full (+ charge-full
+ 					(string-to-number full-string))
+ 			 charge-now  (+ charge-now
+ 					(string-to-number now-string))))
+ 		  ((and (re-search-forward
+ 			 "POWER_SUPPLY_ENERGY_FULL=\\([0-9]*\\)$" nil t)
+ 			(setq full-string (match-string 1))
+ 			(re-search-forward
+ 			 "POWER_SUPPLY_ENERGY_NOW=\\([0-9]*\\)$" nil t)
+ 			(setq now-string (match-string 1)))
+ 		   (setq energy-full (+ energy-full
+ 					(string-to-number full-string))
+ 			 energy-now  (+ energy-now
+ 					(string-to-number now-string)))))))))
+     (list (cons ?c (cond ((or (> charge-full  0) (> charge-now  0))
+ 			  (number-to-string charge-now))
+ 			 ((or (> energy-full  0) (> energy-now  0))
+ 			  (number-to-string energy-now))
+ 			 (t "N/A")))
+ 	  (cons ?B (or charging-state "N/A"))
+ 	  (cons ?p (cond ((> charge-full 0)
+ 			  (format "%.1f"
+ 				  (/ (* 100 charge-now) charge-full)))
+ 			 ((> energy-full 0)
+ 			  (format "%.1f"
+ 				  (/ (* 100 energy-now) energy-full)))
+ 			 (t "N/A")))
+ 	  (cons ?L (if (file-readable-p "/sys/class/power_supply/AC/online")
+ 		       (if (battery-search-for-one-match-in-files
+ 			    "/sys/class/power_supply/AC/online" "1" 0)
+ 			   "AC"
+ 			 "BAT")
+ 		     "N/A")))))
+ 
+ 
+ \f
  ;;; `pmset' interface for Darwin (OS X).
  
  (defun battery-pmset ()






^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: Battery update
  2008-08-07 19:45         ` Sven Joachim
  2008-08-07 20:32           ` bug#643: " Chong Yidong
@ 2008-08-07 20:32           ` Chong Yidong
  2008-08-07 22:24             ` Emre Sahin
                               ` (3 more replies)
  1 sibling, 4 replies; 42+ messages in thread
From: Chong Yidong @ 2008-08-07 20:32 UTC (permalink / raw)
  To: Sven Joachim; +Cc: 643, Emre Sahin, emacs-devel

Sven Joachim <svenjoac@gmx.de> writes:

>> What about (from the shell)
>>
>>   cat /sys/class/power_supply/BAT0/uevent
>
> POWER_SUPPLY_VOLTAGE_NOW=12444000
> POWER_SUPPLY_CURRENT_NOW=0
> POWER_SUPPLY_CHARGE_FULL_DESIGN=4000000
> POWER_SUPPLY_CHARGE_FULL=3985000
> POWER_SUPPLY_CHARGE_NOW=3985000
> POWER_SUPPLY_MODEL_NAME=GC86503SY90 
> POWER_SUPPLY_MANUFACTURER=SONY 
> POWER_SUPPLY_SERIAL_NUMBER=

Maybe it's a Lisp integer overflow (I'm guessing you're on a 32-bit
machine).  Does the following patch give better results?

*** trunk/lisp/battery.el.~1.46.~	2008-05-06 03:57:26.000000000 -0400
--- trunk/lisp/battery.el	2008-08-07 16:31:34.000000000 -0400
***************
*** 47,52 ****
--- 47,56 ----
  	((and (eq system-type 'gnu/linux)
  	      (file-directory-p "/proc/acpi/battery"))
  	 'battery-linux-proc-acpi)
+ 	((and (eq system-type 'gnu/linux)
+ 	      (file-directory-p "/sys/class/power_supply/")
+ 	      (directory-files "/sys/class/power_supply/" nil "BAT[0-9]$"))
+ 	 'battery-linux-sysfs)
  	((and (eq system-type 'darwin)
  	      (condition-case nil
  		  (with-temp-buffer
***************
*** 70,75 ****
--- 74,81 ----
  (defcustom battery-echo-area-format
    (cond ((eq battery-status-function 'battery-linux-proc-acpi)
  	 "Power %L, battery %B at %r (%p%% load, remaining time %t)")
+ 	((eq battery-status-function 'battery-linux-sysfs)
+ 	 "Power %L, battery %B (%p%% load)")
  	((eq battery-status-function 'battery-pmset)
  	 "%L power, battery %B (%p%% load, remaining time %t)")
  	(battery-status-function
***************
*** 276,282 ****
  
  (defun battery-linux-proc-acpi ()
    "Get ACPI status information from Linux kernel.
! This function works only with the new `/proc/acpi/' format introduced
  in Linux version 2.4.20 and 2.6.0.
  
  The following %-sequences are provided:
--- 282,288 ----
  
  (defun battery-linux-proc-acpi ()
    "Get ACPI status information from Linux kernel.
! This function works only with the `/proc/acpi/' format introduced
  in Linux version 2.4.20 and 2.6.0.
  
  The following %-sequences are provided:
***************
*** 390,395 ****
--- 396,480 ----
  		       "N/A")))))
  
  \f
+ ;;; `/sys/class/power_supply/BATN' interface for Linux.
+ 
+ (defun battery-linux-sysfs ()
+   "Get ACPI status information from Linux kernel.
+ This function works only with the new `/sys/class/power_supply/BAT'
+ format introduced in Linux version 2.4.25.
+ 
+ The following %-sequences are provided:
+ %c Current capacity (mAh or mWh)
+ %B Battery status (verbose)
+ %p Battery load percentage
+ %L AC line status (verbose)"
+   (let (charging-state
+ 	(charge-full 0.0)
+ 	(charge-now 0.0)
+ 	(energy-full 0.0)
+ 	(energy-now 0.0))
+     ;; SysFS provides information about each battery present in the
+     ;; system in a separate subdirectory.  We are going to merge the
+     ;; available information together.
+     (with-temp-buffer
+       (dolist (dir (ignore-errors
+ 		    (directory-files
+ 		     "/sys/class/power_supply/" t "BAT[0-9]$")))
+ 	(erase-buffer)
+ 	(ignore-errors (insert-file-contents
+ 			(expand-file-name "uevent" dir)))
+ 	(when (re-search-forward "POWER_SUPPLY_PRESENT=1$" nil t)
+ 	  (goto-char (point-min))
+ 	  (and (re-search-forward "POWER_SUPPLY_STATUS=\\(.*\\)$" nil t)
+ 	       ;; On most multi-battery systems, most of the time only
+ 	       ;; one battery is "charging"/"discharging", the others
+ 	       ;; are "unknown".
+ 	       (member charging-state '("Unknown" "Full" nil))
+ 	       (setq charging-state (match-string 1)))
+ 	  (let (full-string now-string)
+ 	    ;; Sysfs may list either charge (mAh) or energy (mWh)
+ 	    (cond ((and (re-search-forward
+ 			 "POWER_SUPPLY_CHARGE_FULL=\\([0-9]*\\)$" nil t)
+ 			(setq full-string (match-string 1))
+ 			(re-search-forward
+ 			 "POWER_SUPPLY_CHARGE_NOW=\\([0-9]*\\)$" nil t)
+ 			(setq now-string (match-string 1)))
+ 		   (setq charge-full (+ charge-full
+ 					(string-to-number full-string))
+ 			 charge-now  (+ charge-now
+ 					(string-to-number now-string))))
+ 		  ((and (re-search-forward
+ 			 "POWER_SUPPLY_ENERGY_FULL=\\([0-9]*\\)$" nil t)
+ 			(setq full-string (match-string 1))
+ 			(re-search-forward
+ 			 "POWER_SUPPLY_ENERGY_NOW=\\([0-9]*\\)$" nil t)
+ 			(setq now-string (match-string 1)))
+ 		   (setq energy-full (+ energy-full
+ 					(string-to-number full-string))
+ 			 energy-now  (+ energy-now
+ 					(string-to-number now-string)))))))))
+     (list (cons ?c (cond ((or (> charge-full  0) (> charge-now  0))
+ 			  (number-to-string charge-now))
+ 			 ((or (> energy-full  0) (> energy-now  0))
+ 			  (number-to-string energy-now))
+ 			 (t "N/A")))
+ 	  (cons ?B (or charging-state "N/A"))
+ 	  (cons ?p (cond ((> charge-full 0)
+ 			  (format "%.1f"
+ 				  (/ (* 100 charge-now) charge-full)))
+ 			 ((> energy-full 0)
+ 			  (format "%.1f"
+ 				  (/ (* 100 energy-now) energy-full)))
+ 			 (t "N/A")))
+ 	  (cons ?L (if (file-readable-p "/sys/class/power_supply/AC/online")
+ 		       (if (battery-search-for-one-match-in-files
+ 			    "/sys/class/power_supply/AC/online" "1" 0)
+ 			   "AC"
+ 			 "BAT")
+ 		     "N/A")))))
+ 
+ 
+ \f
  ;;; `pmset' interface for Darwin (OS X).
  
  (defun battery-pmset ()




^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-07 18:54   ` David De La Harpe Golden
  2008-08-07 21:54     ` Emre Sahin
@ 2008-08-07 21:54     ` Emre Sahin
  1 sibling, 0 replies; 42+ messages in thread
From: Emre Sahin @ 2008-08-07 21:54 UTC (permalink / raw)
  To: David De La Harpe Golden; +Cc: 643, Chong Yidong, emacs-devel

David De La Harpe Golden <david@harpegolden.net> writes:

> Lennart Borgman (gmail) wrote:
>> Chong Yidong wrote:
>>> Even though it's the feature freeze, I think it's necessary to ensure
>>> that battery.el works at least at a basic level.
>> 
>> Just out of curiosity: Why is it necessary that battery.el works? Is not
>> this information something that the OS normally gives the user without
>> Emacs?
>> 
>
> not if you're running emacs fullscreen I guess, can't see a tray icon
> then...
>

I'm using ratpoison WM and using Emacs in full screen. (I suggest you
to try ratpoison, stumpwm or xmonad like "tiling wm"s and find "taste
of emacs" in their screen estate management. By the way, stumpwm has
its configuration in Common Lisp, and xmonad in Haskell, if that makes
a difference for you.)

There are no icons or bars or anything around. There is nothing except
Emacs' mode line to show battery information, hence battery.el. :)

Best Regards,

Emre

-- 
I. Emre Sahin                   @ Ankara, Turkey 
Software Developer & Consultant @ http://ydyazilim.com
Ph.D. Candidate       		@ http://cs.bilkent.edu.tr
Blogger, Writer, Poet  		@ http://emresahin.net
Maybe hears the phone  		@ +90 532 261 8985
Maybe gtalk (or jabber)   	@ i.emre.sahin@gmail.com






^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: bug#643: Battery update
  2008-08-07 18:54   ` David De La Harpe Golden
@ 2008-08-07 21:54     ` Emre Sahin
  2008-08-07 21:54     ` Emre Sahin
  1 sibling, 0 replies; 42+ messages in thread
From: Emre Sahin @ 2008-08-07 21:54 UTC (permalink / raw)
  To: David De La Harpe Golden
  Cc: 643, Chong Yidong, Lennart Borgman (gmail), emacs-devel

David De La Harpe Golden <david@harpegolden.net> writes:

> Lennart Borgman (gmail) wrote:
>> Chong Yidong wrote:
>>> Even though it's the feature freeze, I think it's necessary to ensure
>>> that battery.el works at least at a basic level.
>> 
>> Just out of curiosity: Why is it necessary that battery.el works? Is not
>> this information something that the OS normally gives the user without
>> Emacs?
>> 
>
> not if you're running emacs fullscreen I guess, can't see a tray icon
> then...
>

I'm using ratpoison WM and using Emacs in full screen. (I suggest you
to try ratpoison, stumpwm or xmonad like "tiling wm"s and find "taste
of emacs" in their screen estate management. By the way, stumpwm has
its configuration in Common Lisp, and xmonad in Haskell, if that makes
a difference for you.)

There are no icons or bars or anything around. There is nothing except
Emacs' mode line to show battery information, hence battery.el. :)

Best Regards,

Emre

-- 
I. Emre Sahin                   @ Ankara, Turkey 
Software Developer & Consultant @ http://ydyazilim.com
Ph.D. Candidate       		@ http://cs.bilkent.edu.tr
Blogger, Writer, Poet  		@ http://emresahin.net
Maybe hears the phone  		@ +90 532 261 8985
Maybe gtalk (or jabber)   	@ i.emre.sahin@gmail.com




^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-07 20:32           ` Chong Yidong
  2008-08-07 22:24             ` Emre Sahin
@ 2008-08-07 22:24             ` Emre Sahin
  2008-08-08  5:50             ` Sven Joachim
  2008-08-08  5:50             ` bug#643: " Sven Joachim
  3 siblings, 0 replies; 42+ messages in thread
From: Emre Sahin @ 2008-08-07 22:24 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 643, Emre Sahin, Sven Joachim, emacs-devel




Chong Yidong <cyd@stupidchicken.com> writes:

> Sven Joachim <svenjoac@gmx.de> writes:
>
>>> What about (from the shell)
>>>
>>>   cat /sys/class/power_supply/BAT0/uevent
>>
>> POWER_SUPPLY_VOLTAGE_NOW=12444000
>> POWER_SUPPLY_CURRENT_NOW=0
>> POWER_SUPPLY_CHARGE_FULL_DESIGN=4000000
>> POWER_SUPPLY_CHARGE_FULL=3985000
>> POWER_SUPPLY_CHARGE_NOW=3985000
>> POWER_SUPPLY_MODEL_NAME=GC86503SY90 
>> POWER_SUPPLY_MANUFACTURER=SONY 
>> POWER_SUPPLY_SERIAL_NUMBER=
>
> Maybe it's a Lisp integer overflow (I'm guessing you're on a 32-bit
> machine).  Does the following patch give better results?

Maybe I did something wrong with diff & patch; this is my first
adventure with them in practice. (Yes, really!)

Message is something like: 

Loading /home/iesahin/site-lisp/battery.el (source)...done
setq: Wrong type argument: listp, "/sys/class/power_supply/AC/online"

Emre

-- 
I. Emre Sahin                   @ Ankara, Turkey 
Software Developer & Consultant @ http://ydyazilim.com
Ph.D. Candidate       		@ http://cs.bilkent.edu.tr
Blogger, Writer, Poet  		@ http://emresahin.net
Maybe hears the phone  		@ +90 532 261 8985
Maybe gtalk (or jabber)   	@ i.emre.sahin@gmail.com






^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: Battery update
  2008-08-07 20:32           ` Chong Yidong
@ 2008-08-07 22:24             ` Emre Sahin
  2008-08-08  0:10               ` Chong Yidong
  2008-08-08  0:10               ` Chong Yidong
  2008-08-07 22:24             ` Emre Sahin
                               ` (2 subsequent siblings)
  3 siblings, 2 replies; 42+ messages in thread
From: Emre Sahin @ 2008-08-07 22:24 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 643, Emre Sahin, Sven Joachim, emacs-devel




Chong Yidong <cyd@stupidchicken.com> writes:

> Sven Joachim <svenjoac@gmx.de> writes:
>
>>> What about (from the shell)
>>>
>>>   cat /sys/class/power_supply/BAT0/uevent
>>
>> POWER_SUPPLY_VOLTAGE_NOW=12444000
>> POWER_SUPPLY_CURRENT_NOW=0
>> POWER_SUPPLY_CHARGE_FULL_DESIGN=4000000
>> POWER_SUPPLY_CHARGE_FULL=3985000
>> POWER_SUPPLY_CHARGE_NOW=3985000
>> POWER_SUPPLY_MODEL_NAME=GC86503SY90 
>> POWER_SUPPLY_MANUFACTURER=SONY 
>> POWER_SUPPLY_SERIAL_NUMBER=
>
> Maybe it's a Lisp integer overflow (I'm guessing you're on a 32-bit
> machine).  Does the following patch give better results?

Maybe I did something wrong with diff & patch; this is my first
adventure with them in practice. (Yes, really!)

Message is something like: 

Loading /home/iesahin/site-lisp/battery.el (source)...done
setq: Wrong type argument: listp, "/sys/class/power_supply/AC/online"

Emre

-- 
I. Emre Sahin                   @ Ankara, Turkey 
Software Developer & Consultant @ http://ydyazilim.com
Ph.D. Candidate       		@ http://cs.bilkent.edu.tr
Blogger, Writer, Poet  		@ http://emresahin.net
Maybe hears the phone  		@ +90 532 261 8985
Maybe gtalk (or jabber)   	@ i.emre.sahin@gmail.com




^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-07 22:24             ` Emre Sahin
  2008-08-08  0:10               ` Chong Yidong
@ 2008-08-08  0:10               ` Chong Yidong
  1 sibling, 0 replies; 42+ messages in thread
From: Chong Yidong @ 2008-08-08  0:10 UTC (permalink / raw)
  To: Emre Sahin; +Cc: 643, Sven Joachim, emacs-devel

Emre Sahin <mail@emresahin.net> writes:

> Maybe I did something wrong with diff & patch; this is my first
> adventure with them in practice. (Yes, really!)
>
> Message is something like: 
>
> Loading /home/iesahin/site-lisp/battery.el (source)...done
> setq: Wrong type argument: listp, "/sys/class/power_supply/AC/online"

No, it was a typo in the patch.  Could you replace the line

       (if (battery-search-for-one-match-in-files
	    "/sys/class/power_supply/AC/online" "1" 0)
	   "AC"

on line 471 of the battery.el, with

       (if (battery-search-for-one-match-in-files
	    (list "/sys/class/power_supply/AC/online") "1" 0)
	   "AC"

and try again?






^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: Battery update
  2008-08-07 22:24             ` Emre Sahin
@ 2008-08-08  0:10               ` Chong Yidong
  2008-08-08  5:56                 ` Sven Joachim
                                   ` (3 more replies)
  2008-08-08  0:10               ` Chong Yidong
  1 sibling, 4 replies; 42+ messages in thread
From: Chong Yidong @ 2008-08-08  0:10 UTC (permalink / raw)
  To: Emre Sahin; +Cc: 643, Sven Joachim, emacs-devel

Emre Sahin <mail@emresahin.net> writes:

> Maybe I did something wrong with diff & patch; this is my first
> adventure with them in practice. (Yes, really!)
>
> Message is something like: 
>
> Loading /home/iesahin/site-lisp/battery.el (source)...done
> setq: Wrong type argument: listp, "/sys/class/power_supply/AC/online"

No, it was a typo in the patch.  Could you replace the line

       (if (battery-search-for-one-match-in-files
	    "/sys/class/power_supply/AC/online" "1" 0)
	   "AC"

on line 471 of the battery.el, with

       (if (battery-search-for-one-match-in-files
	    (list "/sys/class/power_supply/AC/online") "1" 0)
	   "AC"

and try again?




^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-07 20:32           ` Chong Yidong
                               ` (2 preceding siblings ...)
  2008-08-08  5:50             ` Sven Joachim
@ 2008-08-08  5:50             ` Sven Joachim
  3 siblings, 0 replies; 42+ messages in thread
From: Sven Joachim @ 2008-08-08  5:50 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 643, Emre Sahin, emacs-devel

On 2008-08-07 22:32 +0200, Chong Yidong wrote:

> Maybe it's a Lisp integer overflow (I'm guessing you're on a 32-bit
> machine).  Does the following patch give better results?

Yes, that looks better.

Sven






^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: Battery update
  2008-08-07 20:32           ` Chong Yidong
  2008-08-07 22:24             ` Emre Sahin
  2008-08-07 22:24             ` Emre Sahin
@ 2008-08-08  5:50             ` Sven Joachim
  2008-08-08  5:50             ` bug#643: " Sven Joachim
  3 siblings, 0 replies; 42+ messages in thread
From: Sven Joachim @ 2008-08-08  5:50 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 643, Emre Sahin, emacs-devel

On 2008-08-07 22:32 +0200, Chong Yidong wrote:

> Maybe it's a Lisp integer overflow (I'm guessing you're on a 32-bit
> machine).  Does the following patch give better results?

Yes, that looks better.

Sven




^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-08  0:10               ` Chong Yidong
  2008-08-08  5:56                 ` Sven Joachim
@ 2008-08-08  5:56                 ` Sven Joachim
  2008-08-08 13:26                 ` Emre Sahin
  2008-08-08 13:26                 ` Emre Sahin
  3 siblings, 0 replies; 42+ messages in thread
From: Sven Joachim @ 2008-08-08  5:56 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 643, Emre Sahin, emacs-devel

On 2008-08-08 02:10 +0200, Chong Yidong wrote:

>        (if (battery-search-for-one-match-in-files
> 	    (list "/sys/class/power_supply/AC/online") "1" 0)
> 	   "AC"

FWIW, I don't have a /sys/class/power_supply/AC directory, but there is
/sys/class/power_supply/ACAD.  Seems the directory has moved somewhere
between kernel 2.6.22 and 2.6.25, see
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=478937.

Sven 






^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: Battery update
  2008-08-08  0:10               ` Chong Yidong
@ 2008-08-08  5:56                 ` Sven Joachim
  2008-08-08  8:19                   ` Eli Zaretskii
  2008-08-08  5:56                 ` bug#643: " Sven Joachim
                                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 42+ messages in thread
From: Sven Joachim @ 2008-08-08  5:56 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 643, Emre Sahin, emacs-devel

On 2008-08-08 02:10 +0200, Chong Yidong wrote:

>        (if (battery-search-for-one-match-in-files
> 	    (list "/sys/class/power_supply/AC/online") "1" 0)
> 	   "AC"

FWIW, I don't have a /sys/class/power_supply/AC directory, but there is
/sys/class/power_supply/ACAD.  Seems the directory has moved somewhere
between kernel 2.6.22 and 2.6.25, see
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=478937.

Sven 




^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: Battery update
  2008-08-08  5:56                 ` Sven Joachim
@ 2008-08-08  8:19                   ` Eli Zaretskii
  2008-08-08 10:52                     ` Johannes Weiner
  0 siblings, 1 reply; 42+ messages in thread
From: Eli Zaretskii @ 2008-08-08  8:19 UTC (permalink / raw)
  To: Sven Joachim; +Cc: cyd, mail, emacs-devel

> From: Sven Joachim <svenjoac@gmx.de>
> Date: Fri, 08 Aug 2008 07:56:43 +0200
> Cc: 643@emacsbugs.donarmstrong.com, Emre Sahin <mail@emresahin.net>,
> 	emacs-devel@gnu.org
> 
> On 2008-08-08 02:10 +0200, Chong Yidong wrote:
> 
> >        (if (battery-search-for-one-match-in-files
> > 	    (list "/sys/class/power_supply/AC/online") "1" 0)
> > 	   "AC"
> 
> FWIW, I don't have a /sys/class/power_supply/AC directory, but there is
> /sys/class/power_supply/ACAD.  Seems the directory has moved somewhere
> between kernel 2.6.22 and 2.6.25, see
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=478937.

So what, we are now going to chase this elusive directory till Kingdom
Come?  I say let's stop supporting this feature until the Linux kernel
developers make up their minds about the place and shape of this
information.  Geez! that's even worse than Microsoft's zigzagging of
some APIs.




^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: Battery update
  2008-08-08  8:19                   ` Eli Zaretskii
@ 2008-08-08 10:52                     ` Johannes Weiner
  0 siblings, 0 replies; 42+ messages in thread
From: Johannes Weiner @ 2008-08-08 10:52 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: mail, cyd, Sven Joachim, emacs-devel

Hi,

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Sven Joachim <svenjoac@gmx.de>
>> Date: Fri, 08 Aug 2008 07:56:43 +0200
>> Cc: 643@emacsbugs.donarmstrong.com, Emre Sahin <mail@emresahin.net>,
>> 	emacs-devel@gnu.org
>> 
>> On 2008-08-08 02:10 +0200, Chong Yidong wrote:
>> 
>> >        (if (battery-search-for-one-match-in-files
>> > 	    (list "/sys/class/power_supply/AC/online") "1" 0)
>> > 	   "AC"
>> 
>> FWIW, I don't have a /sys/class/power_supply/AC directory, but there is
>> /sys/class/power_supply/ACAD.  Seems the directory has moved somewhere
>> between kernel 2.6.22 and 2.6.25, see
>> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=478937.
>
> So what, we are now going to chase this elusive directory till Kingdom
> Come?  I say let's stop supporting this feature until the Linux kernel
> developers make up their minds about the place and shape of this
> information.  Geez! that's even worse than Microsoft's zigzagging of
> some APIs.

From Documentation/feature-removal.txt:

What:   ACPI procfs interface
When:   July 2008
Why:    ACPI sysfs conversion should be finished by January 2008.
        ACPI procfs interface will be removed in July 2008 so that
        there is enough time for the user space to catch up.

But I doubt that it will happen soon, though.

Emacs from CVS should probably support the latest variant of this API.

	Hannes




^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-08  0:10               ` Chong Yidong
                                   ` (2 preceding siblings ...)
  2008-08-08 13:26                 ` Emre Sahin
@ 2008-08-08 13:26                 ` Emre Sahin
  3 siblings, 0 replies; 42+ messages in thread
From: Emre Sahin @ 2008-08-08 13:26 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 643, Emre Sahin, Sven Joachim, emacs-devel

Chong Yidong <cyd@stupidchicken.com> writes:

> Emre Sahin <mail@emresahin.net> writes:
>
>> Maybe I did something wrong with diff & patch; this is my first
>> adventure with them in practice. (Yes, really!)
>>
>> Message is something like: 
>>
>> Loading /home/iesahin/site-lisp/battery.el (source)...done
>> setq: Wrong type argument: listp, "/sys/class/power_supply/AC/online"
>
> No, it was a typo in the patch.  Could you replace the line
>
>        (if (battery-search-for-one-match-in-files
> 	    "/sys/class/power_supply/AC/online" "1" 0)
> 	   "AC"
>
> on line 471 of the battery.el, with
>
>        (if (battery-search-for-one-match-in-files
> 	    (list "/sys/class/power_supply/AC/online") "1" 0)
> 	   "AC"
>
> and try again?

This looks OK. It fills %p in battery-mode-line-format and gives
an equal value with "acpi -b". 

Thank you. I may try to retrieve other (available) information from sysfs
interface by looking your code. I don't know if Sven has anything to
add about interface though. 

I think the interface change is thought for multi-battery systems. If battery.el
should support them, battery.el interface should also change I think,
which is, IMHO, not necessary at the moment. 

Regards,

Emre

-- 
I. Emre Sahin                   @ Ankara, Turkey 
Software Developer & Consultant @ http://ydyazilim.com
Ph.D. Candidate       		@ http://cs.bilkent.edu.tr
Blogger, Writer, Poet  		@ http://emresahin.net
Maybe hears the phone  		@ +90 532 261 8985
Maybe gtalk (or jabber)   	@ i.emre.sahin@gmail.com






^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: Battery update
  2008-08-08  0:10               ` Chong Yidong
  2008-08-08  5:56                 ` Sven Joachim
  2008-08-08  5:56                 ` bug#643: " Sven Joachim
@ 2008-08-08 13:26                 ` Emre Sahin
  2008-08-09  1:02                   ` bug#643: " OFFICE ZERO
  2008-08-09  1:07                   ` OFFICE ZERO
  2008-08-08 13:26                 ` Emre Sahin
  3 siblings, 2 replies; 42+ messages in thread
From: Emre Sahin @ 2008-08-08 13:26 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 643, Emre Sahin, Sven Joachim, emacs-devel

Chong Yidong <cyd@stupidchicken.com> writes:

> Emre Sahin <mail@emresahin.net> writes:
>
>> Maybe I did something wrong with diff & patch; this is my first
>> adventure with them in practice. (Yes, really!)
>>
>> Message is something like: 
>>
>> Loading /home/iesahin/site-lisp/battery.el (source)...done
>> setq: Wrong type argument: listp, "/sys/class/power_supply/AC/online"
>
> No, it was a typo in the patch.  Could you replace the line
>
>        (if (battery-search-for-one-match-in-files
> 	    "/sys/class/power_supply/AC/online" "1" 0)
> 	   "AC"
>
> on line 471 of the battery.el, with
>
>        (if (battery-search-for-one-match-in-files
> 	    (list "/sys/class/power_supply/AC/online") "1" 0)
> 	   "AC"
>
> and try again?

This looks OK. It fills %p in battery-mode-line-format and gives
an equal value with "acpi -b". 

Thank you. I may try to retrieve other (available) information from sysfs
interface by looking your code. I don't know if Sven has anything to
add about interface though. 

I think the interface change is thought for multi-battery systems. If battery.el
should support them, battery.el interface should also change I think,
which is, IMHO, not necessary at the moment. 

Regards,

Emre

-- 
I. Emre Sahin                   @ Ankara, Turkey 
Software Developer & Consultant @ http://ydyazilim.com
Ph.D. Candidate       		@ http://cs.bilkent.edu.tr
Blogger, Writer, Poet  		@ http://emresahin.net
Maybe hears the phone  		@ +90 532 261 8985
Maybe gtalk (or jabber)   	@ i.emre.sahin@gmail.com




^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-07 16:35 Battery update Chong Yidong
                   ` (3 preceding siblings ...)
  2008-08-07 18:18 ` Lennart Borgman (gmail)
@ 2008-08-08 17:56 ` Stefan Monnier
  2008-08-08 17:56 ` Stefan Monnier
  5 siblings, 0 replies; 42+ messages in thread
From: Stefan Monnier @ 2008-08-08 17:56 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 643, Emre Sahin, emacs-devel

> Even though it's the feature freeze, I think it's necessary to ensure
> that battery.el works at least at a basic level.  So, here's a patch

Agreed.

> ! This function works only with the new `/proc/acpi/' format introduced
> ! This function works only with the `/proc/acpi/' format introduced
[...]
> + This function works only with the new `/sys/class/power_supply/BAT'

Given the fix to the docstring for proc-acpi, I think we should try and
avoid making the same mistake.  I.e. drop the "new".


        Stefan






^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: Battery update
  2008-08-07 16:35 Battery update Chong Yidong
                   ` (4 preceding siblings ...)
  2008-08-08 17:56 ` Stefan Monnier
@ 2008-08-08 17:56 ` Stefan Monnier
  2008-08-09  1:00   ` bug#643: " OFFICE ZERO
  2008-08-09 14:13   ` OFFICE ZERO
  5 siblings, 2 replies; 42+ messages in thread
From: Stefan Monnier @ 2008-08-08 17:56 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 643, Emre Sahin, emacs-devel

> Even though it's the feature freeze, I think it's necessary to ensure
> that battery.el works at least at a basic level.  So, here's a patch

Agreed.

> ! This function works only with the new `/proc/acpi/' format introduced
> ! This function works only with the `/proc/acpi/' format introduced
[...]
> + This function works only with the new `/sys/class/power_supply/BAT'

Given the fix to the docstring for proc-acpi, I think we should try and
avoid making the same mistake.  I.e. drop the "new".


        Stefan




^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-08 17:56 ` Stefan Monnier
@ 2008-08-09  1:00   ` OFFICE ZERO
  2008-08-09 14:13   ` OFFICE ZERO
  1 sibling, 0 replies; 42+ messages in thread
From: OFFICE ZERO @ 2008-08-09  1:00 UTC (permalink / raw)
  To: Stefan Monnier, 643

配信不要
----- Original Message ----- 
From: "Stefan Monnier" <monnier@IRO.UMontreal.CA>
To: "Chong Yidong" <cyd@stupidchicken.com>
Cc: <643@emacsbugs.donarmstrong.com>; "Emre Sahin" <mail@emresahin.net>; 
<emacs-devel@gnu.org>
Sent: Saturday, August 09, 2008 2:56 AM
Subject: bug#643: Battery update


>> Even though it's the feature freeze, I think it's necessary to ensure
>> that battery.el works at least at a basic level.  So, here's a patch
>
> Agreed.
>
>> ! This function works only with the new `/proc/acpi/' format introduced
>> ! This function works only with the `/proc/acpi/' format introduced
> [...]
>> + This function works only with the new `/sys/class/power_supply/BAT'
>
> Given the fix to the docstring for proc-acpi, I think we should try and
> avoid making the same mistake.  I.e. drop the "new".
>
>
>        Stefan
>
>
>
> 







^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-08 13:26                 ` Emre Sahin
@ 2008-08-09  1:02                   ` OFFICE ZERO
  2008-08-09  1:07                   ` OFFICE ZERO
  1 sibling, 0 replies; 42+ messages in thread
From: OFFICE ZERO @ 2008-08-09  1:02 UTC (permalink / raw)
  To: Emre Sahin, 643

配信不要
----- Original Message ----- 
From: "Emre Sahin" <i.emre.sahin@gmail.com>
To: "Chong Yidong" <cyd@stupidchicken.com>
Cc: <643@emacsbugs.donarmstrong.com>; "Emre Sahin" <mail@emresahin.net>; 
"Sven Joachim" <svenjoac@gmx.de>; <emacs-devel@gnu.org>
Sent: Friday, August 08, 2008 10:26 PM
Subject: bug#643: Battery update


> Chong Yidong <cyd@stupidchicken.com> writes:
>
>> Emre Sahin <mail@emresahin.net> writes:
>>
>>> Maybe I did something wrong with diff & patch; this is my first
>>> adventure with them in practice. (Yes, really!)
>>>
>>> Message is something like:
>>>
>>> Loading /home/iesahin/site-lisp/battery.el (source)...done
>>> setq: Wrong type argument: listp, "/sys/class/power_supply/AC/online"
>>
>> No, it was a typo in the patch.  Could you replace the line
>>
>>        (if (battery-search-for-one-match-in-files
>>     "/sys/class/power_supply/AC/online" "1" 0)
>>    "AC"
>>
>> on line 471 of the battery.el, with
>>
>>        (if (battery-search-for-one-match-in-files
>>     (list "/sys/class/power_supply/AC/online") "1" 0)
>>    "AC"
>>
>> and try again?
>
> This looks OK. It fills %p in battery-mode-line-format and gives
> an equal value with "acpi -b".
>
> Thank you. I may try to retrieve other (available) information from sysfs
> interface by looking your code. I don't know if Sven has anything to
> add about interface though.
>
> I think the interface change is thought for multi-battery systems. If 
> battery.el
> should support them, battery.el interface should also change I think,
> which is, IMHO, not necessary at the moment.
>
> Regards,
>
> Emre
>
> -- 
> I. Emre Sahin                   @ Ankara, Turkey
> Software Developer & Consultant @ http://ydyazilim.com
> Ph.D. Candidate       @ http://cs.bilkent.edu.tr
> Blogger, Writer, Poet  @ http://emresahin.net
> Maybe hears the phone  @ +90 532 261 8985
> Maybe gtalk (or jabber)   @ i.emre.sahin@gmail.com
>
>
>
> 







^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-08 13:26                 ` Emre Sahin
  2008-08-09  1:02                   ` bug#643: " OFFICE ZERO
@ 2008-08-09  1:07                   ` OFFICE ZERO
  1 sibling, 0 replies; 42+ messages in thread
From: OFFICE ZERO @ 2008-08-09  1:07 UTC (permalink / raw)
  To: Emre Sahin, 643

配信不要
----- Original Message ----- 
From: "Emre Sahin" <i.emre.sahin@gmail.com>
To: "Chong Yidong" <cyd@stupidchicken.com>
Cc: <643@emacsbugs.donarmstrong.com>; "Emre Sahin" <mail@emresahin.net>; 
"Sven Joachim" <svenjoac@gmx.de>; <emacs-devel@gnu.org>
Sent: Friday, August 08, 2008 10:26 PM
Subject: bug#643: Battery update


> Chong Yidong <cyd@stupidchicken.com> writes:
>
>> Emre Sahin <mail@emresahin.net> writes:
>>
>>> Maybe I did something wrong with diff & patch; this is my first
>>> adventure with them in practice. (Yes, really!)
>>>
>>> Message is something like:
>>>
>>> Loading /home/iesahin/site-lisp/battery.el (source)...done
>>> setq: Wrong type argument: listp, "/sys/class/power_supply/AC/online"
>>
>> No, it was a typo in the patch.  Could you replace the line
>>
>>        (if (battery-search-for-one-match-in-files
>>     "/sys/class/power_supply/AC/online" "1" 0)
>>    "AC"
>>
>> on line 471 of the battery.el, with
>>
>>        (if (battery-search-for-one-match-in-files
>>     (list "/sys/class/power_supply/AC/online") "1" 0)
>>    "AC"
>>
>> and try again?
>
> This looks OK. It fills %p in battery-mode-line-format and gives
> an equal value with "acpi -b".
>
> Thank you. I may try to retrieve other (available) information from sysfs
> interface by looking your code. I don't know if Sven has anything to
> add about interface though.
>
> I think the interface change is thought for multi-battery systems. If 
> battery.el
> should support them, battery.el interface should also change I think,
> which is, IMHO, not necessary at the moment.
>
> Regards,
>
> Emre
>
> -- 
> I. Emre Sahin                   @ Ankara, Turkey
> Software Developer & Consultant @ http://ydyazilim.com
> Ph.D. Candidate       @ http://cs.bilkent.edu.tr
> Blogger, Writer, Poet  @ http://emresahin.net
> Maybe hears the phone  @ +90 532 261 8985
> Maybe gtalk (or jabber)   @ i.emre.sahin@gmail.com
>
>
>
> 







^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-08 17:56 ` Stefan Monnier
  2008-08-09  1:00   ` bug#643: " OFFICE ZERO
@ 2008-08-09 14:13   ` OFFICE ZERO
  1 sibling, 0 replies; 42+ messages in thread
From: OFFICE ZERO @ 2008-08-09 14:13 UTC (permalink / raw)
  To: Stefan Monnier, 643

Do'nt   send  me mail  !!!
no tkank you!!

----- Original Message ----- 
From: "Stefan Monnier" <monnier@IRO.UMontreal.CA>
To: "Chong Yidong" <cyd@stupidchicken.com>
Cc: <643@emacsbugs.donarmstrong.com>; "Emre Sahin" <mail@emresahin.net>; 
<emacs-devel@gnu.org>
Sent: Saturday, August 09, 2008 2:56 AM
Subject: bug#643: Battery update


>> Even though it's the feature freeze, I think it's necessary to ensure
>> that battery.el works at least at a basic level.  So, here's a patch
>
> Agreed.
>
>> ! This function works only with the new `/proc/acpi/' format introduced
>> ! This function works only with the `/proc/acpi/' format introduced
> [...]
>> + This function works only with the new `/sys/class/power_supply/BAT'
>
> Given the fix to the docstring for proc-acpi, I think we should try and
> avoid making the same mistake.  I.e. drop the "new".
>
>
>        Stefan
>
>
>
> 







^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: bug#643: Battery update
  2008-08-07 18:18 ` Lennart Borgman (gmail)
                     ` (2 preceding siblings ...)
  2008-08-07 18:54   ` David De La Harpe Golden
@ 2008-08-10 10:14   ` Yoni Rabkin
  2008-08-11  0:10   ` T. V. Raman
  2008-08-11  0:10   ` T. V. Raman
  5 siblings, 0 replies; 42+ messages in thread
From: Yoni Rabkin @ 2008-08-10 10:14 UTC (permalink / raw)
  To: emacs-devel

"Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:

> Chong Yidong wrote:
>> Even though it's the feature freeze, I think it's necessary to ensure
>> that battery.el works at least at a basic level.
>
> Just out of curiosity: Why is it necessary that battery.el works? Is
> not this information something that the OS normally gives the user
> without Emacs?

I use Emacs fullscreen under the Ion2 Tiling Window Manager, and it
doesn't have any "bars" and "docks" which are so popular these days. I
also use Emacs without X11 often. For me, battery.el and wireless.el are
the primary sources for me to get that information.

-- 
   "Cut your own wood and it will warm you twice"




^ permalink raw reply	[flat|nested] 42+ messages in thread

* bug#643: Battery update
  2008-08-07 18:18 ` Lennart Borgman (gmail)
                     ` (3 preceding siblings ...)
  2008-08-10 10:14   ` Yoni Rabkin
@ 2008-08-11  0:10   ` T. V. Raman
  2008-08-11  0:10   ` T. V. Raman
  5 siblings, 0 replies; 42+ messages in thread
From: T. V. Raman @ 2008-08-11  0:10 UTC (permalink / raw)
  To: lennart.borgman; +Cc: 643, cyd, mail, emacs-devel

Define "OS". The OS is gnu/linux, not gnome or KDE -- those are
user environments. Emacs is also a user environment.


>>>>> "Lennart" == Lennart Borgman (gmail) <lennart.borgman@gmail.com> writes:
    Lennart> Chong Yidong wrote:
    >> Even though it's the feature freeze, I think it's
    >> necessary to ensure that battery.el works at least at a
    >> basic level.
    Lennart> 
    Lennart> Just out of curiosity: Why is it necessary that
    Lennart> battery.el works? Is not this information something
    Lennart> that the OS normally gives the user without Emacs?
    Lennart> 
    Lennart> 

-- 
Best Regards,
--raman

      
Email:  raman@users.sf.net
WWW:    http://emacspeak.sf.net/raman/
AIM:    emacspeak       GTalk: tv.raman.tv@gmail.com
PGP:    http://emacspeak.sf.net/raman/raman-almaden.asc
Google: tv+raman 
IRC:    irc://irc.freenode.net/#emacs






^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: bug#643: Battery update
  2008-08-07 18:18 ` Lennart Borgman (gmail)
                     ` (4 preceding siblings ...)
  2008-08-11  0:10   ` T. V. Raman
@ 2008-08-11  0:10   ` T. V. Raman
  5 siblings, 0 replies; 42+ messages in thread
From: T. V. Raman @ 2008-08-11  0:10 UTC (permalink / raw)
  To: lennart.borgman; +Cc: 643, cyd, mail, emacs-devel

Define "OS". The OS is gnu/linux, not gnome or KDE -- those are
user environments. Emacs is also a user environment.


>>>>> "Lennart" == Lennart Borgman (gmail) <lennart.borgman@gmail.com> writes:
    Lennart> Chong Yidong wrote:
    >> Even though it's the feature freeze, I think it's
    >> necessary to ensure that battery.el works at least at a
    >> basic level.
    Lennart> 
    Lennart> Just out of curiosity: Why is it necessary that
    Lennart> battery.el works? Is not this information something
    Lennart> that the OS normally gives the user without Emacs?
    Lennart> 
    Lennart> 

-- 
Best Regards,
--raman

      
Email:  raman@users.sf.net
WWW:    http://emacspeak.sf.net/raman/
AIM:    emacspeak       GTalk: tv.raman.tv@gmail.com
PGP:    http://emacspeak.sf.net/raman/raman-almaden.asc
Google: tv+raman 
IRC:    irc://irc.freenode.net/#emacs




^ permalink raw reply	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2008-08-11  0:10 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-07 16:35 Battery update Chong Yidong
2008-08-07 18:09 ` Sven Joachim
2008-08-07 18:19   ` Chong Yidong
2008-08-07 19:11     ` bug#643: " Sven Joachim
2008-08-07 19:11     ` Sven Joachim
2008-08-07 19:28       ` bug#643: " Chong Yidong
2008-08-07 19:28       ` Chong Yidong
2008-08-07 19:45         ` Sven Joachim
2008-08-07 20:32           ` bug#643: " Chong Yidong
2008-08-07 20:32           ` Chong Yidong
2008-08-07 22:24             ` Emre Sahin
2008-08-08  0:10               ` Chong Yidong
2008-08-08  5:56                 ` Sven Joachim
2008-08-08  8:19                   ` Eli Zaretskii
2008-08-08 10:52                     ` Johannes Weiner
2008-08-08  5:56                 ` bug#643: " Sven Joachim
2008-08-08 13:26                 ` Emre Sahin
2008-08-09  1:02                   ` bug#643: " OFFICE ZERO
2008-08-09  1:07                   ` OFFICE ZERO
2008-08-08 13:26                 ` Emre Sahin
2008-08-08  0:10               ` Chong Yidong
2008-08-07 22:24             ` Emre Sahin
2008-08-08  5:50             ` Sven Joachim
2008-08-08  5:50             ` bug#643: " Sven Joachim
2008-08-07 19:45         ` Sven Joachim
2008-08-07 18:19   ` Chong Yidong
2008-08-07 18:09 ` Sven Joachim
2008-08-07 18:18 ` Lennart Borgman (gmail)
2008-08-07 18:18 ` Lennart Borgman (gmail)
2008-08-07 18:36   ` Óscar Fuentes
2008-08-07 18:54   ` David De La Harpe Golden
2008-08-07 21:54     ` Emre Sahin
2008-08-07 21:54     ` Emre Sahin
2008-08-07 18:54   ` David De La Harpe Golden
2008-08-10 10:14   ` Yoni Rabkin
2008-08-11  0:10   ` T. V. Raman
2008-08-11  0:10   ` T. V. Raman
2008-08-08 17:56 ` Stefan Monnier
2008-08-08 17:56 ` Stefan Monnier
2008-08-09  1:00   ` bug#643: " OFFICE ZERO
2008-08-09 14:13   ` OFFICE ZERO
  -- strict thread matches above, loose matches on Subject: below --
2008-08-07 16:35 Chong Yidong

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.