diff options
author | Eric Andersen <andersen@codepoet.org> | 2000-06-06 22:12:35 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2000-06-06 22:12:35 +0000 |
commit | 32322032263c540a80ae38b249dfdeeecb10833e (patch) | |
tree | cf52c83b69926cbb153c04c07cdd3eb74a8e2536 | |
parent | d05e3ce5c2798fe869e19005e651e6bc6903ec1c (diff) | |
download | busybox-w32-32322032263c540a80ae38b249dfdeeecb10833e.tar.gz busybox-w32-32322032263c540a80ae38b249dfdeeecb10833e.tar.bz2 busybox-w32-32322032263c540a80ae38b249dfdeeecb10833e.zip |
mkfs.minix rev 1.7 completely broke the option parser. This fixes it.
-Erik
-rw-r--r-- | TODO | 6 | ||||
-rw-r--r-- | mkfs_minix.c | 36 | ||||
-rw-r--r-- | util-linux/mkfs_minix.c | 36 |
3 files changed, 54 insertions, 24 deletions
@@ -22,8 +22,10 @@ Bugs that need fixing before the 0.44 release goes out the door: | |||
22 | - 'grep foo$ file' doesn't work | 22 | - 'grep foo$ file' doesn't work |
23 | - 'grep *foo file' segfaults | 23 | - 'grep *foo file' segfaults |
24 | - ps dirent race bug (need to stat the file before attempting chdir) | 24 | - ps dirent race bug (need to stat the file before attempting chdir) |
25 | - I believe that swaponoff may also be also broken (check it). | 25 | - The following commands segfault or are broken: |
26 | - It used to be that BusyBox tar would happily overwrite existing files on | 26 | date -u |
27 | - I believe that swaponoff may also be also broken (check it). | ||
28 | - It used to be that BusyBox tar would happily overwrite existing files on | ||
27 | an extraction. However, as of 0.42, BusyBox tar simply dies as soon as an | 29 | an extraction. However, as of 0.42, BusyBox tar simply dies as soon as an |
28 | existing file is found. | 30 | existing file is found. |
29 | - Make 'mount -a' work even when /proc isn't mounted (ugly bug). | 31 | - Make 'mount -a' work even when /proc isn't mounted (ugly bug). |
diff --git a/mkfs_minix.c b/mkfs_minix.c index ef37c385d..43f5a087e 100644 --- a/mkfs_minix.c +++ b/mkfs_minix.c | |||
@@ -644,7 +644,7 @@ char *filename; | |||
644 | 644 | ||
645 | extern int mkfs_minix_main(int argc, char **argv) | 645 | extern int mkfs_minix_main(int argc, char **argv) |
646 | { | 646 | { |
647 | int i; | 647 | int i=1; |
648 | char *tmp; | 648 | char *tmp; |
649 | struct stat statbuf; | 649 | struct stat statbuf; |
650 | char *listfile = NULL; | 650 | char *listfile = NULL; |
@@ -660,43 +660,57 @@ extern int mkfs_minix_main(int argc, char **argv) | |||
660 | #endif | 660 | #endif |
661 | 661 | ||
662 | /* Parse options */ | 662 | /* Parse options */ |
663 | //printf("argc='%d' argv='%s'\n", argc, *argv); | 663 | printf("erik: argc='%d' argv='%s'\n", argc, *argv); |
664 | argv++; | 664 | argv++; |
665 | while (--argc >= 0 && *argv && **argv) { | 665 | while (--argc >= 0 && *argv && **argv) { |
666 | if (**argv == '-') { | 666 | if (**argv == '-') { |
667 | stopIt=FALSE; | 667 | stopIt=FALSE; |
668 | while (i > 0 && *++(*argv) && stopIt==FALSE) { | 668 | while (i > 0 && *++(*argv) && stopIt==FALSE) { |
669 | //printf("argc='%d' argv='%s'\n", argc, *argv); | 669 | printf("erik: argc='%d' argv='%s'\n", argc, *argv); |
670 | switch (**argv) { | 670 | switch (**argv) { |
671 | case 'c': | 671 | case 'c': |
672 | check = 1; | 672 | check = 1; |
673 | break; | 673 | break; |
674 | case 'i': | 674 | case 'i': |
675 | if (--argc == 0) { | 675 | { |
676 | goto goodbye; | 676 | char *cp=NULL; |
677 | if (*(*argv+1) != 0) { | ||
678 | cp = ++(*argv); | ||
679 | } else { | ||
680 | if (--argc == 0) { | ||
681 | goto goodbye; | ||
682 | } | ||
683 | cp = *(++argv); | ||
684 | } | ||
685 | req_nr_inodes = strtoul(cp, &tmp, 0); | ||
686 | if (*tmp) | ||
687 | show_usage(); | ||
688 | printf("erik: nr_inodes=%ld\n", req_nr_inodes); | ||
689 | stopIt=TRUE; | ||
690 | break; | ||
677 | } | 691 | } |
678 | req_nr_inodes = (unsigned long) atol(*(++argv)); | ||
679 | break; | ||
680 | case 'l': | 692 | case 'l': |
681 | if (--argc == 0) { | 693 | if (--argc == 0) { |
682 | goto goodbye; | 694 | goto goodbye; |
683 | } | 695 | } |
684 | listfile = *(++argv); | 696 | listfile = *(++argv); |
697 | printf("erik: listfile='%s'\n", listfile); | ||
685 | break; | 698 | break; |
686 | case 'n': | 699 | case 'n': |
687 | { | 700 | { |
688 | char *cp=NULL; | 701 | char *cp=NULL; |
689 | 702 | ||
690 | if (--argc == 0) { | ||
691 | goto goodbye; | ||
692 | } | ||
693 | if (*(*argv+1) != 0) { | 703 | if (*(*argv+1) != 0) { |
694 | cp = ++(*argv); | 704 | cp = ++(*argv); |
695 | } else { | 705 | } else { |
706 | if (--argc == 0) { | ||
707 | goto goodbye; | ||
708 | } | ||
696 | cp = *(++argv); | 709 | cp = *(++argv); |
697 | } | 710 | } |
698 | i = strtoul(cp, &tmp, 0); | 711 | i = strtoul(cp, &tmp, 0); |
699 | //printf("cp='%s' i='%d'\n", cp, i); | 712 | //printf("cp='%s' i='%d'\n", cp, i); |
713 | printf("erik: namelen=%d\n", i); | ||
700 | if (*tmp) | 714 | if (*tmp) |
701 | show_usage(); | 715 | show_usage(); |
702 | if (i == 14) | 716 | if (i == 14) |
@@ -727,7 +741,7 @@ goodbye: | |||
727 | } | 741 | } |
728 | } | 742 | } |
729 | } else { | 743 | } else { |
730 | //printf("else: argc='%d' argv='%s'\n", argc, *argv); | 744 | printf("else: argc='%d' argv='%s'\n", argc, *argv); |
731 | if (device_name == NULL) | 745 | if (device_name == NULL) |
732 | device_name = *argv; | 746 | device_name = *argv; |
733 | else if (BLOCKS == 0) | 747 | else if (BLOCKS == 0) |
diff --git a/util-linux/mkfs_minix.c b/util-linux/mkfs_minix.c index ef37c385d..43f5a087e 100644 --- a/util-linux/mkfs_minix.c +++ b/util-linux/mkfs_minix.c | |||
@@ -644,7 +644,7 @@ char *filename; | |||
644 | 644 | ||
645 | extern int mkfs_minix_main(int argc, char **argv) | 645 | extern int mkfs_minix_main(int argc, char **argv) |
646 | { | 646 | { |
647 | int i; | 647 | int i=1; |
648 | char *tmp; | 648 | char *tmp; |
649 | struct stat statbuf; | 649 | struct stat statbuf; |
650 | char *listfile = NULL; | 650 | char *listfile = NULL; |
@@ -660,43 +660,57 @@ extern int mkfs_minix_main(int argc, char **argv) | |||
660 | #endif | 660 | #endif |
661 | 661 | ||
662 | /* Parse options */ | 662 | /* Parse options */ |
663 | //printf("argc='%d' argv='%s'\n", argc, *argv); | 663 | printf("erik: argc='%d' argv='%s'\n", argc, *argv); |
664 | argv++; | 664 | argv++; |
665 | while (--argc >= 0 && *argv && **argv) { | 665 | while (--argc >= 0 && *argv && **argv) { |
666 | if (**argv == '-') { | 666 | if (**argv == '-') { |
667 | stopIt=FALSE; | 667 | stopIt=FALSE; |
668 | while (i > 0 && *++(*argv) && stopIt==FALSE) { | 668 | while (i > 0 && *++(*argv) && stopIt==FALSE) { |
669 | //printf("argc='%d' argv='%s'\n", argc, *argv); | 669 | printf("erik: argc='%d' argv='%s'\n", argc, *argv); |
670 | switch (**argv) { | 670 | switch (**argv) { |
671 | case 'c': | 671 | case 'c': |
672 | check = 1; | 672 | check = 1; |
673 | break; | 673 | break; |
674 | case 'i': | 674 | case 'i': |
675 | if (--argc == 0) { | 675 | { |
676 | goto goodbye; | 676 | char *cp=NULL; |
677 | if (*(*argv+1) != 0) { | ||
678 | cp = ++(*argv); | ||
679 | } else { | ||
680 | if (--argc == 0) { | ||
681 | goto goodbye; | ||
682 | } | ||
683 | cp = *(++argv); | ||
684 | } | ||
685 | req_nr_inodes = strtoul(cp, &tmp, 0); | ||
686 | if (*tmp) | ||
687 | show_usage(); | ||
688 | printf("erik: nr_inodes=%ld\n", req_nr_inodes); | ||
689 | stopIt=TRUE; | ||
690 | break; | ||
677 | } | 691 | } |
678 | req_nr_inodes = (unsigned long) atol(*(++argv)); | ||
679 | break; | ||
680 | case 'l': | 692 | case 'l': |
681 | if (--argc == 0) { | 693 | if (--argc == 0) { |
682 | goto goodbye; | 694 | goto goodbye; |
683 | } | 695 | } |
684 | listfile = *(++argv); | 696 | listfile = *(++argv); |
697 | printf("erik: listfile='%s'\n", listfile); | ||
685 | break; | 698 | break; |
686 | case 'n': | 699 | case 'n': |
687 | { | 700 | { |
688 | char *cp=NULL; | 701 | char *cp=NULL; |
689 | 702 | ||
690 | if (--argc == 0) { | ||
691 | goto goodbye; | ||
692 | } | ||
693 | if (*(*argv+1) != 0) { | 703 | if (*(*argv+1) != 0) { |
694 | cp = ++(*argv); | 704 | cp = ++(*argv); |
695 | } else { | 705 | } else { |
706 | if (--argc == 0) { | ||
707 | goto goodbye; | ||
708 | } | ||
696 | cp = *(++argv); | 709 | cp = *(++argv); |
697 | } | 710 | } |
698 | i = strtoul(cp, &tmp, 0); | 711 | i = strtoul(cp, &tmp, 0); |
699 | //printf("cp='%s' i='%d'\n", cp, i); | 712 | //printf("cp='%s' i='%d'\n", cp, i); |
713 | printf("erik: namelen=%d\n", i); | ||
700 | if (*tmp) | 714 | if (*tmp) |
701 | show_usage(); | 715 | show_usage(); |
702 | if (i == 14) | 716 | if (i == 14) |
@@ -727,7 +741,7 @@ goodbye: | |||
727 | } | 741 | } |
728 | } | 742 | } |
729 | } else { | 743 | } else { |
730 | //printf("else: argc='%d' argv='%s'\n", argc, *argv); | 744 | printf("else: argc='%d' argv='%s'\n", argc, *argv); |
731 | if (device_name == NULL) | 745 | if (device_name == NULL) |
732 | device_name = *argv; | 746 | device_name = *argv; |
733 | else if (BLOCKS == 0) | 747 | else if (BLOCKS == 0) |