From a71731bd2ecc5fb5709ffb8caf42c0b40396c172 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 9 Jan 2025 11:17:40 +0100 Subject: [PATCH] repart: modernize set_gpt_flags() --- src/repart/repart.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/repart/repart.c b/src/repart/repart.c index bed4fd92bc2..2be7b072468 100644 --- a/src/repart/repart.c +++ b/src/repart/repart.c @@ -6310,20 +6310,15 @@ static int context_acquire_partition_uuids_and_labels(Context *context) { static int set_gpt_flags(struct fdisk_partition *q, uint64_t flags) { _cleanup_free_ char *a = NULL; + int r; - for (unsigned i = 0; i < sizeof(flags) * 8; i++) { - uint64_t bit = UINT64_C(1) << i; - char buf[DECIMAL_STR_MAX(unsigned)+1]; - - if (!FLAGS_SET(flags, bit)) - continue; - - xsprintf(buf, "%u", i); - if (!strextend_with_separator(&a, ",", buf)) - return -ENOMEM; + BIT_FOREACH(i, flags) { + r = strextendf_with_separator(&a, ",", "%i", i); + if (r < 0) + return r; } - return fdisk_partition_set_attrs(q, a); + return fdisk_partition_set_attrs(q, strempty(a)); } static uint64_t partition_merge_flags(Partition *p) { -- 2.47.3