fix: check if option exist

This commit is contained in:
2025-12-16 08:50:17 -06:00
parent 4466ac1c60
commit ef875a060b

View File

@@ -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