From 70db9f988b23020b353f1936b024a6fc49afe6c5 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Tue, 16 Mar 2021 12:02:13 +0100 Subject: gudev: Fix 'Y' in _sysfs_attr_as_boolean_uncached() The changes made haphazardly in e186dac0 and 31e31d52 were documented for _sysfs_attr_as_boolean_uncached() but not implemented. --- gudev/gudevdevice.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/gudev/gudevdevice.c b/gudev/gudevdevice.c index b38bd4d..ec792da 100644 --- a/gudev/gudevdevice.c +++ b/gudev/gudevdevice.c @@ -1171,18 +1171,26 @@ g_udev_device_get_sysfs_attr_as_boolean_uncached (GUdevDevice *device, const gchar *name) { gboolean result; - const gchar *s; + const gchar *raw; + g_autofree char *truncated = NULL; + const char *s; g_return_val_if_fail (G_UDEV_IS_DEVICE (device), FALSE); g_return_val_if_fail (name != NULL, FALSE); result = FALSE; - s = g_udev_device_get_sysfs_attr_uncached (device, name); - if (s == NULL) + raw = g_udev_device_get_sysfs_attr_uncached (device, name); + if (raw == NULL) goto out; - if (strcmp (s, "1") == 0 || g_ascii_strcasecmp (s, "true") == 0) + truncated = truncate_at_linefeed (raw); + s = truncated ?: raw; + if (strcmp (s, "1") == 0 || + g_ascii_strcasecmp (s, "true") == 0 || + g_ascii_strcasecmp (s, "y") == 0) { result = TRUE; + } + out: return result; } -- cgit v1.2.1