num, sig, pwr,
sig ? "relative" : "absolute"));
if (num >= low && num <= high) {
- if (sig && pwr)
+ if (sig)
fdisk_ask_number_set_relative(ask, 1);
return fdisk_ask_number_set_result(ask, num);
}
user_l = fdisk_ask_number_get_result(ask);
if (fdisk_ask_number_is_relative(ask)) {
- user_l = fdisk_align_lba_in_range(cxt, user_l, user_f, dflt_l) - 1;
+
+ user_l = fdisk_align_lba_in_range(cxt, user_l, user_f, dflt_l);
+ if (user_l > user_f)
+ user_l -= 1;
/* no space for anything useful, use all space
if (user_l + (cxt->grain / cxt->sector_size) > dflt_l)
*/
}
- if (user_l > user_f && user_l <= disk_l)
+ if (user_l >= user_f && user_l <= disk_l)
break;
}
}