From: David Zeuthen Date: Mon, 15 Aug 2011 16:18:34 +0000 (-0400) Subject: Workaround get_usec_since_initialized() not always working in libudev X-Git-Tag: upstream/2.1.2~480^2~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d188b9e46e2800dfacccee7c5ccfd5fde90550d4;p=platform%2Fupstream%2Fudisks2.git Workaround get_usec_since_initialized() not always working in libudev Signed-off-by: David Zeuthen --- diff --git a/src/udiskslinuxdrive.c b/src/udiskslinuxdrive.c index 5c2e3c5..940fd33 100644 --- a/src/udiskslinuxdrive.c +++ b/src/udiskslinuxdrive.c @@ -920,9 +920,23 @@ drive_update (UDisksLinuxDrive *drive, drive_set_rotation_rate (drive, iface, device); drive_set_connection_bus (drive, iface, device); +#if 0 /* This ensures that devices are shown in the order they are detected */ sort_key = g_strdup_printf ("%" G_GUINT64_FORMAT, time (NULL) * G_USEC_PER_SEC - g_udev_device_get_usec_since_initialized (device)); +#else + /* need to use this lame hack until libudev's get_usec_since_initialized() works */ + { + const gchar *name; + name = g_udev_device_get_name (device); + if (g_str_has_prefix (name, "sr")) + sort_key = g_strdup_printf ("z0_%s", name); + else if (g_str_has_prefix (name, "sd")) + sort_key = g_strdup_printf ("z1_%s", name); + else + sort_key = g_strdup (name); + } +#endif udisks_drive_set_sort_key (iface, sort_key); g_free (sort_key); out: