diff --git a/src/parsing.c b/src/parsing.c index 6500673..47bd01c 100644 --- a/src/parsing.c +++ b/src/parsing.c @@ -6,8 +6,6 @@ #include #include - - static struct param *get_parameter(struct param parameters[], const char *str) { size_t count = (str[0] == '-') + (str[1] == '-'); @@ -26,19 +24,27 @@ char *parsing(char * const *av, struct param parameters[]) char *host = NULL; for (size_t i = 0; av[i]; i++) { - struct param *parameter = get_parameter(parameters, av[i]); - if (parameter) + if (av[i][0] == '-') { - if (parameter->type == OPTION) - parameter->value = (void*)true; + struct param *parameter = get_parameter(parameters, av[i]); + if (parameter) + { + if (parameter->type == OPTION) + parameter->value = (void*)true; + else + { + if (av[i + 1] == NULL) + { + print_err("%s: requirement argument", av[i]); + return NULL; + } + parameter->value = (char*) av[++i]; + } + } else { - if (av[i + 1] == NULL) - { - print_err("%s: requirement argument", av[i]); - return NULL; - } - parameter->value = (char*) av[++i]; + print_err("unrecognized option '%s\nTry 'ping -?' for more information.'", av[i]); + return NULL; } } else