From 90d371dca47bcf743ef17370edd6ef502bfd56fc Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 23 Jun 2024 11:29:22 +0200 Subject: [PATCH] add saldo value to entry --- src/feierabendxml.c | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/src/feierabendxml.c b/src/feierabendxml.c index cbb31f4..5e5a0ae 100644 --- a/src/feierabendxml.c +++ b/src/feierabendxml.c @@ -80,7 +80,8 @@ void writeEntryNode(xmlTextWriterPtr xmlWriter, int begin_hour, int begin_min, int end_hour, - int end_min) + int end_min, + int last_saldo) { feierabend* fabend = malloc(sizeof(feierabend)); init_feierabend(fabend); @@ -197,6 +198,17 @@ void writeEntryNode(xmlTextWriterPtr xmlWriter, free(xmlElemContent); xmlElemContent = NULL; + *fabend->worktime += last_saldo; + get_time_str_overtime(*fabend->worktime, value); + xmlElemName = xmlCharStrdup("saldo"); + xmlElemContent = xmlCharStrdup(value); + xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent); + memset(value, 0, MAX_STRING_LENGTH); + free(xmlElemName); + xmlElemName = NULL; + free(xmlElemContent); + xmlElemContent = NULL; + xmlTextWriterEndElement(xmlWriter); free(value); @@ -210,7 +222,10 @@ void writeEntryNode(xmlTextWriterPtr xmlWriter, fabend = NULL; } -void createEntry(int begin_hour, int begin_min, int end_hour, int end_min) +void createEntry(int begin_hour, + int begin_min, + int end_hour, + int end_min) { xmlChar* xmlElemName = NULL; xmlChar* xmlElemContent = NULL; @@ -237,7 +252,7 @@ void createEntry(int begin_hour, int begin_min, int end_hour, int end_min) free(xmlElemContent); xmlElemContent = NULL; - writeEntryNode(xmlWriter, begin_hour, begin_min, end_hour, end_min); + writeEntryNode(xmlWriter, begin_hour, begin_min, end_hour, end_min, 0); xmlTextWriterEndElement(xmlWriter); xmlTextWriterEndDocument(xmlWriter); @@ -294,7 +309,9 @@ void readLastSaldo(const char* file_path, char* value) exit(EXIT_FAILURE); } - strncpy(value, (char*) xmlnode->nodesetval->nodeTab[0]->children->content, 7); + strncpy(value, + (char*) xmlnode->nodesetval->nodeTab[0]->children->content, + MAX_STRING_LENGTH); free(expr); expr = NULL; @@ -334,8 +351,8 @@ int main(int argc, char* argv[]) printf("ERROR: %s add \n", argv[0]); return 1; } - char* saldo = malloc(sizeof(char) * 7); - memset(saldo, 0, 7); + char* saldo = malloc(sizeof(char) * MAX_STRING_LENGTH); + memset(saldo, 0, MAX_STRING_LENGTH); readLastSaldo(argv[6], saldo); -- 2.39.5