]> gitweb.hhaalo.de Git - feierabend.git/commitdiff
add init with end time
authorBastian Dehn <hhaalo@arcor.de>
Mon, 23 Feb 2026 15:42:42 +0000 (16:42 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Mon, 23 Feb 2026 15:42:42 +0000 (16:42 +0100)
src/feierabend.c

index b48f6f52f2e058550f331094c6757df55a544270..4b18cf16caa1d79e095cfbfefafbb0f9b3200d41 100644 (file)
@@ -97,15 +97,19 @@ time_t _init_time_with_args(const char* hour, const char* min)
 {
        const time_t now = time(NULL);
        struct tm now_tm =  _get_tm_from_time(now);
-       now_tm.tm_hour = atoi(hour);
-       now_tm.tm_min = atoi(min);
+
+       if (hour != NULL)
+               now_tm.tm_hour = atoi(hour);
+
+       if (min != NULL)
+               now_tm.tm_min = atoi(min);
 
        return mktime(&now_tm);
 }
 
 int _few_arguments(const char* argv[])
 {
-       printf("ERROR: %s <begin_hours> <begin_minutes>\n", argv[0]);
+       printf("ERROR: %s <begin_hours> <begin_minutes> [<end_hours> <end_minutes>]\n", argv[0]);
        return EXIT_FAILURE;
 }
 
@@ -117,18 +121,24 @@ int _invalid_arguments()
 
 int main(const int argc, const char* argv[])
 {
-       if (argc < 3)
+       if (argc < 3 || argc > 3 && argc < 5)
                return _few_arguments(argv);
 
-       const char* hour = argv[1];
-       const char* min = argv[2];
-       if (!validate_hourstring(hour) || !validate_minutestring(min))
+       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 = time(NULL);
-       const time_t begin = _init_time_with_args(hour, min);
+       const time_t now = _init_time_with_args(argv[3], argv[4]);
+       const time_t begin = _init_time_with_args(begin_hour, begin_min);
        const time_t worktime_eight_end = get_eight_hour_end_worktime(begin);
        const time_t worktime_max_end = get_ten_hour_end_worktime(begin);