]> gitweb.hhaalo.de Git - feierabend.git/commitdiff
change write xml element
authorBastian Dehn <hhaalo@arcor.de>
Sun, 15 Feb 2026 11:12:33 +0000 (12:12 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 15 Feb 2026 11:12:33 +0000 (12:12 +0100)
src/xml.c

index 2b7d7cedd9dfb26be9b5283069c2657fc26178fd..af87c366a99c19dfeff8653bc8793cb95e606b04 100644 (file)
--- 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;