if (newsize == UINT_MAX) {
if (newsize == UINT_MAX - 1) { fputs("Command aborted\n", stderr); return; } else if (newsize == UINT_MAX) {
editor_change(lp, freep, p)	struct disklabel *lp;	u_int32_t *freep;	char *p;{	int partno;	u_int32_t newsize;	if (p == NULL) {		p = getstring(lp, "partition to change size",		    "The letter of the partition to change size, a - p.", NULL);	}	partno = p[0] - 'a';	if (partno < 0 || partno >= lp->d_npartitions) {		fprintf(stderr, "Partition must be between 'a' and '%c'.\n",		    'a' + lp->d_npartitions - 1);		return;	} else if (partno >= lp->d_npartitions ||	    lp->d_partitions[partno].p_size == 0) {		fprintf(stderr, "Partition '%c' is not in use.\n", 'a' + partno);		return;	}	printf("Partition %c is currently %u sectors in size (%u free).\n",	    partno + 'a', lp->d_partitions[partno].p_size, *freep);	/* XXX - make maxsize lp->d_secperunit if FS_UNUSED/FS_BOOT? */	newsize = getuint(lp, partno, "new size", "Size of the partition.  "	    "You may also say +/- amount for a relative change.",	    lp->d_partitions[partno].p_size,	    lp->d_partitions[partno].p_size + *freep, DO_CONVERSIONS |	    (lp->d_partitions[partno].p_fstype == FS_BSDFFS ? DO_ROUNDING : 0));	if (newsize == UINT_MAX) {		fputs("Invalid entry\n", stderr);		return;	} else if (newsize == lp->d_partitions[partno].p_size)		return;	if (lp->d_partitions[partno].p_fstype != FS_UNUSED &&	    lp->d_partitions[partno].p_fstype != FS_BOOT) {		if (newsize > lp->d_partitions[partno].p_size) {			if (newsize - lp->d_partitions[partno].p_size > *freep) {				fprintf(stderr,				    "Only %u sectors free, you asked for %u\n",				    *freep,				    newsize - lp->d_partitions[partno].p_size);				return;			}			*freep -= newsize - lp->d_partitions[partno].p_size;		} else if (newsize < lp->d_partitions[partno].p_size) {			*freep += lp->d_partitions[partno].p_size - newsize;		}	} else {		if (partno != 2 && newsize + lp->d_partitions[partno].p_offset >		    lp->d_partitions[2].p_size) {			fputs("Partition must not extend past 'c'\n", stderr);			return;		} else if (partno == 2 && newsize +		    lp->d_partitions[partno].p_offset > lp->d_secperunit) {			fputs("'c' partition may not be larger than the disk\n",			    stderr);			return;		}	}	lp->d_partitions[partno].p_size = newsize;	make_contiguous(lp);}