Sophie

Sophie

distrib > Fedora > 13 > i386 > media > updates-src > by-pkgid > 2d32152b8011ac85f607e062a0ade538 > files > 3

pm-utils-1.2.6.1-4.fc13.src.rpm

diff -up pm-utils-1.2.6.1/src/on_ac_power.jx pm-utils-1.2.6.1/src/on_ac_power
--- pm-utils-1.2.6.1/src/on_ac_power.jx	2009-06-13 21:56:09.000000000 -0400
+++ pm-utils-1.2.6.1/src/on_ac_power	2010-03-11 14:21:32.000000000 -0500
@@ -8,8 +8,9 @@
 # NOTE: Batteries are not good indicators unless we also check their type,
 #       as some peripherals have batteries.
 #
-# Copyright 2006 Red Hat, Inc.
-# Copyright 2006 Richard Hughes
+# Copyright 2010 Red Hat, Inc.
+#
+# Author: Adam Jackson <ajax@redhat.com>
 #
 # Based on work from:
 #    Richard Hughes <hughsient@gmail.com>
@@ -28,20 +29,22 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-#
 
-# Check for AC/DC/etc adapters
-ac_adapters="$(hal-find-by-capability --capability ac_adapter)"
+adaptors_present=0
+
+for i in /sys/class/power_supply/* ; do
+    # check that it exists; the glob might not expand, after all.
+    [ -d "$i" ] || continue
+
+    # if it's not an AC adaptor, ignore it
+    grep -qi mains "$i"/type || continue
+
+    adaptors_present=1
 
-# If there are no AC adapters, it is most likely a desktop.
-# Assume online, since we have no data.
-[ -z "$ac_adapters" ] && exit 0
-
-# If any of them are online, then we're done.
-for device in $ac_adapters ; do
-	present="$(hal-get-property --udi "$device" --key ac_adapter.present)"
-	[ "$present" = "true" ] && exit 0
+    # if it's an AC adaptor and it's online, we're done
+    [ `cat "$i"/online` -eq 1 ] && exit 0
 done
 
-# If there are adapters, but none are online, we're not on AC.
-exit 1
+# if there are adaptors, they're offline.
+# if there aren't, assume AC.
+exit $adaptors_present