From d188b9e46e2800dfacccee7c5ccfd5fde90550d4 Mon Sep 17 00:00:00 2001 From: David Zeuthen Date: Mon, 15 Aug 2011 12:18:34 -0400 Subject: [PATCH] Workaround get_usec_since_initialized() not always working in libudev Signed-off-by: David Zeuthen --- src/udiskslinuxdrive.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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: -- 2.7.4