rdate: make it do something remotely sane, facing 32-bit time overflow
[oweals/busybox.git] / util-linux / fsck_minix.c
index 33767a1afe8f8939e237e8a3f0e426a8caeea3b3..2ab7530ea2057c596caca2e069bfad43fa0763c8 100644 (file)
  * The device may be a block device or a image of one, but this isn't
  * enforced (but it's not much fun on a character device :-).
  */
+//config:config FSCK_MINIX
+//config:      bool "fsck_minix"
+//config:      default y
+//config:      help
+//config:        The minix filesystem is a nice, small, compact, read-write filesystem
+//config:        with little overhead. It is not a journaling filesystem however and
+//config:        can experience corruption if it is not properly unmounted or if the
+//config:        power goes off in the middle of a write. This utility allows you to
+//config:        check for and attempt to repair any corruption that occurs to a minix
+//config:        filesystem.
+
+//applet:IF_FSCK_MINIX(APPLET_ODDNAME(fsck.minix, fsck_minix, BB_DIR_SBIN, BB_SUID_DROP, fsck_minix))
+
+//kbuild:lib-$(CONFIG_FSCK_MINIX) += fsck_minix.o
 
 //usage:#define fsck_minix_trivial_usage
 //usage:       "[-larvsmf] BLOCKDEV"
@@ -371,9 +385,9 @@ static int ask(const char *string, int def)
                }
        }
        if (def)
-               printf("y\n");
+               puts("y");
        else {
-               printf("n\n");
+               puts("n");
                errors_uncorrected = 1;
        }
        return def;
@@ -405,7 +419,7 @@ static void check_mount(void)
                if (isatty(0) && isatty(1))
                        cont = ask("Do you really want to continue", 0);
                if (!cont) {
-                       printf("Check aborted\n");
+                       puts("Check aborted");
                        exit(EXIT_SUCCESS);
                }
        }
@@ -470,8 +484,8 @@ static void write_block(unsigned nr, void *addr)
        if (!nr)
                return;
        if (nr < FIRSTZONE || nr >= ZONES) {
-               printf("Internal error: trying to write bad block\n"
-                          "Write request ignored\n");
+               puts("Internal error: trying to write bad block\n"
+                       "Write request ignored");
                errors_uncorrected = 1;
                return;
        }
@@ -659,7 +673,7 @@ static void read_tables(void)
        if (INODE_BUFFER_SIZE != read(dev_fd, inode_buffer, INODE_BUFFER_SIZE))
                die("can't read inodes");
        if (NORM_FIRSTZONE != FIRSTZONE) {
-               printf("warning: firstzone!=norm_firstzone\n");
+               puts("warning: firstzone!=norm_firstzone");
                errors_uncorrected = 1;
        }
        get_dirsize();
@@ -713,7 +727,7 @@ static void get_inode_common(unsigned nr, uint16_t i_mode)
        } else
                links++;
        if (!++inode_count[nr]) {
-               printf("Warning: inode count too big\n");
+               puts("Warning: inode count too big");
                inode_count[nr]--;
                errors_uncorrected = 1;
        }
@@ -1212,7 +1226,6 @@ void check2(void);
 int fsck_minix_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int fsck_minix_main(int argc UNUSED_PARAM, char **argv)
 {
-       struct termios tmp;
        int retcode = 0;
 
        xfunc_error_retval = 8;
@@ -1257,10 +1270,7 @@ int fsck_minix_main(int argc UNUSED_PARAM, char **argv)
        read_tables();
 
        if (OPT_manual) {
-               tcgetattr(0, &sv_termios);
-               tmp = sv_termios;
-               tmp.c_lflag &= ~(ICANON | ECHO);
-               tcsetattr_stdin_TCSANOW(&tmp);
+               set_termios_to_raw(STDIN_FILENO, &sv_termios, 0);
                termios_set = 1;
        }
 
@@ -1299,7 +1309,7 @@ int fsck_minix_main(int argc UNUSED_PARAM, char **argv)
        }
        if (changed) {
                write_tables();
-               printf("FILE SYSTEM HAS BEEN CHANGED\n");
+               puts("FILE SYSTEM HAS BEEN CHANGED");
                sync();
        } else if (OPT_repair)
                write_superblock();