/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* utils.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: rparodi +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2026/03/28 12:40:08 by rparodi #+# #+# */ /* Updated: 2026/03/28 15:22:10 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ #include "macro.h" #include "parsing.h" #include #include #include #include #include size_t args_size() { size_t i = 0; while (_flags[i].short_option != 0 || _flags[i].long_option != NULL) { i++; } return i; } static bool _is_valid_number(const char *str) { if (!str) return false; for (size_t i = 0; str[i]; i++) { if (!isdigit(str[i])) return false; } return true; } uint64_t check_num_arguments(char *arg) { if (!_is_valid_number(arg)) { ERROR_LOG(strerror(EINVAL)); exit(EXIT_FAILURE); } errno = 0; uint64_t value = strtoull(arg, NULL, 10); if (errno != 0 || value > UINT64_MAX) { ERROR_LOG(strerror(errno)) exit(EXIT_FAILURE); } return value; }