diff --git a/srcs/includes/ft_ping.h b/srcs/includes/ft_ping.h index 97ebe81..1c20769 100644 --- a/srcs/includes/ft_ping.h +++ b/srcs/includes/ft_ping.h @@ -32,7 +32,7 @@ Send ICMP ECHO_REQUEST packets to network hosts.\n\ -W, --linger=N Number of seconds to wait for response\n\ -v, --verbose Enable verbose mode\n\ \n\ - -h, --help Print this usage info\n" + -h, -?, --help Print this usage info\n" extern int g_stop; diff --git a/srcs/parsing.c b/srcs/parsing.c index 63a2f5e..60fcda9 100644 --- a/srcs/parsing.c +++ b/srcs/parsing.c @@ -6,7 +6,7 @@ /* By: tomoron +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/04/26 17:01:53 by tomoron #+# #+# */ -/* Updated: 2025/08/15 02:16:12 by tomoron ### ########.fr */ +/* Updated: 2025/08/18 15:50:29 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ #include "includes/ft_ping.h" @@ -52,9 +52,9 @@ double get_set_float(char *arg, t_settings *set) int check_values(t_settings *set, char *name) { - if(set->setTtl) + if (set->setTtl) { - if(set->ttl == 0) + if (set->ttl == 0) { fprintf(stderr, "%s: option value too small: %d\n", name, set->ttl); return(0); @@ -65,17 +65,18 @@ int check_values(t_settings *set, char *name) return(0); } } - if(set->interval < 0.2) + if (set->interval < 0.2) { fprintf(stderr, "%s: option value is too small: %g\n", name, set->interval); return(0); } - return(1); + return (1); } void init_settings(t_settings *set) { char *tmp; + tmp = set->name; bzero(set, sizeof(t_settings)); set->name = tmp; @@ -100,7 +101,15 @@ int parse_args(int argc, char **argv, t_settings *set) {0, 0, 0, 0} }; - + for(int i = 1; i < argc; i++) + { + if(!strcmp(argv[i], "-?")) + { + show_help(set); + return (1); + } + } + unsetenv("POSIXLY_CORRECT"); init_settings(set); arg = 0; @@ -126,26 +135,26 @@ int parse_args(int argc, char **argv, t_settings *set) case 'h': case '?': show_help(set); - return(1); + return (1); default : - break; + break ; } } - while(optind < argc) + while (optind < argc) { - if(!add_host(set, argv[optind])) + if (!add_host(set, argv[optind])) { set->err = 1; return (0); } optind++; } - if(!set->hosts) + if (!set->hosts) { fprintf(stderr, "%s: missing host operand\n", set->name); set->err = 1; - return(1); + return (1); } if (!set->err) set->err = !check_values(set, argv[0]);