Print error when getline() fails (thanks to Ivan Stankovic)

git-svn-id: https://cryptsetup.googlecode.com/svn/trunk@76 36d66b0a-2a48-0410-832c-cd162a569da5
This commit is contained in:
Milan Broz
2009-07-30 14:46:56 +00:00
parent f60475e293
commit 4a257d8c65
2 changed files with 15 additions and 10 deletions

View File

@@ -79,19 +79,23 @@ static struct action_type {
/* Interface Callbacks */
static int yesDialog(char *msg)
{
int r = 0;
char *answer = NULL;
size_t size = 0;
int r = 1;
if(isatty(0) && !opt_batch_mode) {
char *answer=NULL;
size_t size=0;
fprintf(stderr,"\nWARNING!\n========\n");
fprintf(stderr,"%s\n\nAre you sure? (Type uppercase yes): ",msg);
if(getline(&answer,&size,stdin) == -1)
fprintf(stderr, "\nWARNING!\n========\n");
fprintf(stderr, "%s\n\nAre you sure? (Type uppercase yes): ", msg);
if(getline(&answer, &size, stdin) == -1) {
perror("getline");
free(answer);
return 0;
if(strcmp(answer,"YES\n") == 0)
r = 1;
}
if(strcmp(answer, "YES\n"))
r = 0;
free(answer);
} else
r = 1;
}
return r;
}