sfdisk: improve -N warnings

Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2015-04-13 12:08:50 +02:00
parent 531dfb14d4
commit d754d5540f
2 changed files with 15 additions and 3 deletions

View File

@ -57,7 +57,14 @@ input format. If standard input is a terminal, then \fBsfdisk\fR starts an
interactive session.
.sp
If the option \fB\-N\fR is specified, then the changes are applied to
the partition addressed by \fIpartition-number\fR.
the partition addressed by \fIpartition-number\fR. The unspecified fields
of the partition are not modified.
.sp
Note that it's possible to address unused partition by \fB\-N\fR. For example
MBR always contains 4 partitions, but the number of the used partitions may be
smaller. In this case sfdisk follows the default values from the partition
table and it does not use built-in defaults for the unused partition specified
by \fB\-N\fR. See also \fB\---append\fR.
.TP
.BR \-A , " \-\-activate \fIdevice\fR [" \fIpartition-number\fR...]
Switch on the bootable flag. If no \fIpartition-number\fR is specified,

View File

@ -1161,16 +1161,21 @@ static int command_fdisk(struct sfdisk *sf, int argc, char **argv)
*/
if (partno >= 0) {
size_t n;
if (!fdisk_has_label(sf->cxt))
errx(EXIT_FAILURE, _("%s: cannot modify partition %d: "
"no partition table was found"),
devname, partno);
devname, partno + 1);
n = fdisk_get_npartitions(sf->cxt);
if ((size_t) partno > n)
errx(EXIT_FAILURE, _("%s: cannot modify partition %d: "
"partition table contains only %zu "
"partitions"),
devname, partno, n);
devname, partno + 1, n);
if (!fdisk_is_partition_used(sf->cxt, partno))
fdisk_warnx(sf->cxt, _("warning: %s: partition %d is not defined yet"),
devname, partno + 1);
created = 1;
next_partno = partno;
}