summaryrefslogtreecommitdiffstats
path: root/libfdisk/src/partition.c
diff options
context:
space:
mode:
authorKarel Zak2015-01-19 11:24:48 +0100
committerKarel Zak2015-01-19 11:24:48 +0100
commit354f8cc8cf06de44656fb83705c57062d04d1565 (patch)
treea880a881ba452dff0a14d4f704026779e901a93b /libfdisk/src/partition.c
parentlibmount: revert "read mtab on remount" idea (diff)
downloadkernel-qcow2-util-linux-354f8cc8cf06de44656fb83705c57062d04d1565.tar.gz
kernel-qcow2-util-linux-354f8cc8cf06de44656fb83705c57062d04d1565.tar.xz
kernel-qcow2-util-linux-354f8cc8cf06de44656fb83705c57062d04d1565.zip
libfdiskL add API to print SIZE field in bytes
The patch also add --bytes to fdisk and fdisk. Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libfdisk/src/partition.c')
-rw-r--r--libfdisk/src/partition.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/libfdisk/src/partition.c b/libfdisk/src/partition.c
index f6305c07d..ba9f597a3 100644
--- a/libfdisk/src/partition.c
+++ b/libfdisk/src/partition.c
@@ -699,14 +699,21 @@ int fdisk_partition_to_string(struct fdisk_partition *pa,
if (fdisk_partition_has_size(pa)) {
uint64_t sz = pa->size * cxt->sector_size;
- if (fdisk_is_details(cxt)) {
- rc = pa->size_post ?
- asprintf(&p, "%ju%c", sz, pa->size_post) :
- asprintf(&p, "%ju", sz);
- } else {
- p = size_to_human_string(SIZE_SUFFIX_1LETTER, sz);
- if (!p)
- rc = -ENOMEM;
+ switch (cxt->sizeunit) {
+ case FDISK_SIZEUNIT_BYTES:
+ rc = asprintf(&p, "%ju", sz);
+ break;
+ case FDISK_SIZEUNIT_HUMAN:
+ if (fdisk_is_details(cxt))
+ rc = pa->size_post ?
+ asprintf(&p, "%ju%c", sz, pa->size_post) :
+ asprintf(&p, "%ju", sz);
+ else {
+ p = size_to_human_string(SIZE_SUFFIX_1LETTER, sz);
+ if (!p)
+ rc = -ENOMEM;
+ }
+ break;
}
}
break;