+ added dc (aka the function formerly known as math)
[oweals/busybox.git] / fsck_minix.c
index 47e81ce421a4417d73ffa3d03d3ecbe313ac8e22..1e482f3f989f29f10b38f16ba4e2ceab91404e32 100644 (file)
@@ -97,7 +97,7 @@
 #include <termios.h>
 #include <mntent.h>
 #include <sys/stat.h>
-#include <sys/param.h>                 /* for PATH_MAX */
+#include <sys/param.h>
 
 #include <linux/fs.h>
 #include <linux/minix_fs.h>
@@ -145,7 +145,7 @@ static int termios_set = 0;
 /* File-name data */
 #define MAX_DEPTH 32
 static int name_depth = 0;
-// static char name_list[MAX_DEPTH][PATH_MAX + 1];
+// static char name_list[MAX_DEPTH][BUFSIZ + 1];
 static char **name_list = NULL;
 
 static char *inode_buffer = NULL;
@@ -178,8 +178,8 @@ static unsigned char *zone_count = NULL;
 static void recursive_check(unsigned int ino);
 static void recursive_check2(unsigned int ino);
 
-#define inode_in_use(x) (bit(inode_map,(x)))
-#define zone_in_use(x) (bit(zone_map,(x)-FIRSTZONE+1))
+#define inode_in_use(x) (isset(inode_map,(x)))
+#define zone_in_use(x) (isset(zone_map,(x)-FIRSTZONE+1))
 
 #define mark_inode(x) (setbit(inode_map,(x)),changed=1)
 #define unmark_inode(x) (clrbit(inode_map,(x)),changed=1)
@@ -199,9 +199,10 @@ static void show_usage(void)
 {
        fprintf(stderr, "BusyBox v%s (%s) multi-call binary -- GPL2\n\n",
                        BB_VER, BB_BT);
-       fprintf(stderr, "Usage: %s [-larvsmf] /dev/name\n\n", program_name);
+       fprintf(stderr, "Usage: %s [-larvsmf] /dev/name\n", program_name);
+#ifndef BB_FEATURE_TRIVIAL_HELP
        fprintf(stderr,
-                       "Performs a consistency check for MINIX filesystems.\n\n");
+                       "\nPerforms a consistency check for MINIX filesystems.\n\n");
        fprintf(stderr, "OPTIONS:\n");
        fprintf(stderr, "\t-l\tLists all filenames\n");
        fprintf(stderr, "\t-r\tPerform interactive repairs\n");
@@ -211,6 +212,7 @@ static void show_usage(void)
        fprintf(stderr,
                        "\t-m\tActivates MINIX-like \"mode not cleared\" warnings\n");
        fprintf(stderr, "\t-f\tForce file system check.\n\n");
+#endif
        leave(16);
 }
 
@@ -1239,9 +1241,10 @@ static void alloc_name_list(void)
 
        name_list = xmalloc(sizeof(char *) * MAX_DEPTH);
        for (i = 0; i < MAX_DEPTH; i++)
-               name_list[i] = xmalloc(sizeof(char) * PATH_MAX + 1);
+               name_list[i] = xmalloc(sizeof(char) * BUFSIZ + 1);
 }
 
+#if 0
 /* execute this atexit() to deallocate name_list[] */
 /* piptigger was here */
 static void free_name_list(void)
@@ -1257,6 +1260,7 @@ static void free_name_list(void)
                free(name_list);
        }
 }
+#endif
 
 extern int fsck_minix_main(int argc, char **argv)
 {
@@ -1265,7 +1269,9 @@ extern int fsck_minix_main(int argc, char **argv)
        int retcode = 0;
 
        alloc_name_list();
-       atexit(free_name_list);
+       /* Don't bother to free memory.  Exit does
+        * that automagically, so we can save a few bytes */
+       //atexit(free_name_list);
 
        if (argc && *argv)
                program_name = *argv;