From 17e90ae3abc0c20baa762bd481bf8226ab6f7ce5 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sat, 22 Jun 2024 12:17:51 +0200 Subject: [PATCH] change extra method for entry --- src/feierabendxml.c | 110 ++++++++++++++++++++++++++------------------ 1 file changed, 64 insertions(+), 46 deletions(-) diff --git a/src/feierabendxml.c b/src/feierabendxml.c index 2a5d2c2..16aa7ea 100644 --- a/src/feierabendxml.c +++ b/src/feierabendxml.c @@ -70,49 +70,18 @@ void initTimeAcount() xmlWriter = NULL; } -int main(int argc, char* argv[]) +void addEntryNode(xmlTextWriterPtr xmlWriter, + int begin_hour, + int begin_min, + int end_hour, + int end_min) { - if (argc == 2) { - if (strcmp(argv[1], "init") == 0) { - initTimeAcount(); - return 0; - } - } - - if (argc < 5) { - printf("ERROR: %s \n", argv[0]); - printf("ERROR: %s init\n", argv[0]); - return 1; - } - feierabend* fabend = malloc(sizeof(feierabend)); init_feierabend(fabend); xmlChar* xmlElemName = NULL; xmlChar* xmlElemContent = NULL; char* value = malloc(sizeof(char) * MAX_STRING_LENGTH); - xmlTextWriterPtr xmlWriter = xmlNewTextWriterFilename("/dev/stdout", 0); - xmlTextWriterSetIndent(xmlWriter, 8); - xmlElemContent = xmlCharStrdup("\t"); - xmlTextWriterSetIndentString(xmlWriter, xmlElemContent); - free(xmlElemContent); - xmlElemContent = NULL; - - xmlTextWriterStartDocument(xmlWriter, "1.0", "UTF-8", "true"); - - xmlElemName = xmlCharStrdup("zeitkonto"); - xmlTextWriterStartElement(xmlWriter, xmlElemName); - free(xmlElemName); - xmlElemName = NULL; - - xmlElemName = xmlCharStrdup("anfangssaldo"); - xmlElemContent = xmlCharStrdup("00:00"); - xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent); - free(xmlElemName); - xmlElemName = NULL; - free(xmlElemContent); - xmlElemContent = NULL; - xmlElemName = xmlCharStrdup("eintrag"); xmlTextWriterStartElement(xmlWriter, xmlElemName); free(xmlElemName); @@ -120,8 +89,8 @@ int main(int argc, char* argv[]) time(fabend->now); fabend->now_tm = gmtime(fabend->now); - fabend->now_tm->tm_hour = atoi(argv[3]); - fabend->now_tm->tm_min = atoi(argv[4]); + fabend->now_tm->tm_hour = end_hour; + fabend->now_tm->tm_min = end_min; *fabend->now = mktime(fabend->now_tm); get_short_weekday(fabend->now_tm->tm_wday, value); xmlElemName = xmlCharStrdup("wochentag"); @@ -148,8 +117,8 @@ int main(int argc, char* argv[]) time(fabend->begin); fabend->begin_tm = gmtime(fabend->begin); - fabend->begin_tm->tm_hour = atoi(argv[1]); - fabend->begin_tm->tm_min = atoi(argv[2]); + fabend->begin_tm->tm_hour = begin_hour; + fabend->begin_tm->tm_min = begin_min; sprintf(value, "%02d:%02d", fabend->begin_tm->tm_hour, fabend->begin_tm->tm_min); @@ -165,8 +134,8 @@ int main(int argc, char* argv[]) *fabend->worktime = get_eight_hour_end_worktime(*fabend->begin); fabend->work_end_tm = gmtime(fabend->worktime); - fabend->work_end_tm->tm_hour = atoi(argv[3]); - fabend->work_end_tm->tm_min = atoi(argv[4]); + fabend->work_end_tm->tm_hour = end_hour; + fabend->work_end_tm->tm_min = end_min; sprintf(value, "%02d:%02d", fabend->work_end_tm->tm_hour, fabend->work_end_tm->tm_min); @@ -223,8 +192,6 @@ int main(int argc, char* argv[]) xmlElemContent = NULL; xmlTextWriterEndElement(xmlWriter); - xmlTextWriterEndElement(xmlWriter); - xmlTextWriterEndDocument(xmlWriter); free(value); value = NULL; @@ -232,11 +199,62 @@ int main(int argc, char* argv[]) xmlElemContent = NULL; free(xmlElemName); xmlElemName = NULL; - xmlFreeTextWriter(xmlWriter); - xmlWriter = NULL; free_feierabend(fabend); free(fabend); fabend = NULL; +} + +int main(int argc, char* argv[]) +{ + if (argc == 2) { + if (strcmp(argv[1], "init") == 0) { + initTimeAcount(); + return 0; + } + } + + if (argc < 5) { + printf("ERROR: %s \n", argv[0]); + printf("ERROR: %s init\n", argv[0]); + return 1; + } + + xmlChar* xmlElemName = NULL; + xmlChar* xmlElemContent = NULL; + + xmlTextWriterPtr xmlWriter = xmlNewTextWriterFilename("/dev/stdout", 0); + xmlTextWriterSetIndent(xmlWriter, 8); + xmlElemContent = xmlCharStrdup("\t"); + xmlTextWriterSetIndentString(xmlWriter, xmlElemContent); + free(xmlElemContent); + xmlElemContent = NULL; + + xmlTextWriterStartDocument(xmlWriter, "1.0", "UTF-8", "true"); + + xmlElemName = xmlCharStrdup("zeitkonto"); + xmlTextWriterStartElement(xmlWriter, xmlElemName); + free(xmlElemName); + xmlElemName = NULL; + + xmlElemName = xmlCharStrdup("anfangssaldo"); + xmlElemContent = xmlCharStrdup("00:00"); + xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent); + free(xmlElemName); + xmlElemName = NULL; + free(xmlElemContent); + xmlElemContent = NULL; + + addEntryNode(xmlWriter, atoi(argv[1]), atoi(argv[2]), atoi(argv[3]), atoi(argv[4])); + + xmlTextWriterEndElement(xmlWriter); + xmlTextWriterEndDocument(xmlWriter); + + free(xmlElemContent); + xmlElemContent = NULL; + free(xmlElemName); + xmlElemName = NULL; + xmlFreeTextWriter(xmlWriter); + xmlWriter = NULL; return 0; } \ No newline at end of file -- 2.39.5