From 2144dbfb719dd0f693c01b8291413ec405aa889a Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Mon, 23 Feb 2026 19:45:49 +0100 Subject: [PATCH] change refactor validation arguments --- src/feierabend.c | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/src/feierabend.c b/src/feierabend.c index b77aef0..d8245fb 100644 --- a/src/feierabend.c +++ b/src/feierabend.c @@ -118,22 +118,41 @@ int _invalid_arguments() return EXIT_FAILURE; } +bool validate_arguments(const int argc, const char* argv[]) +{ + bool valid = validate_hourstring(argv[1]); + valid &= validate_minutestring(argv[2]); + + if (argc == 3) + return valid; + + valid &= validate_hourstring(argv[3]); + valid &= validate_minutestring(argv[4]); + + return valid; +} + +bool validate_argument_number(const int argc) +{ + bool valid = argc == 3; + valid |= argc == 5; + + return valid; +} + int main(const int argc, const char* argv[]) { - if (argc < 3 || (argc > 3 && argc < 5)) + if (!validate_argument_number(argc)) return _few_arguments(argv); + if (!validate_arguments(argc, argv)) + return _invalid_arguments(); + const char* begin_hour = argv[1]; const char* begin_min = argv[2]; const char* end_hour = argv[3]; const char* end_min = argv[4]; - if (!validate_hourstring(begin_hour) || !validate_minutestring(begin_min)) - return _invalid_arguments(); - - if (argc == 5 && (!validate_hourstring(end_hour) || !validate_minutestring(end_min))) - return _invalid_arguments(); - printf("Version: %s\n\n", PROJECT_VERSION); const time_t now = _init_time_with_args(end_hour, end_min); -- 2.47.3