diff --git a/includes/help.h b/includes/help.h index 2a348a2..020257e 100644 --- a/includes/help.h +++ b/includes/help.h @@ -26,9 +26,9 @@ static options_t options[] = { #undef GRP }; -#define OPT_NB 5 +#define OPT_NB 7 -#define FT_PING_V 0.1 +#define FT_PING_V "0.1" #define OPT_WHILE \ int i = 0; \ diff --git a/src/help.c b/src/help.c index 1e6d719..805b2ee 100644 --- a/src/help.c +++ b/src/help.c @@ -2,6 +2,7 @@ #include #include +#include void print_help(void) { printf("Usage: ping [OPTION...] HOST ...\n"); @@ -9,24 +10,40 @@ void print_help(void) { printf(" All the mandatory options : \n"); OPT_WHILE { - if (options[i].grp == 1) - printf(" -%c, --%s:\t %s\n", options[i].opt, options[i].name, - options[i].doc); + if (options[i].grp == 1) { + if (strlen(options[i].name) > 5) + printf(" -%c, --%s:\t %s\n", options[i].opt, options[i].name, + options[i].doc); + else + printf(" -%c, --%s:\t\t %s\n", options[i].opt, options[i].name, + options[i].doc); + } i++; } + printf("\n All the bonuses options : \n"); i = 0; - printf(" All the bonuses options : \n"); while (i < OPT_NB) { - if (options[i].grp == 2) - printf(" -%c, --%s:\t %s\n", options[i].opt, options[i].name, - options[i].doc); + if (options[i].grp == 2) { + if (strlen(options[i].name) > 5) + printf(" -%c, --%s:\t %s\n", options[i].opt, options[i].name, + options[i].doc); + else + printf(" -%c, --%s:\t\t %s\n", options[i].opt, options[i].name, + options[i].doc); + } i++; } - printf(" All the prints and help function : \n"); + printf("\n All the prints and help function : \n"); + i = 0; while (i < OPT_NB) { - if (options[i].grp == 0) - printf(" -%c, --%s:\t %s\n", options[i].opt, options[i].name, - options[i].doc); + if (options[i].grp == 0) { + if (strlen(options[i].name) > 5) + printf(" -%c, --%s:\t %s\n", options[i].opt, options[i].name, + options[i].doc); + else + printf(" -%c, --%s:\t\t %s\n", options[i].opt, options[i].name, + options[i].doc); + } i++; } printf( diff --git a/src/main.c b/src/main.c index c5b54c9..b786621 100644 --- a/src/main.c +++ b/src/main.c @@ -10,15 +10,28 @@ void init_args_t(args_t *args) { OPT_WHILE { args->opts[i] = false; args->arg[i] = NULL; + i++; } } -void handle_options(args_t *args) { +int handle_options(args_t *args, char **av) { // TODO: need to make this function D: + if (args->opts[1]) { + print_help(); + return EXIT_SUCCESS; + } else if (args->opts[0]) { + print_no_host(*av); + return EX_USAGE; + } else if (args->opts[2]) { + printf("adjoly's %s: v%s\n", *av, FT_PING_V); + return EXIT_SUCCESS; + } + return EXIT_SUCCESS; } int main(int ac, char **av) { args_t args; + init_args_t(&args); if (ac > 1) { int ret = opt_parse(av, &args); if (ret == -1) @@ -26,7 +39,7 @@ int main(int ac, char **av) { else if (ret != EXIT_SUCCESS) return ret; else - handle_options(&args); + return handle_options(&args, av); } else { print_no_host(*av); return EX_USAGE;