mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +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:
parent
4a927fd6db
commit
f0509623ce
@ -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.
|
||||
|
@ -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();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user