]> gitweb.hhaalo.de Git - feierabend.git/commitdiff
change xml command with sub methods
authorBastian Dehn <hhaalo@arcor.de>
Mon, 16 Feb 2026 19:19:30 +0000 (20:19 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Mon, 16 Feb 2026 19:19:30 +0000 (20:19 +0100)
src/feierabendxml.c

index 6c9c8f82798f3b65e86fd83aca71b766906b9a06..b12c3d78be6c644ef20e3e4bd7fb460b010e14ba 100644 (file)
 #define CMD_DATEADD "dateadd"
 #define CMD_MERGE "merge"
 
+int _command_version()
+{
+       printf("Version: %s\n", PROJECT_VERSION);
+       return EXIT_SUCCESS;
+}
+
+int _command_init(const int argc, const char* argv[])
+{
+       if (argc > 2 && argc < 4) {
+               const char* program = argv[0];
+               printf("ERROR: %s init [<salod_hour> <saldo_min>]\n", program);
+               return EXIT_FAILURE;
+       }
+
+       if (argc >= 4) {
+               const uint8_t hour = atoi(argv[2]);
+               const uint8_t min = atoi(argv[3]);
+               init_time_acount(hour, min);
+               return EXIT_SUCCESS;
+       }
+
+       init_time_acount(0, 0);
+       return EXIT_SUCCESS;
+}
+
+int _command_merge(const int argc, const char* argv[])
+{
+       if (argc < 3) {
+               const char* program = argv[0];
+               printf("ERROR: %s merge <dir>\n", program);
+               return EXIT_FAILURE;
+       }
+
+       const char* dir = argv[2];
+       merge(dir);
+       return EXIT_SUCCESS;
+}
+
+int _command_add(const int argc, const char* argv[])
+{
+       if (argc < 6) {
+               const char* program = argv[0];
+               printf("ERROR: %s add <begin_hours> <begin_minutes> <end_hours> <end_minutes>\n", program);
+               return EXIT_FAILURE;
+       }
+
+       if (!validate_hourstring(argv[2])
+               || !validate_minutestring(argv[3])
+               || !validate_hourstring(argv[4])
+               || !validate_minutestring(argv[5])) {
+               printf("ERROR: one or more invalid arguments\n");
+               return EXIT_FAILURE;
+       }
+
+       const uint8_t begin_hour = atoi(argv[2]);
+       const uint8_t begin_min = atoi(argv[3]);
+       const uint8_t end_hour = atoi(argv[4]);
+       const uint8_t end_min = atoi(argv[5]);
+       add_entry(NULL, begin_hour, begin_min, end_hour, end_min);
+       return EXIT_SUCCESS;
+}
+
+int _command_dateadd(const int argc, const char* argv[])
+{
+       if (argc < 7) {
+               const char* program = argv[0];
+               printf("ERROR: %s dateadd <yyyy-MM-dd> <begin_hours> <begin_minutes> <end_hours> <end_minutes>\n", program);
+               return EXIT_FAILURE;
+       }
+
+       if (!validate_datestring(argv[2])
+               || !validate_hourstring(argv[3])
+               || !validate_minutestring(argv[4])
+               || !validate_hourstring(argv[5])
+               || !validate_minutestring(argv[6])) {
+               printf("ERROR: one or more invalid arguments\n");
+               return EXIT_FAILURE;
+       }
+
+       const char* date = argv[2];
+       const uint8_t begin_hour = atoi(argv[3]);
+       const uint8_t begin_min = atoi(argv[4]);
+       const uint8_t end_hour = atoi(argv[5]);
+       const uint8_t end_min = atoi(argv[6]);
+       add_entry(date, begin_hour, begin_min, end_hour, end_min);
+       return EXIT_SUCCESS;
+}
+
 int main(const int argc, const char* argv[])
 {
-       const char* program = argv[0];
        if (argc < 2) {
+               const char* program = argv[0];
                printf("ERROR: %s <%s|%s|%s|%s|%s>\n",
                        program,
                        CMD_INIT,
@@ -22,89 +110,25 @@ int main(const int argc, const char* argv[])
                        CMD_DATEADD,
                        CMD_MERGE,
                        CMD_VERSION);
-               return 1;
+               return EXIT_FAILURE;
        }
 
        const char* command = argv[1];
-       if (strcmp(command, CMD_VERSION) == 0) {
-               printf("Version: %s\n", PROJECT_VERSION);
-               return 0;
-       }
+       if (strcmp(command, CMD_VERSION) == 0)
+               return _command_version();
 
-       if (strcmp(command, CMD_INIT) == 0) {
-               if (argc > 2 && argc < 4) {
-                       printf("ERROR: %s init [<salod_hour> <saldo_min>]\n", program);
-                       return 1;
-               }
-
-               if (argc >= 4) {
-                       const uint8_t hour = atoi(argv[2]);
-                       const uint8_t min = atoi(argv[3]);
-                       init_time_acount(hour, min);
-                       return 0;
-               }
-
-               init_time_acount(0, 0);
-               return 0;
-       }
+       if (strcmp(command, CMD_INIT) == 0)
+               return _command_init(argc, argv);
 
-       if (strcmp(command, CMD_MERGE) == 0) {
-               if (argc < 3) {
-                       printf("ERROR: %s merge <dir>\n", argv[0]);
-                       return 1;
-               }
+       if (strcmp(command, CMD_MERGE) == 0)
+               return _command_merge(argc, argv);
 
-               const char* dir = argv[2];
-               merge(dir);
-               return 0;
-       }
+       if (strcmp(command, CMD_ADD) == 0)
+               return _command_add(argc, argv);
 
-       if (strcmp(command, CMD_ADD) == 0) {
-               if (argc < 6) {
-                       printf("ERROR: %s add <begin_hours> <begin_minutes> <end_hours> <end_minutes>\n", program);
-                       return 1;
-               }
-
-               if (!validate_hourstring(argv[2])
-                       || !validate_minutestring(argv[3])
-                       || !validate_hourstring(argv[4])
-                       || !validate_minutestring(argv[5])) {
-                       printf("ERROR: one or more invalid arguments\n");
-                       return 1;
-               }
-
-               const uint8_t begin_hour = atoi(argv[2]);
-               const uint8_t begin_min = atoi(argv[3]);
-               const uint8_t end_hour = atoi(argv[4]);
-               const uint8_t end_min = atoi(argv[5]);
-               add_entry(NULL, begin_hour, begin_min, end_hour, end_min);
-               return 0;
-       }
-
-       if (strcmp(command, CMD_DATEADD) == 0) {
-               if (argc < 7) {
-                       printf("ERROR: %s dateadd <yyyy-MM-dd> <begin_hours> <begin_minutes> <end_hours> <end_minutes>\n", program);
-                       return 1;
-               }
-
-               if (!validate_datestring(argv[2])
-                       || !validate_hourstring(argv[3])
-                       || !validate_minutestring(argv[4])
-                       || !validate_hourstring(argv[5])
-                       || !validate_minutestring(argv[6])) {
-                       printf("ERROR: one or more invalid arguments\n");
-                       return 1;
-               }
-
-               const char* date = argv[2];
-               const uint8_t begin_hour = atoi(argv[3]);
-               const uint8_t begin_min = atoi(argv[4]);
-               const uint8_t end_hour = atoi(argv[5]);
-               const uint8_t end_min = atoi(argv[6]);
-               add_entry(date, begin_hour, begin_min, end_hour, end_min);
-               return 0;
-       }
+       if (strcmp(command, CMD_DATEADD) == 0)
+               return _command_dateadd(argc, argv);
 
        printf("ERROR: unknown command\n");
-       return 0;
+       return EXIT_SUCCESS;
 }
\ No newline at end of file