chiark / gitweb /
[PATCH] fix up some duplicated function compiler warnings in libsysfs
[elogind.git] / libsysfs / sysfs_device.c
index 2a5353e6f74ab586063eb0050ca2b6f1cffed362..323a43dac13ccfe93e93917ffd31318d85629854 100644 (file)
@@ -28,7 +28,6 @@ static int confirm_device_bus(struct sysfs_device *dev,
 {
         struct sysfs_link *devlink = NULL;
         unsigned char devpath[SYSFS_PATH_MAX];
-       unsigned char *s = NULL;
        int result = 0;
 
         if (busname == NULL || bus_id == NULL)
@@ -37,10 +36,9 @@ static int confirm_device_bus(struct sysfs_device *dev,
         if (sysfs_get_mnt_path(devpath, SYSFS_PATH_MAX) != 0)
                 return -1;
 
-       s = &devpath[strlen(devpath)-1];
-       if (strncmp(s, "/", 1) == 0)
-               *s = '\0';
-        strcat(devpath, SYSFS_BUS_DIR);
+       if (sysfs_trailing_slash(devpath) == 0)
+               strcat(devpath, "/");
+        strcat(devpath, SYSFS_BUS_NAME);
         strcat(devpath, "/");
         strcat(devpath, busname);
         strcat(devpath, SYSFS_DEVICES_DIR);
@@ -310,7 +308,10 @@ static struct sysfs_directory *open_root_device_dir(const unsigned char *name)
                return NULL;
        }
 
-       strcat(rootpath, SYSFS_DEVICES_DIR);
+       if (sysfs_trailing_slash(rootpath) == 0)
+               strcat(rootpath, "/");
+               
+       strcat(rootpath, SYSFS_DEVICES_NAME);
        strcat(rootpath, "/");
        strcat(rootpath, name);
        rdir = sysfs_open_directory(rootpath);
@@ -439,7 +440,9 @@ static int get_device_absolute_path(const unsigned char *device,
                dprintf ("Sysfs not supported on this system\n");
                return -1;
        }
-       strcat(bus_path, SYSFS_BUS_DIR);
+       if (sysfs_trailing_slash(bus_path) == 0)
+               strcat(bus_path, "/");
+       strcat(bus_path, SYSFS_BUS_NAME);
        strcat(bus_path, "/");
        strcat(bus_path, bus);
        strcat(bus_path, SYSFS_DEVICES_DIR);