diff options
Diffstat (limited to 'cgpt/cmd_add.c')
-rw-r--r-- | cgpt/cmd_add.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/cgpt/cmd_add.c b/cgpt/cmd_add.c index 2bb5df43..0d89065b 100644 --- a/cgpt/cmd_add.c +++ b/cgpt/cmd_add.c @@ -15,6 +15,9 @@ static void Usage(void) printf("\nUsage: %s add [OPTIONS] DRIVE\n\n" "Add, edit, or remove a partition entry.\n\n" "Options:\n" + " -D NUM Size (in bytes) of the disk where partitions reside\n" + " default 0, meaning partitions and GPT structs are\n" + " both on DRIVE\n" " -i NUM Specify partition (default is next available)\n" " -b NUM Beginning sector\n" " -s NUM Size in sectors\n" @@ -42,10 +45,18 @@ int cmd_add(int argc, char *argv[]) { char *e = 0; opterr = 0; // quiet, you - while ((c=getopt(argc, argv, ":hi:b:s:t:u:l:S:T:P:A:")) != -1) + while ((c=getopt(argc, argv, ":hi:b:s:t:u:l:S:T:P:A:D:")) != -1) { switch (c) { + case 'D': + params.drive_size = strtoull(optarg, &e, 0); + if (!*optarg || (e && *e)) + { + Error("invalid argument to -%c: \"%s\"\n", c, optarg); + errorcnt++; + } + break; case 'i': params.partition = (uint32_t)strtoul(optarg, &e, 0); if (!*optarg || (e && *e)) |