aboutsummaryrefslogtreecommitdiff
path: root/sbin/fsck_msdosfs
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2019-06-15 07:23:06 +0000
committerXin LI <delphij@FreeBSD.org>2019-06-15 07:23:06 +0000
commit0b253f2ba45d9467f29fde8d56518f2ae7e9413d (patch)
tree10b4998e5980f5c64160e49c361641652b3270c2 /sbin/fsck_msdosfs
parent1e3ffe65909392535b59793fe9ff3c3c8c866fd4 (diff)
In ask(): override default option if any of alwaysyes/alwaysno/rdonly is
set. MFC after: 2 weeks
Notes
Notes: svn path=/head/; revision=349048
Diffstat (limited to 'sbin/fsck_msdosfs')
-rw-r--r--sbin/fsck_msdosfs/main.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/sbin/fsck_msdosfs/main.c b/sbin/fsck_msdosfs/main.c
index 2b79cc02a201..6802afcefc46 100644
--- a/sbin/fsck_msdosfs/main.c
+++ b/sbin/fsck_msdosfs/main.c
@@ -129,9 +129,10 @@ ask(int def, const char *fmt, ...)
char prompt[256];
int c;
+ if (alwaysyes || alwaysno || rdonly)
+ def = (alwaysyes && !rdonly && !alwaysno);
+
if (preen) {
- if (rdonly)
- def = 0;
if (def)
printf("FIXED\n");
return def;
@@ -140,9 +141,9 @@ ask(int def, const char *fmt, ...)
va_start(ap, fmt);
vsnprintf(prompt, sizeof(prompt), fmt, ap);
va_end(ap);
- if (alwaysyes || rdonly) {
- printf("%s? %s\n", prompt, rdonly ? "no" : "yes");
- return !rdonly;
+ if (alwaysyes || alwaysno || rdonly) {
+ printf("%s? %s\n", prompt, def ? "yes" : "no");
+ return def;
}
do {
printf("%s? [yn] ", prompt);