From 6dc85e7d68e73a4d2763d01729c47a08c3e6d0d7 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 15 Feb 2026 12:12:33 +0100 Subject: [PATCH] change write xml element --- src/xml.c | 40 +++++++++++++++------------------------- 1 file changed, 15 insertions(+), 25 deletions(-) diff --git a/src/xml.c b/src/xml.c index 2b7d7ce..af87c36 100644 --- a/src/xml.c +++ b/src/xml.c @@ -184,6 +184,14 @@ struct tm _init_tm_with_date(const char* date, const uint8_t hour, const uint8_t return value; } +void _write_element(xmlTextWriterPtr xmlWriter, const char* name) +{ + xmlChar* xmlElemName = xmlCharStrdup(name); + xmlTextWriterStartElement(xmlWriter, xmlElemName); + free(xmlElemName); + xmlElemName = NULL; +} + void _write_attribute(xmlTextWriterPtr xmlWriter, const char* name, char** value) { xmlChar* xmlElemName = xmlCharStrdup(name); @@ -215,13 +223,7 @@ void _write_entry_node(xmlTextWriterPtr xmlWriter, const time_t breaktime = get_break_time(brutto_worktime); const time_t updated_saldo = last_saldo + (overtime * -1); - xmlChar* xmlElemName = NULL; - xmlChar* xmlElemContent = NULL; - - xmlElemName = xmlCharStrdup("eintrag"); - xmlTextWriterStartElement(xmlWriter, xmlElemName); - free(xmlElemName); - xmlElemName = NULL; + _write_element(xmlWriter, "eintrag"); char* wday_short_str = get_weekday_short_str(end_tm.tm_wday); _write_attribute(xmlWriter, "wochentag", &wday_short_str); @@ -241,36 +243,26 @@ void _write_entry_node(xmlTextWriterPtr xmlWriter, _write_attribute(xmlWriter, "stunden", &overtimestr); char* updated_saldostr = get_time_str(updated_saldo); _write_attribute(xmlWriter, "saldo", &updated_saldostr); - xmlTextWriterEndElement(xmlWriter); - free(xmlElemContent); - xmlElemContent = NULL; - free(xmlElemName); - xmlElemName = NULL; + xmlTextWriterEndElement(xmlWriter); } void init_time_acount() { - xmlChar* xmlElemName = NULL; - xmlChar* xmlElemContent = NULL; - xmlCharEncodingHandlerPtr encodingHandler = xmlGetCharEncodingHandler(XML_CHAR_ENCODING_UTF8); xmlOutputBufferPtr xmloutbuffer = xmlOutputBufferCreateFd(1, encodingHandler); xmlTextWriterPtr xmlWriter = xmlNewTextWriter(xmloutbuffer); xmlTextWriterSetIndent(xmlWriter, 8); - xmlElemContent = xmlCharStrdup("\t"); + xmlChar* xmlElemContent = xmlCharStrdup("\t"); xmlTextWriterSetIndentString(xmlWriter, xmlElemContent); free(xmlElemContent); xmlElemContent = NULL; xmlTextWriterStartDocument(xmlWriter, "1.0", "UTF-8", NULL); - xmlElemName = xmlCharStrdup("zeitkonto"); - xmlTextWriterStartElement(xmlWriter, xmlElemName); - free(xmlElemName); - xmlElemName = NULL; + _write_element(xmlWriter, "zeitkonto"); - xmlElemName = xmlCharStrdup("anfangssaldo"); + xmlChar* xmlElemName = xmlCharStrdup("anfangssaldo"); xmlElemContent = xmlCharStrdup("00:00"); xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent); free(xmlElemName); @@ -309,12 +301,11 @@ void add_entry(const char* date, char* saldostr = _read_last_saldo(file_content); const time_t saldo = get_seconds_from_str(saldostr); - xmlChar* xmlElemContent = NULL; xmlCharEncodingHandlerPtr encodingHandler = xmlGetCharEncodingHandler(XML_CHAR_ENCODING_UTF8); xmlOutputBufferPtr xmloutbuffer = xmlOutputBufferCreateFd(1, encodingHandler); xmlTextWriterPtr xmlwriter = xmlNewTextWriter(xmloutbuffer); xmlTextWriterSetIndent(xmlwriter, 8); - xmlElemContent = xmlCharStrdup("\t"); + xmlChar* xmlElemContent = xmlCharStrdup("\t"); xmlTextWriterSetIndentString(xmlwriter, xmlElemContent); free(xmlElemContent); xmlElemContent = NULL; @@ -381,12 +372,11 @@ void merge(const char* dir) return; } - xmlChar* xmlElemContent = NULL; xmlCharEncodingHandlerPtr encodingHandler = xmlGetCharEncodingHandler(XML_CHAR_ENCODING_UTF8); xmlOutputBufferPtr xmloutbuffer = xmlOutputBufferCreateFd(1, encodingHandler); xmlTextWriterPtr xmlwriter = xmlNewTextWriter(xmloutbuffer); xmlTextWriterSetIndent(xmlwriter, 8); - xmlElemContent = xmlCharStrdup("\t"); + xmlChar* xmlElemContent = xmlCharStrdup("\t"); xmlTextWriterSetIndentString(xmlwriter, xmlElemContent); free(xmlElemContent); xmlElemContent = NULL; -- 2.47.3