]> git.ipfire.org Git - thirdparty/util-linux.git/blobdiff - disk-utils/fdisk-list.c
misc: consolidate smartcols error messages
[thirdparty/util-linux.git] / disk-utils / fdisk-list.c
index 82216f09e566401f1b93ac9babf4d485194704c8..0985bd51fb44a09424479e74ec684378c640367b 100644 (file)
@@ -34,10 +34,23 @@ static int is_ide_cdrom_or_tape(char *device)
        return ret;
 }
 
+void list_disk_identifier(struct fdisk_context *cxt)
+{
+       struct fdisk_label *lb = fdisk_get_label(cxt, NULL);
+       char *id = NULL;
+
+       if (fdisk_has_label(cxt))
+               fdisk_info(cxt, _("Disklabel type: %s"),
+                               fdisk_label_get_name(lb));
+
+       if (!fdisk_is_details(cxt) && fdisk_get_disklabel_id(cxt, &id) == 0 && id) {
+               fdisk_info(cxt, _("Disk identifier: %s"), id);
+               free(id);
+       }
+}
 
 void list_disk_geometry(struct fdisk_context *cxt)
 {
-       char *id = NULL;
        struct fdisk_label *lb = fdisk_get_label(cxt, NULL);
        uint64_t bytes = fdisk_get_nsectors(cxt) * fdisk_get_sector_size(cxt);
        char *strsz = size_to_human_string(SIZE_SUFFIX_SPACE
@@ -71,12 +84,8 @@ void list_disk_geometry(struct fdisk_context *cxt)
        if (fdisk_get_alignment_offset(cxt))
                fdisk_info(cxt, _("Alignment offset: %lu bytes"),
                                fdisk_get_alignment_offset(cxt));
-       if (fdisk_has_label(cxt))
-               fdisk_info(cxt, _("Disklabel type: %s"),
-                               fdisk_label_get_name(lb));
 
-       if (!fdisk_is_details(cxt) && fdisk_get_disklabel_id(cxt, &id) == 0 && id)
-               fdisk_info(cxt, _("Disk identifier: %s"), id);
+       list_disk_identifier(cxt);
 }
 
 void list_disklabel(struct fdisk_context *cxt)
@@ -160,7 +169,10 @@ void list_disklabel(struct fdisk_context *cxt)
 
                        if (fdisk_partition_to_string(pa, cxt, ids[i], &data))
                                continue;
-                       scols_line_refer_data(ln, i, data);
+                       if (scols_line_refer_data(ln, i, data)) {
+                               fdisk_warn(cxt, _("failed to add output data"));
+                               goto done;
+                       }
                }
        }
 
@@ -182,6 +194,13 @@ void list_disklabel(struct fdisk_context *cxt)
                                          fdisk_partition_get_partno(pa) + 1);
                        post++;
                }
+               if (fdisk_partition_has_wipe(cxt, pa)) {
+                       if (!post)
+                               fdisk_info(cxt, ""); /* line break */
+                        fdisk_info(cxt, _("Filesystem/RAID signature on partition %zu will be wiped."),
+                                        fdisk_partition_get_partno(pa) + 1);
+                        post++;
+               }
        }
 
        if (fdisk_table_wrong_order(tb)) {
@@ -250,7 +269,10 @@ void list_freespace(struct fdisk_context *cxt)
                for (i = 0; i < ARRAY_SIZE(colids); i++) {
                        if (fdisk_partition_to_string(pa, cxt, colids[i], &data))
                                continue;
-                       scols_line_refer_data(ln, i, data);
+                       if (scols_line_refer_data(ln, i, data)) {
+                               fdisk_warn(cxt, _("failed to add output data"));
+                               goto done;
+                       }
                }
 
                if (fdisk_partition_has_size(pa))