From bc57fe2cc23b0c0c943b1425ba74671cc37bd1f1 Mon Sep 17 00:00:00 2001 From: adjoly Date: Tue, 12 Aug 2025 13:44:43 +0200 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=F0=9F=8F=97=EF=B8=8F=E3=80=8D=20wip:?= =?UTF-8?q?=20polished=20a=20little=20the=20prints=20and=20fix=20short=20o?= =?UTF-8?q?pt=20not=20working?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- includes/help.h | 2 ++ src/help.c | 25 ++++++++++++++++--------- src/main.c | 10 ++++------ src/opt_parse.c | 7 ++++--- 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/includes/help.h b/includes/help.h index b883e84..3984fd5 100644 --- a/includes/help.h +++ b/includes/help.h @@ -58,3 +58,5 @@ void print_parse_err(error_t err, char *opt); void print_help(void); void print_usage(void); + +void print_version(void); diff --git a/src/help.c b/src/help.c index f685ca9..4793da4 100644 --- a/src/help.c +++ b/src/help.c @@ -56,15 +56,14 @@ void print_help(void) { void print_parse_err(error_t err, char *opt) { switch (err) { - case MISSING_HOST: - printf("%s: missing host operand\n", exec_name); - break; - case INVALID_OPT: - printf("%s: invalid option -- %s\n", exec_name, opt); - break; - case NEED_ARG: - printf("%s: option '--%s' requires an argument\n", exec_name, opt); - + case MISSING_HOST: + printf("%s: missing host operand\n", exec_name); + break; + case INVALID_OPT: + printf("%s: invalid option -- %s\n", exec_name, opt); + break; + case NEED_ARG: + printf("%s: option '--%s' requires an argument\n", exec_name, opt); } printf("Try 'ping --help' or 'ping --usage' for more information.\n"); } @@ -77,3 +76,11 @@ void print_usage(void) { } printf("HOST ...\n"); } + +void print_version(void) { + printf("adjoly's ft_ping: v%s\n", FT_PING_V); + printf( + "This is free software: you are free to change and redistribute it.\n"); + printf("There is NO WARRANTY, to the extent permitted by law.\n\n"); + printf("License MIT: Copyright (C) 2025 Adam\n"); +} diff --git a/src/main.c b/src/main.c index df12b4d..b3e7aa9 100644 --- a/src/main.c +++ b/src/main.c @@ -12,9 +12,9 @@ void init_args_t(args_t *args) { OPT_WHILE { args->opts[i] = false; args->arg[i] = NULL; - args->hosts = NULL; i++; } + args->hosts = NULL; } int handle_options(args_t *args, char **av) { @@ -25,7 +25,7 @@ int handle_options(args_t *args, char **av) { print_usage(); return EX_USAGE; } else if (args->opts[2]) { - printf("adjoly's %s: v%s\n", *av, FT_PING_V); + print_version(); return EXIT_SUCCESS; } else if (args->opts[1]) { print_help(); @@ -46,12 +46,10 @@ int main(int ac, char **av) { if (ret == -1) { free(args.hosts); return EXIT_SUCCESS; - } - else if (ret != EXIT_SUCCESS) { + } else if (ret != EXIT_SUCCESS) { free(args.hosts); return ret; - } - else { + } else { ret = handle_options(&args, av); free(args.hosts); return ret; diff --git a/src/opt_parse.c b/src/opt_parse.c index 77340fc..38298cf 100644 --- a/src/opt_parse.c +++ b/src/opt_parse.c @@ -39,12 +39,13 @@ int opt_parse(char **av, args_t *args) { OPT_WHILE { if (opt == options[i].opt) { OPT_HANDLE(i) - } else { - print_parse_err(INVALID_OPT, a); - return EXIT_FAILURE; } i++; } + if (i == OPT_NB) { + print_parse_err(INVALID_OPT, a); + return EXIT_FAILURE; + } } } else { if (args->hosts == NULL) {