Changeset 0aa300d in mainline for uspace/app/sportdmp/sportdmp.c


Ignore:
Timestamp:
2012-07-29T23:08:51Z (12 years ago)
Author:
Martin Sucha <sucha14@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5ea75f0
Parents:
dce39b4
Message:

sportdmp: make baud argument optional

File:
1 edited

Legend:

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

    rdce39b4 r0aa300d  
    3737static void syntax_print(void)
    3838{
    39         fprintf(stderr, "Usage: sportdmp <baud> <device_service>\n");
     39        fprintf(stderr, "Usage: sportdmp [--baud=<baud>] [device_service]\n");
    4040}
    4141
     
    4545        sysarg_t baud = 9600;
    4646       
    47         if (argc > 1) {
     47        int arg = 1;
     48               
     49        if (argc > arg && str_test_prefix(argv[arg], "--baud=")) {
     50                size_t arg_offset = str_lsize(argv[arg], 7);
     51                char* arg_str = argv[arg] + arg_offset;
     52                if (str_length(arg_str) == 0) {
     53                        fprintf(stderr, "--baud requires an argument\n");
     54                        syntax_print();
     55                        return 1;
     56                }
    4857                char *endptr;
    49                 baud = strtol(argv[1], &endptr, 10);
     58                baud = strtol(arg_str, &endptr, 10);
    5059                if (*endptr != '\0') {
    5160                        fprintf(stderr, "Invalid value for baud\n");
     
    5362                        return 1;
    5463                }
     64                arg++;
    5565        }
    5666       
    57         if (argc > 2) {
    58                 svc_path = argv[2];
     67        if (argc > arg) {
     68                svc_path = argv[arg];
     69                arg++;
    5970        }
    6071       
    61         if (argc > 3) {
     72        if (argc > arg) {
     73                fprintf(stderr, "Too many arguments\n");
    6274                syntax_print();
    6375                return 1;
Note: See TracChangeset for help on using the changeset viewer.