make_contiguous(lp);
editor_delete(lp, freep, p)	struct disklabel *lp;	u_int32_t *freep;	char *p;{	int c;	if (p == NULL) {		p = getstring(lp, "partition to delete",		    "The letter of the partition to delete, a - p.", NULL);	}	c = p[0] - 'a';	if (c < 0 || c >= lp->d_npartitions)		fprintf(stderr, "Partition must be between 'a' and '%c'.\n",		    'a' + lp->d_npartitions - 1);	else if (c >= lp->d_npartitions || (lp->d_partitions[c].p_fstype ==	    FS_UNUSED && lp->d_partitions[c].p_size == 0))		fprintf(stderr, "Partition '%c' is not in use.\n", 'a' + c);	else if (c == 2)		fputs("You may not delete the 'c' partition.\n", stderr);	else {		/* Update free block count. */		if (lp->d_partitions[c].p_fstype != FS_UNUSED &&		    lp->d_partitions[c].p_fstype != FS_BOOT &&		    lp->d_partitions[c].p_size != 0)			*freep += lp->d_partitions[c].p_size;		/* Really delete it (as opposed to just setting to "unused") */		(void)memset(&lp->d_partitions[c], 0,		    sizeof(lp->d_partitions[c]));		/* Fill in the gap we just made */		make_contiguous(lp);	}}