From bbb25bf11aeda92f6cc75d32a5fdb5789348bb08 Mon Sep 17 00:00:00 2001 From: "Steven J. Magnani" Date: Thu, 21 Jan 2010 16:56:26 +0100 Subject: [PATCH] If dosfsck is run in read-only mode (-n), exit with code 0 if the only issue found is an uninitialized free cluster summary. Signed-off-by: Daniel Baumann --- src/dosfsck.c | 4 ++-- src/dosfsck.h | 2 +- src/dosfslabel.c | 4 ++-- src/fat.c | 12 +++++++----- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/dosfsck.c b/src/dosfsck.c index c14fbcc..aaf787b 100644 --- a/src/dosfsck.c +++ b/src/dosfsck.c @@ -42,7 +42,7 @@ #include "check.h" -int interactive = 0,list = 0,test = 0,verbose = 0,write_immed = 0; +int interactive = 0,rw = 0,list = 0,test = 0,verbose = 0,write_immed = 0; int atari_format = 0; unsigned n_files = 0; void *mem_queue = NULL; @@ -102,7 +102,7 @@ static void check_atari( void ) int main(int argc,char **argv) { DOS_FS fs; - int rw,salvage_files,verify,c; + int salvage_files,verify,c; unsigned n_files_check=0, n_files_verify=0; unsigned long free_clusters; diff --git a/src/dosfsck.h b/src/dosfsck.h index e731bff..4e52d5b 100644 --- a/src/dosfsck.h +++ b/src/dosfsck.h @@ -189,7 +189,7 @@ typedef struct { #define offsetof(t,e) ((int)&(((t *)0)->e)) #endif -extern int interactive,list,verbose,test,write_immed; +extern int interactive,rw,list,verbose,test,write_immed; extern int atari_format; extern unsigned n_files; extern void *mem_queue; diff --git a/src/dosfslabel.c b/src/dosfslabel.c index 1e9cd04..aabde3f 100644 --- a/src/dosfslabel.c +++ b/src/dosfslabel.c @@ -39,7 +39,7 @@ #include "check.h" -int interactive = 0,list = 0,test = 0,verbose = 0,write_immed = 0; +int interactive = 0,rw = 0,list = 0,test = 0,verbose = 0,write_immed = 0; int atari_format = 0; unsigned n_files = 0; void *mem_queue = NULL; @@ -86,7 +86,7 @@ static void check_atari( void ) int main(int argc, char *argv[]) { DOS_FS fs; - int rw = 0; + rw = 0; char *device = NULL; char *label = NULL; diff --git a/src/fat.c b/src/fat.c index 99b264d..9898a54 100644 --- a/src/fat.c +++ b/src/fat.c @@ -538,11 +538,13 @@ unsigned long update_free(DOS_FS *fs) } else { printf( "Free cluster summary uninitialized (should be %ld)\n", free ); - if (interactive) - printf( "1) Set it\n2) Leave it uninitialized\n" ); - else printf( " Auto-setting.\n" ); - if (!interactive || get_key("12","?") == '1') - do_set = 1; + if (rw) { + if (interactive) + printf( "1) Set it\n2) Leave it uninitialized\n" ); + else printf( " Auto-setting.\n" ); + if (!interactive || get_key("12","?") == '1') + do_set = 1; + } } if (do_set) {