summaryrefslogtreecommitdiff
path: root/mkfs_minix.c
diff options
context:
space:
mode:
authorEric Andersen2000-06-06 22:12:35 +0000
committerEric Andersen2000-06-06 22:12:35 +0000
commit32322032263c540a80ae38b249dfdeeecb10833e (patch)
treecf52c83b69926cbb153c04c07cdd3eb74a8e2536 /mkfs_minix.c
parentd05e3ce5c2798fe869e19005e651e6bc6903ec1c (diff)
downloadbusybox-32322032263c540a80ae38b249dfdeeecb10833e.zip
busybox-32322032263c540a80ae38b249dfdeeecb10833e.tar.gz
mkfs.minix rev 1.7 completely broke the option parser. This fixes it.
-Erik
Diffstat (limited to 'mkfs_minix.c')
-rw-r--r--mkfs_minix.c36
1 files changed, 25 insertions, 11 deletions
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)