]> gitweb.hhaalo.de Git - discspan.git/commitdiff
change read parameter into main
authorBastian Dehn <hhaalo@arcor.de>
Mon, 8 Sep 2025 14:24:10 +0000 (16:24 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Mon, 8 Sep 2025 14:24:10 +0000 (16:24 +0200)
src/discspan.c

index fdfb8d333a779a750e8116e3d0db06fc6111b443..0441af9fb649085dc8154ec7bb7194121d0f2a2d 100644 (file)
 #define DVD5 4700000000
 #define CD 734003200
 
-typedef struct {
-       char *input;
-       char *output;
-       uint64_t split;
-} param_t;
-
 void show_version()
 {
        printf("discspan %s\n", DISCSPAN_VERSION);
        printf("libspandisc %s\n", get_version());
 }
 
-param_t read_argument(int argc, char *argv[])
+void print_human_read_size(const char *output, medium_t* medium)
 {
-       param_t parameter = { NULL, NULL, 0 };
+       uint64_t humanread;
+       char einheit[6] = {'B', 'K', 'M', 'G', 'T', 'P'};
+       uint8_t i = 0;
+
+       humanread = medium->freespace;
+       while (humanread >= 1024) {
+               humanread /= 1024;
+               i++;
+       }
+
+       if (i > sizeof(einheit)/sizeof(einheit[0]))
+               i = 0;
+
+       fprintf(stdout, "free space on %s: %ld bytes (%ld %c)\n", output,
+                       medium->freespace, humanread, einheit[i]);
+}
+
+int main(int argc, char *argv[])
+{
+       char* input = NULL;
+       char* output = NULL;
+       uint64_t split = 0;
 
        uint32_t c = 0;
        while ((c = getopt(argc, argv, ":59bcf:hi:o:v")) != -1) {
                switch (c) {
                case 'i':
-                       parameter.input = optarg;
+                       input = optarg;
                        break;
                case 'o':
-                       parameter.output = optarg;
+                       output = optarg;
                        break;
                case '5':
-                       parameter.split = DVD5;
+                       split = DVD5;
                        break;
                case '9':
-                       parameter.split = DVD9;
+                       split = DVD9;
                        break;
                case 'b':
-                       parameter.split = BLURAY;
+                       split = BLURAY;
                        break;
                case 'c':
-                       parameter.split = CD;
+                       split = CD;
                        break;
                case 'f':
-                       parameter.split = atoll(optarg);
+                       split = atoll(optarg);
                        break;
                case 'h':
                        show_version();
@@ -68,46 +83,18 @@ param_t read_argument(int argc, char *argv[])
                }
        }
 
-       return parameter;
-}
-
-void print_human_read_size(const char *output, medium_t* medium)
-{
-       uint64_t humanread;
-       char einheit[6] = {'B', 'K', 'M', 'G', 'T', 'P'};
-       uint8_t i = 0;
-
-       humanread = medium->freespace;
-       while (humanread >= 1024) {
-               humanread /= 1024;
-               i++;
-       }
-
-       if (i > sizeof(einheit)/sizeof(einheit[0]))
-               i = 0;
-
-       fprintf(stdout, "free space on %s: %ld bytes (%ld %c)\n", output,
-                       medium->freespace, humanread, einheit[i]);
-}
-
-int main(int argc, char *argv[])
-{
-       param_t parameter = read_argument(argc, argv);
-
-       if (parameter.input == NULL
-                       || parameter.output == NULL
-                       || parameter.split < 2048) {
+       if (input == NULL || output == NULL || split < 2048) {
                fprintf(stderr, "ERROR: missing arguments\n");
                return 1;
        }
 
-       if (access(parameter.input, F_OK) < 0) {
-               fprintf(stderr, "ERROR: %s file does not exists\n", parameter.input);
+       if (access(input, F_OK) < 0) {
+               fprintf(stderr, "ERROR: %s file does not exists\n", input);
                return 1;
        }
 
        status_print = print_human_read_size;
-       span(parameter.input, parameter.output, parameter.split);
+       span(input, output, split);
 
        return 0;
 }