]> gitweb.hhaalo.de Git - feierabend.git/commitdiff
change extra method for entry
authorBastian Dehn <hhaalo@arcor.de>
Sat, 22 Jun 2024 10:17:51 +0000 (12:17 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 22 Jun 2024 10:17:51 +0000 (12:17 +0200)
src/feierabendxml.c

index 2a5d2c2e97e6f4ce44b945a6c6b15b5e816992e8..16aa7ea3d63d8a5f5d21a6028270aeca252a18d5 100644 (file)
@@ -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 <begin_hours> <begin_minutes> <end_hours> <end_minutes>\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 <begin_hours> <begin_minutes> <end_hours> <end_minutes>\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