Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/mkext4/mkext4.c

    r6ba36a0 r4bb4cf88  
    5656        aoff64_t nblocks;
    5757        const char *label = "";
     58        unsigned int bsize = 4096;
    5859
    5960        cfg.version = ext4_def_fs_version;
     
    6869        ++argv;
    6970
    70         while (*argv[0] == '-') {
     71        while (*argv && *argv[0] == '-') {
    7172                if (str_cmp(*argv, "--size") == 0) {
    7273                        --argc;
     
    8788                        --argc;
    8889                        ++argv;
     90                        continue;
     91                }
     92
     93                if (str_cmp(*argv, "--bsize") == 0) {
     94                        --argc;
     95                        ++argv;
     96                        if (*argv == NULL) {
     97                                printf(NAME ": Error, argument missing.\n");
     98                                syntax_print();
     99                                return 1;
     100                        }
     101
     102                        bsize = strtol(*argv, &endptr, 10);
     103                        if (*endptr != '\0') {
     104                                printf(NAME ": Error, invalid argument.\n");
     105                                syntax_print();
     106                                return 1;
     107                        }
     108
     109                        --argc;
     110                        ++argv;
     111                        continue;
    89112                }
    90113
     
    107130                        --argc;
    108131                        ++argv;
     132                        continue;
    109133                }
    110134
     
    122146                        --argc;
    123147                        ++argv;
     148                        continue;
     149                }
     150
     151                if (str_cmp(*argv, "--help") == 0) {
     152                        syntax_print();
     153                        return 0;
    124154                }
    125155
     
    128158                        ++argv;
    129159                        break;
     160                } else {
     161                        printf(NAME ": Invalid argument: %s\n", *argv);
     162                        syntax_print();
     163                        return 1;
    130164                }
    131165        }
     
    147181
    148182        cfg.volume_name = label;
     183        cfg.bsize = bsize;
    149184        (void) nblocks;
    150185
     
    166201            "\t--size <sectors> Filesystem size, overrides device size\n"
    167202            "\t--label <label>  Volume label\n"
    168             "\t--type <fstype>  Filesystem type (ext2, ext2old)\n");
     203            "\t--type <fstype>  Filesystem type (ext2, ext2old)\n"
     204            "\t--bsize <bytes>  Filesystem block size in bytes (default = 4096)\n");
    169205}
    170206
Note: See TracChangeset for help on using the changeset viewer.