fix: check if option exist
This commit is contained in:
@@ -6,8 +6,6 @@
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user