fdisk: quit from partition type dialog after invalid response

This gets rid of the while() loop and fixes indentation.

Signed-off-by: Francesco Cosoleto <cosoleto@gmail.com>
This commit is contained in:
Francesco Cosoleto 2011-05-06 17:23:33 +02:00 committed by Karel Zak
parent 37b4484fe6
commit b25c9df7c7
1 changed files with 20 additions and 25 deletions

View File

@ -2534,8 +2534,7 @@ new_partition(void) {
} else {
char c, dflt, line[LINE_LENGTH];
while (1) {
dflt = (free_primary == 1 && !extended_offset) ? 'e' : 'p';
dflt = (free_primary == 1 && !extended_offset) ? 'e' : 'p';
snprintf(line, sizeof(line),
_("Partition type:\n"
" p primary (%d primary, %d extended, %d free)\n"
@ -2545,30 +2544,26 @@ new_partition(void) {
extended_offset ? _(" l logical (numbered from 5)") : _(" e extended"),
dflt);
c = tolower(read_chars(line));
if (c == '\n') {
c = dflt;
printf(_("Using default response %c\n"), c);
}
if (c == 'p') {
int i = get_nonexisting_partition(0, 4);
if (i >= 0)
add_partition(i, LINUX_NATIVE);
return;
}
else if (c == 'l' && extended_offset) {
add_logical();
return;
}
else if (c == 'e' && !extended_offset) {
int i = get_nonexisting_partition(0, 4);
if (i >= 0)
add_partition(i, EXTENDED);
return;
}
else
printf(_("Invalid partition type `%c'\n"), c);
c = tolower(read_chars(line));
if (c == '\n') {
c = dflt;
printf(_("Using default response %c\n"), c);
}
if (c == 'p') {
int i = get_nonexisting_partition(0, 4);
if (i >= 0)
add_partition(i, LINUX_NATIVE);
return;
} else if (c == 'l' && extended_offset) {
add_logical();
return;
} else if (c == 'e' && !extended_offset) {
int i = get_nonexisting_partition(0, 4);
if (i >= 0)
add_partition(i, EXTENDED);
return;
} else
printf(_("Invalid partition type `%c'\n"), c);
}
}