]> gitweb.hhaalo.de Git - feierabend.git/commitdiff
add saldo value to entry
authorBastian Dehn <hhaalo@arcor.de>
Sun, 23 Jun 2024 09:29:22 +0000 (11:29 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 23 Jun 2024 09:29:22 +0000 (11:29 +0200)
src/feierabendxml.c

index cbb31f4493a363200ae960e8c5016651574920db..5e5a0aee2decedd11b306396de3b112478c68f09 100644 (file)
@@ -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 <begin_hours> <begin_minutes> <end_hours> <end_minutes> <inputfile>\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);