]> gitweb.hhaalo.de Git - feierabend.git/commitdiff
remove value use get string date
authorBastian Dehn <hhaalo@arcor.de>
Sat, 14 Feb 2026 11:06:01 +0000 (12:06 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 14 Feb 2026 11:06:01 +0000 (12:06 +0100)
src/time_format.c
src/time_format.h
src/xml.c

index efe6fe1e20d0e52821c61d33a64ff39678f4e593..eb5819bea7f8fd95ed898775406457637ad0c3c5 100644 (file)
@@ -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;
index 5d993c0f72d90bef6ca23887487a0e1c0ceac5d5..5922364574e34b3842daabd2b6877f7fdd41b58f 100644 (file)
@@ -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);
index f2224e315ddabe7af52d80b767533b1e6f48023f..66e50638954f1d470cd067bd02ddc9aaa1d1cbba 100644 (file)
--- 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);