From 8e0b9a5fc664d89b40adaffafe5fec9aca19172d Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 8 Feb 2026 08:27:36 +0100 Subject: [PATCH] change ptr time_t to none ptr --- src/feierabend.c | 86 ++++++++++++++---------------------------------- src/feierabend.h | 36 ++++++++++++++++++-- src/xml.c | 58 ++++++++++---------------------- 3 files changed, 75 insertions(+), 105 deletions(-) diff --git a/src/feierabend.c b/src/feierabend.c index 7b3174c..e3541ab 100644 --- a/src/feierabend.c +++ b/src/feierabend.c @@ -8,42 +8,6 @@ #define MAX_TIME_STR_LENGTH 7 -feierabend* _feierabend_init() -{ - feierabend* fabend = malloc(sizeof(feierabend)); - - if (fabend == NULL) - return NULL; - - fabend->now = malloc(sizeof(time_t)); - fabend->begin = malloc(sizeof(time_t)); - fabend->worktime = malloc(sizeof(time_t)); - fabend->now_tm = malloc(sizeof(struct tm)); - fabend->begin_tm = malloc(sizeof(struct tm)); - fabend->work_end_tm = malloc(sizeof(struct tm)); - fabend->max_work_end_tm = malloc(sizeof(struct tm)); - - return fabend; -} - -void _feierabend_free(feierabend* fabend) -{ - free(fabend->now); - fabend->now = NULL; - free(fabend->begin); - fabend->begin = NULL; - free(fabend->worktime); - fabend->worktime = NULL; - free(fabend->now_tm); - fabend->now_tm = NULL; - free(fabend->begin_tm); - fabend->begin_tm = NULL; - free(fabend->work_end_tm); - fabend->work_end_tm = NULL; - free(fabend->max_work_end_tm); - fabend->max_work_end_tm = NULL; -} - void _print_german_long_date(const struct tm* time_info) { char* weekday = get_weekday_str(time_info->tm_wday); @@ -60,15 +24,15 @@ void _print_german_long_date(const struct tm* time_info) weekday = NULL; } -void _set_time(time_t* value, struct tm* tm_value, int hour, int minutes) +time_t _set_time(time_t value, struct tm* tm_value, int hour, int minutes) { - time(value); + time(&value); - localtime_r(value, tm_value); + localtime_r(&value, tm_value); tm_value->tm_hour = hour; tm_value->tm_min = minutes; - *value = mktime(tm_value); + return mktime(tm_value); } void _print_work_begin(const feierabend* fabend) @@ -109,8 +73,8 @@ void _print_brutto_worktime(feierabend* fabend) if (timestr == NULL) return; - *fabend->worktime = get_brutto_worktime(*fabend->begin, *fabend->now); - get_time_str(*fabend->worktime, timestr); + fabend->worktime = get_brutto_worktime(fabend->begin, fabend->now); + get_time_str(fabend->worktime, timestr); printf("%-26s%6s\n", "Brutto Arbeitzeit:", timestr); free(timestr); @@ -123,8 +87,8 @@ void _print_netto_worktime(feierabend* fabend) if (timestr == NULL) return; - *fabend->worktime = get_current_worktime(*fabend->begin, *fabend->now); - get_time_str(*fabend->worktime, timestr); + fabend->worktime = get_current_worktime(fabend->begin, fabend->now); + get_time_str(fabend->worktime, timestr); printf("%-26s%6s\n", "Netto Arbeitzeit:", timestr); free(timestr); @@ -138,9 +102,9 @@ void _print_current_breaktime(feierabend* fabend) if (timestr == NULL) return; - *fabend->worktime = get_brutto_worktime(*fabend->begin, *fabend->now); - *fabend->worktime = get_break_time(*fabend->worktime); - get_time_str(*fabend->worktime, timestr); + fabend->worktime = get_brutto_worktime(fabend->begin, fabend->now); + fabend->worktime = get_break_time(fabend->worktime); + get_time_str(fabend->worktime, timestr); printf("%-26s%6s\n", "Aktuelle Pausenzeit:", timestr); free(timestr); @@ -154,8 +118,8 @@ void _print_time_to_end_worktime(feierabend* fabend) if (timestr == NULL) return; - *fabend->worktime = get_current_worktime_diff_to_end_eight_hour(*fabend->begin, *fabend->now); - get_time_str(*fabend->worktime, timestr); + fabend->worktime = get_current_worktime_diff_to_end_eight_hour(fabend->begin, fabend->now); + get_time_str(fabend->worktime, timestr); printf("Arbeitzeit bis %02d:%02d Std: %6s\n", SOLL_HOUR, SOLL_MINUTES, @@ -172,8 +136,8 @@ void _print_time_to_max_end_worktime(feierabend* fabend) if (timestr == NULL) return; - *fabend->worktime = get_current_worktime_diff_to_end_ten_hour(*fabend->begin, *fabend->now); - get_time_str(*fabend->worktime, timestr); + fabend->worktime = get_current_worktime_diff_to_end_ten_hour(fabend->begin, fabend->now); + get_time_str(fabend->worktime, timestr); printf("Arbeitzeit bis 10:00 Std: %6s\n", timestr); free(timestr); @@ -201,22 +165,22 @@ int main(int argc, const char* argv[]) } } - feierabend* fabend = _feierabend_init(); + feierabend* fabend = feierabend_init(); printf("Version: %s\n\n", PROJECT_VERSION); - _set_time(fabend->begin, fabend->begin_tm, atoi(argv[1]), atoi(argv[2])); + fabend->begin = _set_time(fabend->begin, fabend->begin_tm, atoi(argv[1]), atoi(argv[2])); - time(fabend->now); - localtime_r(fabend->now, fabend->now_tm); + time(&fabend->now); + localtime_r(&fabend->now, fabend->now_tm); if (argc == 5) - _set_time(fabend->now, fabend->now_tm, atoi(argv[3]), atoi(argv[4])); + fabend->now = _set_time(fabend->now, fabend->now_tm, atoi(argv[3]), atoi(argv[4])); - *fabend->worktime = get_eight_hour_end_worktime(*fabend->begin); - localtime_r(fabend->worktime, fabend->work_end_tm); + fabend->worktime = get_eight_hour_end_worktime(fabend->begin); + localtime_r(&fabend->worktime, fabend->work_end_tm); - *fabend->worktime = get_ten_hour_end_worktime(*fabend->begin); - localtime_r(fabend->worktime, fabend->max_work_end_tm); + fabend->worktime = get_ten_hour_end_worktime(fabend->begin); + localtime_r(&fabend->worktime, fabend->max_work_end_tm); _print_time_now(fabend); printf("\n"); @@ -234,7 +198,7 @@ int main(int argc, const char* argv[]) _print_time_to_end_worktime(fabend); _print_time_to_max_end_worktime(fabend); - _feierabend_free(fabend); + feierabend_free(fabend); free(fabend); fabend = NULL; diff --git a/src/feierabend.h b/src/feierabend.h index 0a8dfec..61e17ab 100644 --- a/src/feierabend.h +++ b/src/feierabend.h @@ -6,13 +6,43 @@ #define ONE_HOUR 3600 typedef struct { - time_t* now; - time_t* begin; - time_t* worktime; + time_t now; + time_t begin; + time_t worktime; struct tm* now_tm; struct tm* begin_tm; struct tm* work_end_tm; struct tm* max_work_end_tm; } feierabend; +feierabend* feierabend_init() +{ + feierabend* fabend = malloc(sizeof(feierabend)); + + if (fabend == NULL) + return NULL; + + fabend->now = 0; + fabend->begin = 0; + fabend->worktime = 0; + fabend->now_tm = malloc(sizeof(struct tm)); + fabend->begin_tm = malloc(sizeof(struct tm)); + fabend->work_end_tm = malloc(sizeof(struct tm)); + fabend->max_work_end_tm = malloc(sizeof(struct tm)); + + return fabend; +} + +void feierabend_free(feierabend* fabend) +{ + free(fabend->now_tm); + fabend->now_tm = NULL; + free(fabend->begin_tm); + fabend->begin_tm = NULL; + free(fabend->work_end_tm); + fabend->work_end_tm = NULL; + free(fabend->max_work_end_tm); + fabend->max_work_end_tm = NULL; +} + #endif \ No newline at end of file diff --git a/src/xml.c b/src/xml.c index fabcb84..2886a99 100644 --- a/src/xml.c +++ b/src/xml.c @@ -35,30 +35,6 @@ void free_memFile(memFile* mem) { mem->size = NULL; } -feierabend* feierabend_init() -{ - feierabend* fabend = malloc(sizeof(feierabend)); - - if (fabend == NULL) - return NULL; - - fabend->now = malloc(sizeof(time_t)); - fabend->begin = malloc(sizeof(time_t)); - fabend->worktime = malloc(sizeof(time_t)); - - return fabend; -} - -void feierabend_free(feierabend* fabend) -{ - free(fabend->now); - fabend->now = NULL; - free(fabend->begin); - fabend->begin = NULL; - free(fabend->worktime); - fabend->worktime = NULL; -} - void readStdInIntoMemory(memFile* mem) { char* buf = malloc(sizeof(char)); @@ -144,8 +120,8 @@ void writeEntryNode(xmlTextWriterPtr xmlWriter, free(xmlElemName); xmlElemName = NULL; - time(fabend->now); - fabend->now_tm = gmtime(fabend->now); + time(&fabend->now); + fabend->now_tm = gmtime(&fabend->now); if (date != NULL) { fabend->now_tm->tm_year = get_year_from_str(date) - 1900; fabend->now_tm->tm_mon = get_month_from_str(date) - 1; @@ -153,7 +129,7 @@ void writeEntryNode(xmlTextWriterPtr xmlWriter, } fabend->now_tm->tm_hour = end_hour; fabend->now_tm->tm_min = end_min; - *fabend->now = mktime(fabend->now_tm); + fabend->now = mktime(fabend->now_tm); char* value = get_short_weekday(fabend->now_tm->tm_wday); xmlElemName = xmlCharStrdup("wochentag"); xmlElemContent = xmlCharStrdup(value); @@ -177,8 +153,8 @@ void writeEntryNode(xmlTextWriterPtr xmlWriter, free(xmlElemContent); xmlElemContent = NULL; - time(fabend->begin); - fabend->begin_tm = gmtime(fabend->begin); + time(&fabend->begin); + fabend->begin_tm = gmtime(&fabend->begin); if (date != NULL) { fabend->begin_tm->tm_year = get_year_from_str(date) - 1900; fabend->begin_tm->tm_mon = get_month_from_str(date) - 1; @@ -189,7 +165,7 @@ void writeEntryNode(xmlTextWriterPtr xmlWriter, sprintf(value, "%02d:%02d", fabend->begin_tm->tm_hour, fabend->begin_tm->tm_min); - *fabend->begin = mktime(fabend->begin_tm); + fabend->begin = mktime(fabend->begin_tm); xmlElemName = xmlCharStrdup("begin"); xmlElemContent = xmlCharStrdup(value); xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent); @@ -199,8 +175,8 @@ void writeEntryNode(xmlTextWriterPtr xmlWriter, free(xmlElemContent); xmlElemContent = NULL; - *fabend->worktime = get_eight_hour_end_worktime(*fabend->begin); - fabend->work_end_tm = gmtime(fabend->worktime); + fabend->worktime = get_eight_hour_end_worktime(fabend->begin); + fabend->work_end_tm = gmtime(&fabend->worktime); if (date != NULL) { fabend->work_end_tm->tm_year = get_year_from_str(date) - 1900; fabend->work_end_tm->tm_mon = get_month_from_str(date) - 1; @@ -220,8 +196,8 @@ void writeEntryNode(xmlTextWriterPtr xmlWriter, free(xmlElemContent); xmlElemContent = NULL; - *fabend->worktime = get_brutto_worktime(*fabend->begin, *fabend->now); - time_t breaktime = get_break_time(*fabend->worktime); + fabend->worktime = get_brutto_worktime(fabend->begin, fabend->now); + time_t breaktime = get_break_time(fabend->worktime); get_time_str(breaktime, value); xmlElemName = xmlCharStrdup("pause"); xmlElemContent = xmlCharStrdup(value); @@ -242,8 +218,8 @@ void writeEntryNode(xmlTextWriterPtr xmlWriter, free(xmlElemContent); xmlElemContent = NULL; - *fabend->worktime = get_current_worktime(*fabend->begin, *fabend->now); - get_time_str(*fabend->worktime, value); + fabend->worktime = get_current_worktime(fabend->begin, fabend->now); + get_time_str(fabend->worktime, value); xmlElemName = xmlCharStrdup("arbeitszeit"); xmlElemContent = xmlCharStrdup(value); xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent); @@ -253,8 +229,8 @@ void writeEntryNode(xmlTextWriterPtr xmlWriter, free(xmlElemContent); xmlElemContent = NULL; - *fabend->worktime = get_current_worktime_diff_to_end_eight_hour(*fabend->begin, *fabend->now); - get_time_str_overtime(*fabend->worktime, value); + fabend->worktime = get_current_worktime_diff_to_end_eight_hour(fabend->begin, fabend->now); + get_time_str_overtime(fabend->worktime, value); xmlElemName = xmlCharStrdup("stunden"); xmlElemContent = xmlCharStrdup(value); xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent); @@ -264,9 +240,9 @@ void writeEntryNode(xmlTextWriterPtr xmlWriter, free(xmlElemContent); xmlElemContent = NULL; - *fabend->worktime *= -1; - *fabend->worktime += last_saldo; - get_time_str(*fabend->worktime, value); + fabend->worktime *= -1; + fabend->worktime += last_saldo; + get_time_str(fabend->worktime, value); xmlElemName = xmlCharStrdup("saldo"); xmlElemContent = xmlCharStrdup(value); xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent); -- 2.47.3