- if (logfn != NULL) {
- logf = fopen(logfn, "wb");
- if (logf == NULL) {
- fprintf(stderr, "fopen %s: ", logfn);
- perror("");
- return 1;
- }
- }
-
- if (tasfn != NULL) {
- FILE *f, *f_p2 = NULL;
- const char *ext;
- long size;
-
- f = fopen(tasfn, "rb");
- if (f == NULL) {
- fprintf(stderr, "fopen %s: ", tasfn);
- perror("");
- return 1;
- }
-
- if (tasfn_p2 != NULL) {
- f_p2 = fopen(tasfn_p2, "rb");
- if (f_p2 == NULL) {
- fprintf(stderr, "fopen %s: ", tasfn_p2);
- perror("");
- return 1;
- }
- }
-
- fseek(f, 0, SEEK_END);
- size = ftell(f);
- fseek(f, 0, SEEK_SET);
- if (size <= 0) {
- fprintf(stderr, "bad size: %ld\n", size);
- return 1;
- }
-
- ext = strrchr(tasfn, '.');
- if (ext == NULL)
- ext = tasfn;
- else
- ext++;
-
- if (strcasecmp(ext, "gmv") == 0)
- ret = import_gmv(f, size, tas_data, tas_data_size, logf);
- else if (strcasecmp(ext, "bkm") == 0)
- ret = import_bkm(f, tas_data, tas_data_size, logf);
- else if (strcasecmp(ext, "txt") == 0)
- ret = import_raw(f, &tas_data[0], &tas_data_size[0], logf);
- else {
- fprintf(stderr, "unknown movie type: '%s'\n", ext);
- return 1;
- }
- fclose(f);
-
- if (ret != 0 || tas_data[0] == NULL || tas_data_size[0] <= 0) {
- fprintf(stderr, "failed fo parse %s\n", tasfn);
- return 1;
- }
-
- // separate file with p2 input?
- if (f_p2 != NULL) {
- ret = import_raw(f_p2, &tas_data[1], &tas_data_size[1], NULL);
- if (ret != 0 || tas_data[1] == NULL || tas_data_size[1] <= 0) {
- fprintf(stderr, "failed fo parse %s\n", tasfn_p2);
- return 1;
- }
- fclose(f_p2);
- separate_2p = 1;
- }
-
- if (logf != NULL) {
- fclose(logf);
- logf = NULL;
- }
-
- if (tas_data_size[1] != 0 && tas_data[1] == NULL) {
- fprintf(stderr, "missing tas_data[1]\n");
- return 1;
- }
- }
-
- if (outfn != NULL) {
- outf = fopen(outfn, "w");
- if (outf == NULL) {
- fprintf(stderr, "fopen %s: ", outfn);
- perror("");
- return 1;
- }
- }