summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO6
-rw-r--r--mkfs_minix.c36
-rw-r--r--util-linux/mkfs_minix.c36
3 files changed, 54 insertions, 24 deletions
diff --git a/TODO b/TODO
index 63fae0b..e6c9cfd 100644
--- a/TODO
+++ b/TODO
@@ -22,8 +22,10 @@ Bugs that need fixing before the 0.44 release goes out the door:
- 'grep foo$ file' doesn't work
- 'grep *foo file' segfaults
- ps dirent race bug (need to stat the file before attempting chdir)
- - I believe that swaponoff may also be also broken (check it).
- - It used to be that BusyBox tar would happily overwrite existing files on
+ - The following commands segfault or are broken:
+ date -u
+ - I believe that swaponoff may also be also broken (check it).
+ - It used to be that BusyBox tar would happily overwrite existing files on
an extraction. However, as of 0.42, BusyBox tar simply dies as soon as an
existing file is found.
- Make 'mount -a' work even when /proc isn't mounted (ugly bug).
diff --git a/mkfs_minix.c b/mkfs_minix.c
index ef37c38..43f5a08 100644
--- a/mkfs_minix.c
+++ b/mkfs_minix.c
@@ -644,7 +644,7 @@ char *filename;
extern int mkfs_minix_main(int argc, char **argv)
{
- int i;
+ int i=1;
char *tmp;
struct stat statbuf;
char *listfile = NULL;
@@ -660,43 +660,57 @@ extern int mkfs_minix_main(int argc, char **argv)
#endif
/* Parse options */
- //printf("argc='%d' argv='%s'\n", argc, *argv);
+printf("erik: argc='%d' argv='%s'\n", argc, *argv);
argv++;
while (--argc >= 0 && *argv && **argv) {
if (**argv == '-') {
stopIt=FALSE;
while (i > 0 && *++(*argv) && stopIt==FALSE) {
- //printf("argc='%d' argv='%s'\n", argc, *argv);
+printf("erik: argc='%d' argv='%s'\n", argc, *argv);
switch (**argv) {
case 'c':
check = 1;
break;
case 'i':
- if (--argc == 0) {
- goto goodbye;
+ {
+ char *cp=NULL;
+ if (*(*argv+1) != 0) {
+ cp = ++(*argv);
+ } else {
+ if (--argc == 0) {
+ goto goodbye;
+ }
+ cp = *(++argv);
+ }
+ req_nr_inodes = strtoul(cp, &tmp, 0);
+ if (*tmp)
+ show_usage();
+printf("erik: nr_inodes=%ld\n", req_nr_inodes);
+ stopIt=TRUE;
+ break;
}
- req_nr_inodes = (unsigned long) atol(*(++argv));
- break;
case 'l':
if (--argc == 0) {
goto goodbye;
}
listfile = *(++argv);
+printf("erik: listfile='%s'\n", listfile);
break;
case 'n':
{
char *cp=NULL;
- if (--argc == 0) {
- goto goodbye;
- }
if (*(*argv+1) != 0) {
cp = ++(*argv);
} else {
+ if (--argc == 0) {
+ goto goodbye;
+ }
cp = *(++argv);
}
i = strtoul(cp, &tmp, 0);
//printf("cp='%s' i='%d'\n", cp, i);
+printf("erik: namelen=%d\n", i);
if (*tmp)
show_usage();
if (i == 14)
@@ -727,7 +741,7 @@ goodbye:
}
}
} else {
- //printf("else: argc='%d' argv='%s'\n", argc, *argv);
+printf("else: argc='%d' argv='%s'\n", argc, *argv);
if (device_name == NULL)
device_name = *argv;
else if (BLOCKS == 0)
diff --git a/util-linux/mkfs_minix.c b/util-linux/mkfs_minix.c
index ef37c38..43f5a08 100644
--- a/util-linux/mkfs_minix.c
+++ b/util-linux/mkfs_minix.c
@@ -644,7 +644,7 @@ char *filename;
extern int mkfs_minix_main(int argc, char **argv)
{
- int i;
+ int i=1;
char *tmp;
struct stat statbuf;
char *listfile = NULL;
@@ -660,43 +660,57 @@ extern int mkfs_minix_main(int argc, char **argv)
#endif
/* Parse options */
- //printf("argc='%d' argv='%s'\n", argc, *argv);
+printf("erik: argc='%d' argv='%s'\n", argc, *argv);
argv++;
while (--argc >= 0 && *argv && **argv) {
if (**argv == '-') {
stopIt=FALSE;
while (i > 0 && *++(*argv) && stopIt==FALSE) {
- //printf("argc='%d' argv='%s'\n", argc, *argv);
+printf("erik: argc='%d' argv='%s'\n", argc, *argv);
switch (**argv) {
case 'c':
check = 1;
break;
case 'i':
- if (--argc == 0) {
- goto goodbye;
+ {
+ char *cp=NULL;
+ if (*(*argv+1) != 0) {
+ cp = ++(*argv);
+ } else {
+ if (--argc == 0) {
+ goto goodbye;
+ }
+ cp = *(++argv);
+ }
+ req_nr_inodes = strtoul(cp, &tmp, 0);
+ if (*tmp)
+ show_usage();
+printf("erik: nr_inodes=%ld\n", req_nr_inodes);
+ stopIt=TRUE;
+ break;
}
- req_nr_inodes = (unsigned long) atol(*(++argv));
- break;
case 'l':
if (--argc == 0) {
goto goodbye;
}
listfile = *(++argv);
+printf("erik: listfile='%s'\n", listfile);
break;
case 'n':
{
char *cp=NULL;
- if (--argc == 0) {
- goto goodbye;
- }
if (*(*argv+1) != 0) {
cp = ++(*argv);
} else {
+ if (--argc == 0) {
+ goto goodbye;
+ }
cp = *(++argv);
}
i = strtoul(cp, &tmp, 0);
//printf("cp='%s' i='%d'\n", cp, i);
+printf("erik: namelen=%d\n", i);
if (*tmp)
show_usage();
if (i == 14)
@@ -727,7 +741,7 @@ goodbye:
}
}
} else {
- //printf("else: argc='%d' argv='%s'\n", argc, *argv);
+printf("else: argc='%d' argv='%s'\n", argc, *argv);
if (device_name == NULL)
device_name = *argv;
else if (BLOCKS == 0)