diff options
author | Xin LI <delphij@FreeBSD.org> | 2019-06-15 07:23:06 +0000 |
---|---|---|
committer | Xin LI <delphij@FreeBSD.org> | 2019-06-15 07:23:06 +0000 |
commit | 0b253f2ba45d9467f29fde8d56518f2ae7e9413d (patch) | |
tree | 10b4998e5980f5c64160e49c361641652b3270c2 /sbin/fsck_msdosfs | |
parent | 1e3ffe65909392535b59793fe9ff3c3c8c866fd4 (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.c | 11 |
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); |