X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev%2Fudevadm-info.c;h=b3b31ebafe459abc971527b05a2f82c51448989a;hb=dc1791a9e6b59bd070a5f9c01b2214a1f8d69a82;hp=519dc4a45bf586fe27d96cacfe72c3fc98f0201d;hpb=fc206fbe3e326f5acfc64243f9e04eecad121e27;p=elogind.git diff --git a/udev/udevadm-info.c b/udev/udevadm-info.c index 519dc4a45..b3b31ebaf 100644 --- a/udev/udevadm-info.c +++ b/udev/udevadm-info.c @@ -60,7 +60,7 @@ static void print_all_attributes(struct udev_device *device, const char *key) value = udev_device_get_sysattr_value(device, dent->d_name); if (value == NULL) continue; - dbg(udev, "attr '%s'='%s'(%zi)\n", dent->d_name, value, len); + dbg(udev, "attr '%s'='%s'\n", dent->d_name, value); /* skip nonprintable attributes */ len = strlen(value); @@ -142,18 +142,6 @@ static void print_record(struct udev_device *device) if (i != 0) printf("L: %i\n", i); - i = udev_device_get_num_fake_partitions(device); - if (i != 0) - printf("A: %u\n", i); - - i = udev_device_get_ignore_remove(device); - if (i != 0) - printf("R: %u\n", i); - - i = udev_device_get_watch_handle(device); - if (i >= 0) - printf("W: %u\n", i); - udev_list_entry_foreach(list_entry, udev_device_get_devlinks_list_entry(device)) { len = strlen(udev_get_dev_path(udev_device_get_udev(device))); printf("S: %s\n", &udev_list_entry_get_name(list_entry)[len+1]); @@ -166,7 +154,7 @@ static void print_record(struct udev_device *device) printf("\n"); } -static int stat_device(const char *name, int export, const char *prefix) +static int stat_device(const char *name, bool export, const char *prefix) { struct stat statbuf; @@ -210,8 +198,8 @@ static int export_devices(struct udev *udev) int udevadm_info(struct udev *udev, int argc, char *argv[]) { struct udev_device *device = NULL; - int root = 0; - int export = 0; + bool root = 0; + bool export = 0; const char *export_prefix = NULL; char path[UTIL_PATH_SIZE]; char name[UTIL_PATH_SIZE]; @@ -250,11 +238,11 @@ int udevadm_info(struct udev *udev, int argc, char *argv[]) QUERY_ALL, } query = QUERY_NONE; - while (1) { + for (;;) { int option; struct stat statbuf; - option = getopt_long(argc, argv, "aed:n:p:q:rxPVh", options, NULL); + option = getopt_long(argc, argv, "aed:n:p:q:rxP:Vh", options, NULL); if (option == -1) break; @@ -336,7 +324,7 @@ int udevadm_info(struct udev *udev, int argc, char *argv[]) case 'r': if (action == ACTION_NONE) action = ACTION_ROOT; - root = 1; + root = true; break; case 'd': action = ACTION_DEVICE_ID_FILE; @@ -349,7 +337,7 @@ int udevadm_info(struct udev *udev, int argc, char *argv[]) export_devices(udev); goto exit; case 'x': - export = 1; + export = true; break; case 'P': export_prefix = optarg; @@ -388,23 +376,24 @@ int udevadm_info(struct udev *udev, int argc, char *argv[]) } switch(query) { - case QUERY_NAME: + case QUERY_NAME: { + const char *node = udev_device_get_devnode(device); + + if (node == NULL) { + fprintf(stderr, "no device node found\n"); + rc = 5; + goto exit; + } + if (root) { printf("%s\n", udev_device_get_devnode(device)); } else { - size_t len; - const char *node; - - len = strlen(udev_get_dev_path(udev)); - node = udev_device_get_devnode(device); - if (node == NULL) { - fprintf(stderr, "no device node found\n"); - rc = 5; - goto exit; - } - printf("%s\n", &udev_device_get_devnode(device)[len+1]); + size_t len = strlen(udev_get_dev_path(udev)); + + printf("%s\n", &udev_device_get_devnode(device)[len+1]); } break; + } case QUERY_SYMLINK: list_entry = udev_device_get_devlinks_list_entry(device); while (list_entry != NULL) { @@ -428,7 +417,17 @@ int udevadm_info(struct udev *udev, int argc, char *argv[]) case QUERY_PROPERTY: list_entry = udev_device_get_properties_list_entry(device); while (list_entry != NULL) { - printf("%s=%s\n", udev_list_entry_get_name(list_entry), udev_list_entry_get_value(list_entry)); + if (export) { + const char *prefix = export_prefix; + + if (prefix == NULL) + prefix = ""; + printf("%s%s='%s'\n", prefix, + udev_list_entry_get_name(list_entry), + udev_list_entry_get_value(list_entry)); + } else { + printf("%s=%s\n", udev_list_entry_get_name(list_entry), udev_list_entry_get_value(list_entry)); + } list_entry = udev_list_entry_get_next(list_entry); } break;