The function partition_print is used to print out some basic information of a partition. It was implemented in v1.8 but ripped out later.
Compared with the old version of this function, some changes are introduced to restore it. 1. ped_file_system_probe persede ped_file_system_open and ped_file_system_close to get the file system type. 2. the file system resizing part is removed. Signed-off-by: Wang Dong <[email protected]> Reviewed-by: Andre Wild <[email protected]>¶¶ Signed-off-by: Hendrik Brueckner <[email protected]>¶ --- doc/parted.texi | 4 +--- parted/parted.c | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/doc/parted.texi b/doc/parted.texi index ac23ef6..c8a62bc 100644 --- a/doc/parted.texi +++ b/doc/parted.texi @@ -692,9 +692,7 @@ Minor Start End Type Filesystem Flags Minor: 1 Flags: boot, lba File System: fat32 -Size: 945.000Mb (0%) -Minimum size: 84.361Mb (0%) -Maximum size: 2445.679Mb (100%) +Size: 945.0Mb (0%) @end group @end example @end deffn diff --git a/parted/parted.c b/parted/parted.c index 90d06e0..50b0bab 100644 --- a/parted/parted.c +++ b/parted/parted.c @@ -924,9 +924,47 @@ partition_print_flags (PedPartition const *part) return res; } +/* Prints a sector out, first in compact form, and then with a percentage. + * Eg: 32Gb (40%) + */ +static void +print_sector_compact_and_percent (PedSector sector, PedDevice* dev) +{ + char* compact; + char* percent; + + if (ped_unit_get_default() == PED_UNIT_PERCENT) + compact = ped_unit_format (dev, sector); + else + compact = ped_unit_format_custom (dev, sector, PED_UNIT_COMPACT); + + percent = ped_unit_format_custom (dev, sector, PED_UNIT_PERCENT); + + printf ("%s (%s)\n", compact, percent); + + free (compact); + free (percent); +} + static int partition_print (PedPartition* part) { + PedFileSystemType* fs_type; + char* flags; + + fs_type = ped_file_system_probe (&part->geom); + flags = partition_print_flags (part); + + printf (_("Minor: %d\n"), part->num); + printf (_("Flags: %s\n"), flags); + printf (_("File System: %s\n"), fs_type? fs_type->name : _("Not detected")); + printf (_("Size: ")); + print_sector_compact_and_percent (part->geom.length, part->geom.dev); + + printf ("\n"); + + free (flags); + return 1; } -- 2.8.4

