From: Bastian Dehn Date: Sat, 14 Feb 2026 11:06:01 +0000 (+0100) Subject: remove value use get string date X-Git-Tag: 1.3.12^2~11 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=8d72b55c16a31221a7b95c9ed0f17fb5f67ed396;p=feierabend.git remove value use get string date --- diff --git a/src/time_format.c b/src/time_format.c index efe6fe1..eb5819b 100644 --- a/src/time_format.c +++ b/src/time_format.c @@ -5,7 +5,7 @@ #define ONE_HOUR 3600 #define MINUTE 60 -#define MAX_TIME_STR_LENGTH 9 +#define MAX_TIME_STR_LENGTH 36 char* _strdup(const char* str) { @@ -91,6 +91,37 @@ char* get_weekday_short_str(uint8_t wday) } } +char* get_date_str(struct tm date) +{ + char* datestr = malloc(sizeof(char) * MAX_TIME_STR_LENGTH); + if (datestr == NULL) + return NULL; + + memset(datestr, 0, MAX_TIME_STR_LENGTH); + + sprintf(datestr, "%04d-%02d-%02d", + date.tm_year + 1900, + date.tm_mon + 1, + date.tm_mday); + + return datestr; +} + +char* get_time_str_from_tm(struct tm time) +{ + char* timestr = malloc(sizeof(char) * MAX_TIME_STR_LENGTH); + if (timestr == NULL) + return NULL; + + memset(timestr, 0, MAX_TIME_STR_LENGTH); + + sprintf(timestr, "%02d:%02d", + time.tm_hour, + time.tm_min); + + return timestr; +} + uint16_t get_year_from_str(const char* date) { uint16_t value = 0; diff --git a/src/time_format.h b/src/time_format.h index 5d993c0..5922364 100644 --- a/src/time_format.h +++ b/src/time_format.h @@ -8,6 +8,8 @@ char* get_time_str(time_t timediff); char* get_time_overtime_str(time_t timediff); char* get_weekday_str(uint8_t wday); char* get_weekday_short_str(uint8_t wday); +char* get_date_str(struct tm date); +char* get_time_str_from_tm(struct tm time); time_t get_seconds_from_str(const char* timestr); uint16_t get_year_from_str(const char* date); diff --git a/src/xml.c b/src/xml.c index f2224e3..66e5063 100644 --- a/src/xml.c +++ b/src/xml.c @@ -172,50 +172,45 @@ void write_entry_node(xmlTextWriterPtr xmlWriter, free(xmlElemName); xmlElemName = NULL; - char* value = get_weekday_short_str(end_tm.tm_wday); + char* wday_short_str = get_weekday_short_str(end_tm.tm_wday); xmlElemName = xmlCharStrdup("wochentag"); - xmlElemContent = xmlCharStrdup(value); + xmlElemContent = xmlCharStrdup(wday_short_str); xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent); - free(value); - value = NULL; + free(wday_short_str); + wday_short_str = NULL; free(xmlElemName); xmlElemName = NULL; free(xmlElemContent); xmlElemContent = NULL; - value = malloc(sizeof(char) * MAX_STRING_LENGTH); - sprintf(value, "%04d-%02d-%02d", - begin_tm.tm_year + 1900, - begin_tm.tm_mon + 1, - begin_tm.tm_mday); + char* datestr = get_date_str(begin_tm); xmlElemName = xmlCharStrdup("datum"); - xmlElemContent = xmlCharStrdup(value); + xmlElemContent = xmlCharStrdup(datestr); xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent); - memset(value, 0, MAX_STRING_LENGTH); + free(datestr); + datestr = NULL; free(xmlElemName); xmlElemName = NULL; free(xmlElemContent); xmlElemContent = NULL; - sprintf(value, "%02d:%02d", - begin_tm.tm_hour, - begin_tm.tm_min); + char* begin_str = get_time_str_from_tm(begin_tm); xmlElemName = xmlCharStrdup("begin"); - xmlElemContent = xmlCharStrdup(value); + xmlElemContent = xmlCharStrdup(begin_str); xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent); - memset(value, 0, MAX_STRING_LENGTH); + free(begin_str); + begin_str = NULL; free(xmlElemName); xmlElemName = NULL; free(xmlElemContent); xmlElemContent = NULL; - sprintf(value, "%02d:%02d", - end_tm.tm_hour, - end_tm.tm_min); + char* end_str = get_time_str_from_tm(end_tm); xmlElemName = xmlCharStrdup("ende"); - xmlElemContent = xmlCharStrdup(value); + xmlElemContent = xmlCharStrdup(end_str); xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent); - memset(value, 0, MAX_STRING_LENGTH); + free(end_str); + end_str = NULL; free(xmlElemName); xmlElemName = NULL; free(xmlElemContent); @@ -256,7 +251,7 @@ void write_entry_node(xmlTextWriterPtr xmlWriter, char* overtimestr = get_time_overtime_str(overtime); xmlElemName = xmlCharStrdup("stunden"); - xmlElemContent = xmlCharStrdup(value); + xmlElemContent = xmlCharStrdup(overtimestr); xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent); free(overtimestr); overtimestr = NULL; @@ -278,8 +273,6 @@ void write_entry_node(xmlTextWriterPtr xmlWriter, xmlTextWriterEndElement(xmlWriter); - free(value); - value = NULL; free(xmlElemContent); xmlElemContent = NULL; free(xmlElemName);