diff --git a/parsing/sources/usage.c b/parsing/sources/usage.c new file mode 100644 index 0000000..b0f67d9 --- /dev/null +++ b/parsing/sources/usage.c @@ -0,0 +1,53 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* usage.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: rparodi +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2026/03/28 15:07:55 by rparodi #+# #+# */ +/* Updated: 2026/03/28 15:37:34 by rparodi ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "parsing.h" +#include + +static void _print_short_without_option(const size_t size) { + printf("[-"); + for (size_t i = 0; i < size; i++) { + if (isprint(_flags[i].short_option) && !_flags[i].usage) { + printf("%c", _flags[i].short_option); + } + } + printf("]"); +} + +static void _print_short_with_option(const size_t size) { + for (size_t i = 0; i < size; i++) { + if (isprint(_flags[i].short_option) && _flags[i].usage) { + printf(" [-%c NUMBER]", _flags[i].short_option); + } + } +} + +static void _print_long(const size_t size) { + for (size_t i = 0; i < size; i++) { + if (_flags[i].long_option) { + if (!_flags[i].usage) { + printf(" [--%s]", _flags[i].long_option); + } + else { + printf(" [--%s=NUMBER]", _flags[i].long_option); + } + } + } +} + +void print_usage(const size_t size) { + printf("Usage: ft_ping "); + _print_short_without_option(size); + _print_short_with_option(size); + _print_long(size); + putchar('\n'); +}