[PATCH] kconf: Check for eof from input stream.
Signed-off-by: Ben Collins <bcollins@ubuntu.com> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
f756d5e256
commit
96e9dd14a3
@@ -63,6 +63,20 @@ static void check_stdin(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static char *fgets_check_stream(char *s, int size, FILE *stream)
|
||||||
|
{
|
||||||
|
char *ret = fgets(s, size, stream);
|
||||||
|
|
||||||
|
if (ret == NULL && feof(stream)) {
|
||||||
|
printf(_("aborted!\n\n"));
|
||||||
|
printf(_("Console input is closed. "));
|
||||||
|
printf(_("Run 'make oldconfig' to update configuration.\n\n"));
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static void conf_askvalue(struct symbol *sym, const char *def)
|
static void conf_askvalue(struct symbol *sym, const char *def)
|
||||||
{
|
{
|
||||||
enum symbol_type type = sym_get_type(sym);
|
enum symbol_type type = sym_get_type(sym);
|
||||||
@@ -100,7 +114,7 @@ static void conf_askvalue(struct symbol *sym, const char *def)
|
|||||||
check_stdin();
|
check_stdin();
|
||||||
case ask_all:
|
case ask_all:
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
fgets(line, 128, stdin);
|
fgets_check_stream(line, 128, stdin);
|
||||||
return;
|
return;
|
||||||
case set_default:
|
case set_default:
|
||||||
printf("%s\n", def);
|
printf("%s\n", def);
|
||||||
@@ -356,7 +370,7 @@ static int conf_choice(struct menu *menu)
|
|||||||
check_stdin();
|
check_stdin();
|
||||||
case ask_all:
|
case ask_all:
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
fgets(line, 128, stdin);
|
fgets_check_stream(line, 128, stdin);
|
||||||
strip(line);
|
strip(line);
|
||||||
if (line[0] == '?') {
|
if (line[0] == '?') {
|
||||||
printf("\n%s\n", menu->sym->help ?
|
printf("\n%s\n", menu->sym->help ?
|
||||||
|
Reference in New Issue
Block a user