1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

Move y/n prompts to stderr and repeat if response has both 'n' and 'y'.

(Note that in a future release we might make this stricter and insist
on exactly 'y' or 'n'.)
This commit is contained in:
Alasdair Kergon 2011-11-23 01:34:38 +00:00
parent fe456c33a4
commit c122e5e7a3
2 changed files with 12 additions and 5 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.89 -
==================================
Move y/n prompts to stderr and repeat if response has both 'n' and 'y'.
Replace the unit testing framework with CUnit (--enable-testing).
Fix dmeventd snapshot monitoring when multiple extensions were involved.
Don't ignore configure --mandir and --infodir.

View File

@ -850,9 +850,10 @@ char yes_no_prompt(const char *prompt, ...)
do {
if (c == '\n' || !c) {
va_start(ap, prompt);
vprintf(prompt, ap);
vfprintf(stderr, prompt, ap);
va_end(ap);
fflush(stdout);
fflush(stderr);
ret = 0;
}
if ((c = getchar()) == EOF) {
@ -861,9 +862,14 @@ char yes_no_prompt(const char *prompt, ...)
}
c = tolower(c);
if ((c == 'y') || (c == 'n'))
ret = c;
} while (!ret || c != '\n');
if ((c == 'y') || (c == 'n')) {
/* If both 'y' and 'n' given, begin again. */
if (ret && c != ret)
ret = -1;
else
ret = c;
}
} while (ret < 1 || c != '\n');
sigint_restore();