mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
parted: Modernize check_parttype() with table-driven mapping
Signed-off-by: Susant Sahani <ssahani@redhat.com>
This commit is contained in:
@@ -47,25 +47,30 @@
|
|||||||
static const char *
|
static const char *
|
||||||
check_parttype (const char *parttype)
|
check_parttype (const char *parttype)
|
||||||
{
|
{
|
||||||
/* Check and translate parttype. */
|
static const struct {
|
||||||
if (STREQ (parttype, "aix") ||
|
const char *input; /* what the user is allowed to type */
|
||||||
STREQ (parttype, "amiga") ||
|
const char *canonical; /* what we return / what parted expects */
|
||||||
STREQ (parttype, "bsd") ||
|
} map[] = {
|
||||||
STREQ (parttype, "dasd") ||
|
{ "aix", "aix" },
|
||||||
STREQ (parttype, "dvh") ||
|
{ "amiga", "amiga" }, { "rdb", "amiga" },
|
||||||
STREQ (parttype, "gpt") ||
|
{ "bsd", "bsd" },
|
||||||
STREQ (parttype, "mac") ||
|
{ "dasd", "dasd" },
|
||||||
STREQ (parttype, "msdos") ||
|
{ "dvh", "dvh" },
|
||||||
STREQ (parttype, "pc98") ||
|
{ "gpt", "gpt" }, { "efi", "gpt" },
|
||||||
STREQ (parttype, "sun"))
|
{ "mac", "mac" },
|
||||||
return parttype;
|
{ "msdos", "msdos" }, { "mbr", "msdos" },
|
||||||
else if (STREQ (parttype, "rdb"))
|
{ "pc98", "pc98" },
|
||||||
return "amiga";
|
{ "sun", "sun" },
|
||||||
else if (STREQ (parttype, "efi"))
|
};
|
||||||
return "gpt";
|
|
||||||
else if (STREQ (parttype, "mbr"))
|
if (parttype == NULL)
|
||||||
return "msdos";
|
return NULL;
|
||||||
else
|
|
||||||
|
for (size_t i = 0; i < sizeof(map) / sizeof(map[0]); ++i) {
|
||||||
|
if (STREQ(parttype, map[i].input))
|
||||||
|
return map[i].canonical;
|
||||||
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user