X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udevtest.c;h=22627c05a7eb9c59dc63f2fb689817964c71f869;hb=775f5e35871b665f9cf95698928377c49e3b13fa;hp=22fd3735c2f96a9b8e208b18434edf188fc2c5f7;hpb=1aa1e24848903d11780db1ade355be73ad61a937;p=elogind.git diff --git a/udevtest.c b/udevtest.c index 22fd3735c..22627c05a 100644 --- a/udevtest.c +++ b/udevtest.c @@ -52,7 +52,6 @@ int main(int argc, char *argv[], char *envp[]) { struct udev_rules rules; char *devpath; - char temp[PATH_SIZE]; struct udevice *udev; struct sysfs_device *dev; int retval; @@ -70,19 +69,14 @@ int main(int argc, char *argv[], char *envp[]) return 1; } - /* remove sysfs_path if given */ + sysfs_init(); + + /* remove /sys if given */ if (strncmp(argv[1], sysfs_path, strlen(sysfs_path)) == 0) devpath = &argv[1][strlen(sysfs_path)]; else - if (argv[1][0] != '/') { - /* prepend '/' if missing */ - snprintf(temp, sizeof(temp), "/%s", argv[1]); - temp[sizeof(temp)-1] = '\0'; - devpath = temp; - } else - devpath = argv[1]; + devpath = argv[1]; - sysfs_init(); udev_rules_init(&rules, 0); dev = sysfs_device_get(devpath); @@ -113,11 +107,16 @@ int main(int argc, char *argv[], char *envp[]) info("looking at device '%s' from subsystem '%s'", udev->dev->devpath, udev->dev->subsystem); retval = udev_device_event(&rules, udev); - if (retval == 0) { + if (retval == 0 && !udev->ignore_device && udev_run) { struct name_entry *name_loop; - list_for_each_entry(name_loop, &udev->run_list, node) - info("run: '%s'", name_loop->name); + list_for_each_entry(name_loop, &udev->run_list, node) { + char program[PATH_SIZE]; + + strlcpy(program, name_loop->name, sizeof(program)); + udev_rules_apply_format(udev, program, sizeof(program)); + info("run: '%s'", program); + } } exit: