chiark / gitweb /
always include config.h from Makefile
[elogind.git] / udev / udevadm-info.c
index a2858e5dc94a161992892fe01220f49479272a15..3cd889fe00602a8ac2e6c51dfa7f35b3d89058cc 100644 (file)
@@ -15,8 +15,6 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "config.h"
-
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
@@ -165,18 +163,10 @@ static void print_record(struct udev_device *device)
        printf("\n");
 }
 
-static int export_all_cb(struct udev *udev,
-                        const char *devpath, const char *subsystem, const char *name,
-                        void *data)
+static int export_all_cb(struct udev_device *device, void *data)
 {
-       struct udev_device *device;
-
-       device = udev_device_new_from_devpath(udev, devpath);
-       if (device == NULL)
-               return 0;
        if (udev_device_get_devname(device) != NULL)
                print_record(device);
-       udev_device_unref(device);
        return 0;
 }
 
@@ -215,7 +205,9 @@ static struct udev_device *lookup_device_by_name(struct udev *udev, const char *
                        info(udev, "skip '%s', dev_t doesn't match\n", udevice_loop->name);
                        goto next;
                }
-               udev_device = udev_device_new_from_devpath(udev, udevice_loop->dev->devpath);
+               util_strlcpy(filename, udev_get_sys_path(udev), sizeof(filename));
+               util_strlcat(filename,  udevice_loop->dev->devpath, sizeof(filename));
+               udev_device = udev_device_new_from_syspath(udev, filename);
                udev_device_cleanup(udevice_loop);
                break;
 next:
@@ -348,13 +340,15 @@ int udevadm_info(struct udev *udev, int argc, char *argv[])
                                rc = 2;
                                goto exit;
                        }
-                       /* remove /sys if given */
-                       if (strncmp(optarg, udev_get_sys_path(udev), strlen(udev_get_sys_path(udev))) == 0)
-                               util_strlcpy(path, &optarg[strlen(udev_get_sys_path(udev))], sizeof(path));
-                       else
+                       /* add /sys if needed */
+                       if (strncmp(optarg, udev_get_sys_path(udev), strlen(udev_get_sys_path(udev))) != 0) {
+                               util_strlcpy(path, udev_get_sys_path(udev), sizeof(path));
+                               util_strlcat(path, optarg, sizeof(path));
+                       } else {
                                util_strlcpy(path, optarg, sizeof(path));
+                       }
                        util_remove_trailing_chars(path, '/');
-                       device = udev_device_new_from_devpath(udev, path);
+                       device = udev_device_new_from_syspath(udev, path);
                        break;
                case 'q':
                        action = ACTION_QUERY;