#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();
}
}
- 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;
}