mdf2iso added
This commit is contained in:
parent
1eab44daf8
commit
8eac4ae026
|
@ -0,0 +1 @@
|
|||
DIST mdf2iso-0.3.0-src.tar.bz2 97723 SHA256 7b6622c58bc6a5111eba719d2b55cdfab54cbb26f3aea98b7e5db0eb0062be84 SHA512 fa5360095824b6c833bcd04649f6dc864fa43196a5e737d24babd521fb6600fb60ea1129f53ba481255e79b31fa9e54f11662a37c6c8619f782c0c2c8e05f019 WHIRLPOOL 6fc326d3884a5e038e301da711f8004e217f5f8543a67c0b06a8904b64b72861c83024c730b92de350316321c30b12b663533131c0aaf0f4b8adc6c47e129a3e
|
|
@ -0,0 +1,684 @@
|
|||
Only in mdf2iso/src: .deps
|
||||
Only in mdf2iso.new/src: .kdbgrc.mdf2iso
|
||||
diff -bur mdf2iso/src/Makefile.am mdf2iso.new/src/Makefile.am
|
||||
--- mdf2iso/src/Makefile.am 2005-05-19 11:24:11.000000000 +0200
|
||||
+++ mdf2iso.new/src/Makefile.am 2005-07-31 17:47:36.000000000 +0200
|
||||
@@ -1,2 +1,3 @@
|
||||
bin_PROGRAMS = mdf2iso
|
||||
mdf2iso_SOURCES = mdf2iso.c
|
||||
+AM_CFLAGS = -D_FILE_OFFSET_BITS=64 -Wall
|
||||
diff -bur mdf2iso/src/Makefile.in mdf2iso.new/src/Makefile.in
|
||||
--- mdf2iso/src/Makefile.in 2005-05-22 21:42:09.000000000 +0200
|
||||
+++ mdf2iso.new/src/Makefile.in 2005-07-31 17:49:16.000000000 +0200
|
||||
@@ -136,6 +136,7 @@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
mdf2iso_SOURCES = mdf2iso.c
|
||||
+AM_CFLAGS = -D_FILE_OFFSET_BITS=64 -Wall
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
@@ -149,9 +150,9 @@
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
|
||||
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
- $(AUTOMAKE) --foreign src/Makefile
|
||||
+ $(AUTOMAKE) --gnu src/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
diff -bur mdf2iso/src/mdf2iso.c mdf2iso.new/src/mdf2iso.c
|
||||
--- mdf2iso/src/mdf2iso.c 2005-05-22 21:52:08.000000000 +0200
|
||||
+++ mdf2iso.new/src/mdf2iso.c 2005-07-31 19:41:56.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
- /* $Id: mdf2iso.c, 22/05/05
|
||||
+/* $Id: mdf2iso.c, 22/05/05
|
||||
|
||||
Copyright (C) 2004,2005 Salvatore Santagati <salvatore.santagati@gmail.com>
|
||||
|
||||
@@ -16,19 +16,14 @@
|
||||
along with this program; if not, write to the
|
||||
Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
- */
|
||||
+*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
-#define VERSION "0.3.0"
|
||||
-
|
||||
-/* Support Large File */
|
||||
-
|
||||
-#define _FILE_OFFSET_BITS 64
|
||||
-
|
||||
+#define VERSION "0.3.1"
|
||||
|
||||
|
||||
const char SYNC_HEADER[12] = { (char) 0x00,
|
||||
@@ -83,14 +78,21 @@
|
||||
(char) 0x00
|
||||
};
|
||||
|
||||
+#define ISO9660 0
|
||||
+#define SYNC 1
|
||||
+#define SYNC_MDF 2
|
||||
+#define MDF_AUDIO 3
|
||||
+#define UNKNOWN -1
|
||||
|
||||
-void
|
||||
-toc_file (char *destfilename, int sub)
|
||||
+int toc_file (char *destfilename, int sub)
|
||||
{
|
||||
- char destfiletoc[1024], destfiledat[1024];
|
||||
+ int ret=0;
|
||||
+ char *destfiletoc;
|
||||
+ char *destfiledat;
|
||||
FILE *ftoc;
|
||||
- strcpy (destfiletoc, destfilename);
|
||||
- strcpy (destfiledat, destfilename);
|
||||
+
|
||||
+ destfiletoc=strdup(destfilename);
|
||||
+ destfiledat=strdup(destfilename);
|
||||
strcpy (destfiletoc + strlen (destfilename) - 4, ".toc");
|
||||
strcpy (destfiledat + strlen (destfilename) - 4, ".dat");
|
||||
|
||||
@@ -100,11 +102,8 @@
|
||||
fprintf (ftoc, "// Track 1\n");
|
||||
fprintf (ftoc, "TRACK MODE1_RAW");
|
||||
|
||||
- if (sub == 1)
|
||||
- fprintf (ftoc, " RW_RAW\n");
|
||||
-
|
||||
- else
|
||||
- fprintf (ftoc, "\n");
|
||||
+ if (sub == 1) fprintf (ftoc, " RW_RAW\n");
|
||||
+ else fprintf (ftoc, "\n");
|
||||
|
||||
fprintf (ftoc, "NO COPY\n");
|
||||
fprintf (ftoc, "DATAFILE \"%s\"\n", destfiledat);
|
||||
@@ -114,26 +113,27 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
- printf ("%s\n", strerror (errno));
|
||||
- exit (EXIT_FAILURE);
|
||||
+ printf ("Error opening %s for output: %s\n",destfiletoc,strerror(errno));
|
||||
+ ret=-1;
|
||||
};
|
||||
-
|
||||
+ free(destfiletoc);
|
||||
+ free(destfiledat);
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
-int
|
||||
-number_file (char *destfilename)
|
||||
+/*
|
||||
+int number_file (char *destfilename)
|
||||
{
|
||||
int i = 1, test_mdf = 0;
|
||||
int n_mdf;
|
||||
char mdf[2], destfilemdf[2354];
|
||||
FILE *fsource;
|
||||
+
|
||||
strcpy (destfilemdf, destfilename);
|
||||
strcpy (destfilemdf + strlen (destfilename) - 1, ".0");
|
||||
for (i = 0; test_mdf == 0; i++)
|
||||
-
|
||||
{
|
||||
if ((fsource = fopen (destfilemdf, "rb")) != NULL)
|
||||
-
|
||||
{
|
||||
printf ("\nCheck : ");
|
||||
sprintf (mdf, "md%d", i);
|
||||
@@ -141,203 +141,219 @@
|
||||
printf ("%s, ", destfilemdf);
|
||||
fclose (fsource);
|
||||
}
|
||||
-
|
||||
else
|
||||
{
|
||||
test_mdf = 1;
|
||||
}
|
||||
- };
|
||||
+ }
|
||||
printf ("\r \n");
|
||||
n_mdf = i - 1;
|
||||
return (n_mdf);
|
||||
}
|
||||
+*/
|
||||
|
||||
-void
|
||||
-cuesheets (char *destfilename)
|
||||
+int cuesheets (char *destfilename)
|
||||
{
|
||||
- char destfilecue[1024], destfilebin[1024];
|
||||
+ int ret=0;
|
||||
+ char *destfilecue;
|
||||
+ char *destfilebin;
|
||||
FILE *fcue;
|
||||
- strcpy (destfilecue, destfilename);
|
||||
- strcpy (destfilebin, destfilename);
|
||||
+
|
||||
+ destfilecue=strdup(destfilename);
|
||||
+ destfilebin=strdup(destfilename);
|
||||
strcpy (destfilecue + strlen (destfilename) - 4, ".cue");
|
||||
strcpy (destfilebin + strlen (destfilename) - 4, ".bin");
|
||||
- fcue = fopen (destfilecue, "w");
|
||||
+ if ((fcue = fopen (destfilecue, "w"))!=NULL)
|
||||
+ {
|
||||
fprintf (fcue, "FILE \"%s\" BINARY\n", destfilebin);
|
||||
fprintf (fcue, "TRACK 1 MODE1/2352\n");
|
||||
fprintf (fcue, "INDEX 1 00:00:00\n");
|
||||
rename (destfilename, destfilebin);
|
||||
printf ("Create Cuesheets : %s\n", destfilecue);
|
||||
fclose (fcue);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ printf ("Error opening %s for output: %s\n",destfilecue,strerror(errno));
|
||||
+ ret=-1;
|
||||
+ }
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
-void
|
||||
-main_percent (int percent_bar)
|
||||
+int previous_percent=-1;
|
||||
+void main_percent (int percent_bar)
|
||||
+// Prints a progress bar, takes a percentage as argument.
|
||||
{
|
||||
- int progress_bar, progress_space;
|
||||
+ //int progress_bar, progress_space;
|
||||
+
|
||||
+ if (percent_bar==previous_percent) return; // Nothing changed, don't waste CPU cycles.
|
||||
+
|
||||
+ printf("%3d%% [:%.*s>%.*s:]\r",percent_bar,20-(percent_bar/5)," ",
|
||||
+ percent_bar/5,"====================");
|
||||
+ /*
|
||||
printf ("%d%% [:", percent_bar);
|
||||
- for (progress_bar = 1; progress_bar <= (int) (percent_bar / 5);
|
||||
- progress_bar++)
|
||||
+ for (progress_bar = 1; progress_bar <= (int) (percent_bar / 5); progress_bar++)
|
||||
printf ("=");
|
||||
printf (">");
|
||||
|
||||
- for (progress_space = 0; progress_space < (20 - progress_bar);
|
||||
- progress_space++)
|
||||
- printf (" ");
|
||||
+ for (; progress_bar <= 20; ++progress_bar) printf (" ");
|
||||
printf (":]\r");
|
||||
+ */
|
||||
}
|
||||
|
||||
-void
|
||||
-usage ()
|
||||
+void usage ()
|
||||
+// Prints the command line syntax
|
||||
{
|
||||
- printf ("mdf2iso v%s by Salvatore Santagati\n", VERSION);
|
||||
- printf ("Web : http//mdf2iso.berlios.de\n");
|
||||
- printf ("Email : salvatore.santagati@gmail.com\n");
|
||||
- printf ("Irc : irc.freenode.net #ignus\n");
|
||||
- printf ("Note : iodellavitanonhocapitouncazzo\n");
|
||||
- printf ("License : released under the GNU GPL v2 or later\n\n");
|
||||
+ printf (" Web : http//mdf2iso.berlios.de\n");
|
||||
+ printf (" Email : salvatore.santagati@gmail.com\n");
|
||||
+ printf (" Irc : irc.freenode.net #ignus\n");
|
||||
+ printf (" Note : iodellavitanonhocapitouncazzo\n\n");
|
||||
printf ("Usage :\n");
|
||||
- printf ("mdf2iso [OPTION] [BASENAME.MDF] [DESTINATION]\n\n");
|
||||
- printf ("OPTION\n");
|
||||
- printf ("\t--toc Generate toc file\n");
|
||||
- printf ("\t--cue Generate cue file\n");
|
||||
- printf ("\t--help display this notice\n\n");
|
||||
+ printf ("mdf2iso [--cue|--toc|--help] <sourcefile> [destfile]\n\n");
|
||||
+ printf ("Options:\n");
|
||||
+ printf (" --toc Generate toc/dat files\n");
|
||||
+ printf (" --cue Generate cue/bin files\n");
|
||||
+ printf (" --help Display this notice\n");
|
||||
+ printf (" sourcefile\tFilename of the .mdf file to be converted\n");
|
||||
+ printf (" destfile\tFilename of the target ISO9660 file.\n"\
|
||||
+ "\t\tIf none given, one is derived from sourcefile.\n\n");
|
||||
}
|
||||
|
||||
-int
|
||||
-main (int argc, char **argv)
|
||||
+char mdftype(FILE *f)
|
||||
+/* returns
|
||||
+ -1 for unknown
|
||||
+ 0 for ISO9660
|
||||
+ 1 for SYNC
|
||||
+ 2 for SYNC MDF
|
||||
+ 3 for MDF Audio
|
||||
+ (see #defines above)
|
||||
+*/
|
||||
{
|
||||
- int seek_ecc, sector_size, seek_head, sector_data, n_mdf;
|
||||
+ char buf[12];
|
||||
+
|
||||
+ fseek(f, 32768, SEEK_SET);
|
||||
+ fread(buf, sizeof (char), 8, f);
|
||||
+ if (!memcmp (ISO_9660, buf, 8)) return ISO9660; // File is ISO9660
|
||||
+
|
||||
+ fseek(f, 0L, SEEK_SET);
|
||||
+ fread(buf, sizeof (char), 12, f);
|
||||
+
|
||||
+ fseek (f, 2352, SEEK_SET);
|
||||
+
|
||||
+ if (!memcmp (SYNC_HEADER, buf, 12)) // Has SYNC_HEADER
|
||||
+ {
|
||||
+ fread (buf, sizeof (char), 12, f);
|
||||
+ if (!memcmp (SYNC_HEADER_MDF, buf, 12)) return SYNC_MDF; // File is SYNC MDF
|
||||
+ if (!memcmp (SYNC_HEADER, buf, 12)) return SYNC; // File is SYNC
|
||||
+ }
|
||||
+ else // Does not have SYNC_HEADER
|
||||
+ {
|
||||
+ fread(buf, sizeof (char), 12, f);
|
||||
+ if (!memcmp (SYNC_HEADER_MDF_AUDIO, buf, 12)) return MDF_AUDIO; // File is MDF Audio
|
||||
+ }
|
||||
+
|
||||
+ // Reached a point where nothing else matters.
|
||||
+ return UNKNOWN; // Unknown format
|
||||
+}
|
||||
+
|
||||
+
|
||||
+// === Main program code ===
|
||||
+
|
||||
+int main (int argc, char **argv)
|
||||
+{
|
||||
+ int seek_ecc, sector_size, seek_head, sector_data;//, n_mdf;
|
||||
int cue = 0, cue_mode = 0, sub = 1, toc = 0, sub_toc = 0;
|
||||
int opts = 0;
|
||||
- double size_iso, write_iso;
|
||||
- long percent = 0;
|
||||
- long i, source_length, progressbar;
|
||||
- char buf[2448], destfilename[2354];
|
||||
+ long i, source_length;
|
||||
+ char buf[2448];
|
||||
+ char *destfilename=NULL;
|
||||
+ char *basefilename=NULL;
|
||||
FILE *fdest, *fsource;
|
||||
|
||||
+ // Print identification
|
||||
+ printf ("mdf2iso v%s by Salvatore Santagati\n", VERSION);
|
||||
+ printf ("Licensed under GPL v2 or later\n");
|
||||
|
||||
- if (argc < 2)
|
||||
|
||||
+ // *** Process command line options ***
|
||||
+
|
||||
+ if (argc < 2)
|
||||
{
|
||||
- usage ();
|
||||
- exit (EXIT_FAILURE);
|
||||
+ // Not enough parameters; print help
|
||||
+ usage();
|
||||
+ exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
- else
|
||||
-
|
||||
- {
|
||||
+ // Search for options --cue and --toc
|
||||
for (i = 0; i < argc; i++)
|
||||
-
|
||||
{
|
||||
-
|
||||
if (!strcmp (argv[i], "--help"))
|
||||
-
|
||||
{
|
||||
usage ();
|
||||
exit (EXIT_SUCCESS);
|
||||
}
|
||||
if (!strcmp (argv[i], "--cue"))
|
||||
-
|
||||
{
|
||||
cue = 1;
|
||||
opts++;
|
||||
}
|
||||
if (!strcmp (argv[i], "--toc"))
|
||||
-
|
||||
{
|
||||
toc = 1;
|
||||
opts++;
|
||||
}
|
||||
}
|
||||
|
||||
- if ((cue == 1) && (toc == 1))
|
||||
-
|
||||
- {
|
||||
- usage ();
|
||||
- exit (EXIT_FAILURE);
|
||||
- }
|
||||
- if ((opts == 1) && (argc <= 2))
|
||||
-
|
||||
+ // Catch impossible parameter combinations
|
||||
+ if (((cue == 1) && (toc == 1)) ||
|
||||
+ ((opts == 1) && (argc <= 2)))
|
||||
{
|
||||
- usage ();
|
||||
- exit (EXIT_FAILURE);
|
||||
+ usage();
|
||||
+ exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
+ // Get the base filename
|
||||
+ basefilename=argv[1+opts]; // simple pointer, but makes life easier.
|
||||
|
||||
+ // Get the destination filename
|
||||
if (argc >= (3 + opts))
|
||||
- strcpy (destfilename, argv[2 + opts]);
|
||||
-
|
||||
- else
|
||||
-
|
||||
- {
|
||||
- strcpy (destfilename, argv[1 + opts]);
|
||||
- if (strlen (argv[1 + cue]) < 5
|
||||
- || strcmp (destfilename + strlen (argv[1 + opts]) - 4, ".mdf"))
|
||||
- strcpy (destfilename + strlen (argv[1 + opts]), ".iso");
|
||||
-
|
||||
+ // The destination filename is explicitly entered at the prompt
|
||||
+ destfilename=strdup(argv[2 + opts]);
|
||||
else
|
||||
- strcpy (destfilename + strlen (argv[1 + opts]) - 4, ".iso");
|
||||
- }
|
||||
- if ((fsource = fopen (argv[1 + opts], "rb")) != NULL)
|
||||
-
|
||||
{
|
||||
- fseek (fsource, 32768, SEEK_CUR);
|
||||
- fread (buf, sizeof (char), 8, fsource);
|
||||
- if (memcmp (ISO_9660, buf, 8))
|
||||
-
|
||||
+ // Derive destination filename from the basename:
|
||||
+ // If basename is "*.mdf" use "*.iso" als destname
|
||||
+ // otherwise simply append ".iso" to the basename to create destname.
|
||||
+ destfilename=strdup(basefilename);
|
||||
+ i=strlen(destfilename); // Reusing 'i' here as temporary variable
|
||||
+ if (i < 5 || strcmp(destfilename + i - 4, ".mdf"))
|
||||
{
|
||||
- fseek (fsource, 0L, SEEK_SET);
|
||||
- fread (buf, sizeof (char), 12, fsource);
|
||||
- if (!memcmp (SYNC_HEADER, buf, 12))
|
||||
-
|
||||
- {
|
||||
- fseek (fsource, 0L, SEEK_SET);
|
||||
- fseek (fsource, 2352, SEEK_CUR);
|
||||
- fread (buf, sizeof (char), 12, fsource);
|
||||
- if (!memcmp (SYNC_HEADER_MDF, buf, 12))
|
||||
-
|
||||
- {
|
||||
- if (cue == 1)
|
||||
- {
|
||||
- cue_mode = 1;
|
||||
-
|
||||
- /* BAD SECTOR TO NORMAL IMAGE */
|
||||
- seek_ecc = 96;
|
||||
- sector_size = 2448;
|
||||
- sector_data = 2352;
|
||||
- seek_head = 0;
|
||||
- }
|
||||
-
|
||||
- else if (toc == 0)
|
||||
-
|
||||
- {
|
||||
-
|
||||
- /*BAD SECTOR */
|
||||
- seek_ecc = 384;
|
||||
- sector_size = 2448;
|
||||
- sector_data = 2048;
|
||||
- seek_head = 16;
|
||||
+ destfilename=realloc(destfilename,i+5);
|
||||
+ strcat(destfilename, ".iso");
|
||||
}
|
||||
-
|
||||
else
|
||||
-
|
||||
- {
|
||||
-
|
||||
- /*BAD SECTOR */
|
||||
- seek_ecc = 0;
|
||||
- sector_size = 2448;
|
||||
- sector_data = 2448;
|
||||
- seek_head = 0;
|
||||
- sub_toc = 1;
|
||||
- }
|
||||
+ strcpy(destfilename + i - 3, "iso");
|
||||
}
|
||||
|
||||
- else
|
||||
+ // *** Preprocess basefile ***
|
||||
|
||||
+ // Try opening basefile
|
||||
+ if ((fsource = fopen(basefilename, "rb")) == NULL)
|
||||
{
|
||||
- if (!memcmp (SYNC_HEADER, buf, 12))
|
||||
+ free(destfilename);
|
||||
+ printf ("Could not open %s: %s\n", basefilename, strerror(errno));
|
||||
+ exit (EXIT_FAILURE);
|
||||
+ }
|
||||
|
||||
+ // Determine filetype & set some stuff accordingly (or exit)
|
||||
+ switch (mdftype(fsource))
|
||||
{
|
||||
+ case ISO9660:
|
||||
+ printf("%s is already ISO9660.\n",basefilename);
|
||||
+ fclose(fsource);
|
||||
+ free(destfilename);
|
||||
+ exit(EXIT_SUCCESS);
|
||||
+ case SYNC:
|
||||
if (cue == 1)
|
||||
{
|
||||
cue_mode = 1;
|
||||
@@ -348,129 +364,134 @@
|
||||
seek_head = 0;
|
||||
}
|
||||
if (toc == 0)
|
||||
-
|
||||
{
|
||||
-
|
||||
/*NORMAL IMAGE */
|
||||
seek_ecc = 288;
|
||||
sector_size = 2352;
|
||||
sector_data = 2048;
|
||||
seek_head = 16;
|
||||
}
|
||||
-
|
||||
else
|
||||
-
|
||||
{
|
||||
seek_ecc = 0;
|
||||
sector_size = 2352;
|
||||
sector_data = 2352;
|
||||
seek_head = 0;
|
||||
}
|
||||
- }
|
||||
-
|
||||
- else
|
||||
-
|
||||
- {
|
||||
- printf ("Sorry I don't know this format :(\n");
|
||||
- exit (EXIT_FAILURE);
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- else
|
||||
-
|
||||
+ break;
|
||||
+ case SYNC_MDF:
|
||||
+ if (cue == 1)
|
||||
{
|
||||
- fseek (fsource, 0L, SEEK_SET);
|
||||
- fseek (fsource, 2352, SEEK_CUR);
|
||||
- fread (buf, sizeof (char), 12, fsource);
|
||||
- if (memcmp (SYNC_HEADER_MDF_AUDIO, buf, 12))
|
||||
+ cue_mode = 1;
|
||||
|
||||
+ /* BAD SECTOR TO NORMAL IMAGE */
|
||||
+ seek_ecc = 96;
|
||||
+ sector_size = 2448;
|
||||
+ sector_data = 2352;
|
||||
+ seek_head = 0;
|
||||
+ }
|
||||
+ else if (toc == 0)
|
||||
{
|
||||
- printf ("Sorry I don't know this format :(\n");
|
||||
- exit (EXIT_FAILURE);
|
||||
+ /*BAD SECTOR */
|
||||
+ seek_ecc = 384;
|
||||
+ sector_size = 2448;
|
||||
+ sector_data = 2048;
|
||||
+ seek_head = 16;
|
||||
}
|
||||
-
|
||||
else
|
||||
-
|
||||
{
|
||||
-
|
||||
+ /*BAD SECTOR */
|
||||
+ seek_ecc = 0;
|
||||
+ sector_size = 2448;
|
||||
+ sector_data = 2448;
|
||||
+ seek_head = 0;
|
||||
+ sub_toc = 1;
|
||||
+ }
|
||||
+ break;
|
||||
+ case MDF_AUDIO:
|
||||
/*BAD SECTOR AUDIO */
|
||||
seek_head = 0;
|
||||
sector_size = 2448;
|
||||
seek_ecc = 96;
|
||||
sector_data = 2352;
|
||||
cue = 0;
|
||||
+ break;
|
||||
+ default:printf("Unknown format for %s.\n",basefilename);
|
||||
+ fclose(fsource);
|
||||
+ free(destfilename);
|
||||
+ exit (EXIT_FAILURE);
|
||||
}
|
||||
- }
|
||||
- if ((fdest = fopen (destfilename, "wb")) != NULL);
|
||||
|
||||
- else
|
||||
+ // *** Create destination file ***
|
||||
+
|
||||
+ // Try opening the destination file for output
|
||||
+ if ((fdest = fopen (destfilename, "wb")) == NULL)
|
||||
{
|
||||
- printf ("%s\n", strerror (errno));
|
||||
+ printf ("Unable to open %s for output: %s\n",destfilename,strerror(errno));
|
||||
+ free(destfilename);
|
||||
+ fclose(fsource);
|
||||
exit (EXIT_FAILURE);
|
||||
- };
|
||||
+ }
|
||||
+
|
||||
+
|
||||
fseek (fsource, 0L, SEEK_END);
|
||||
source_length = ftell (fsource) / sector_size;
|
||||
- size_iso = (int) (source_length * sector_data);
|
||||
- progressbar = 100 / source_length;
|
||||
fseek (fsource, 0L, SEEK_SET);
|
||||
-
|
||||
{
|
||||
for (i = 0; i < source_length; i++)
|
||||
-
|
||||
{
|
||||
fseek (fsource, seek_head, SEEK_CUR);
|
||||
- if (fread (buf, sizeof (char), sector_data, fsource));
|
||||
-
|
||||
- else
|
||||
+ if (fread(buf, sizeof (char), sector_data, fsource)!=sector_data)
|
||||
{
|
||||
- printf ("%s\n", strerror (errno));
|
||||
+ printf ("Error reading from %s: %s\n",basefilename, strerror (errno));
|
||||
+ fclose(fsource);
|
||||
+ fclose(fdest);
|
||||
+ remove(destfilename);
|
||||
+ free(destfilename);
|
||||
exit (EXIT_FAILURE);
|
||||
- };
|
||||
- if (fwrite (buf, sizeof (char), sector_data, fdest));
|
||||
-
|
||||
- else
|
||||
+ }
|
||||
+ if (fwrite (buf, sizeof (char), sector_data, fdest)!=sector_data)
|
||||
{
|
||||
- printf ("%s\n", strerror (errno));
|
||||
+ printf ("Error writing to %s: %s\n",destfilename, strerror (errno));
|
||||
+ fclose(fsource);
|
||||
+ fclose(fdest);
|
||||
+ remove(destfilename);
|
||||
+ free(destfilename);
|
||||
exit (EXIT_FAILURE);
|
||||
- };
|
||||
+ }
|
||||
fseek (fsource, seek_ecc, SEEK_CUR);
|
||||
- write_iso = (int) (sector_data * i);
|
||||
- if (i != 0)
|
||||
- percent = (int) (write_iso * 100 / size_iso);
|
||||
- main_percent (percent);
|
||||
- }} printf ("100%%[:====================:]\n");
|
||||
+ main_percent(i*100/source_length);
|
||||
+ }
|
||||
+ } printf ("100%% [:=====================:]\n");
|
||||
|
||||
fclose (fsource);
|
||||
fclose (fdest);
|
||||
|
||||
- if (cue == 1)
|
||||
- cuesheets (destfilename);
|
||||
- if (toc == 1)
|
||||
- toc_file (destfilename, sub_toc);
|
||||
+ // *** create Toc or Cue file is requested ***
|
||||
+ if (cue == 1) if (cuesheets(destfilename))
|
||||
+ {
|
||||
+ free(destfilename);
|
||||
+ exit(EXIT_FAILURE);
|
||||
+ }
|
||||
+ if (toc == 1) if (toc_file(destfilename, sub_toc))
|
||||
+ {
|
||||
+ free(destfilename);
|
||||
+ exit(EXIT_FAILURE);
|
||||
+ }
|
||||
if ((toc == 0) && (cue == 0))
|
||||
- printf ("Create iso9660: %s\n", destfilename);
|
||||
+ printf("Created iso9660: %s\n", destfilename);
|
||||
+
|
||||
+ free(destfilename);
|
||||
|
||||
exit (EXIT_SUCCESS);
|
||||
- }
|
||||
|
||||
- else
|
||||
- printf ("This is file iso9660 ;)\n");
|
||||
+/*
|
||||
n_mdf = number_file (destfilename) - 1;
|
||||
- /* if (n_mdf > 1)
|
||||
-
|
||||
+ / * if (n_mdf > 1)
|
||||
{
|
||||
printf ("\rDetect %d md* file and now emerge this\n", n_mdf);
|
||||
}
|
||||
- */
|
||||
+ * /
|
||||
fclose (fsource);
|
||||
- exit (EXIT_SUCCESS);
|
||||
- }
|
||||
-
|
||||
- else
|
||||
- {
|
||||
- printf ("%s\n", strerror (errno));
|
||||
- exit (EXIT_FAILURE);
|
||||
- };
|
||||
- }
|
||||
+ exit (EXIT_SUCCESS);*/
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
inherit eutils toolchain-funcs
|
||||
|
||||
DESCRIPTION="Alcohol 120% bin image to ISO image file converter"
|
||||
HOMEPAGE="http://mdf2iso.berlios.de/"
|
||||
SRC_URI="http://download.berlios.de/${PN}/${P}-src.tar.bz2"
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~ppc ~x86"
|
||||
IUSE=""
|
||||
DEPEND="virtual/libc"
|
||||
RDEPEND="virtual/libc"
|
||||
|
||||
S=${WORKDIR}/${PN}
|
||||
|
||||
src_unpack() {
|
||||
unpack ${A}
|
||||
cd "${S}"
|
||||
|
||||
epatch "${FILESDIR}"/${P}-bigfiles.patch
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dodoc ChangeLog
|
||||
dobin src/${PN} || die "dobin failed"
|
||||
}
|
|
@ -2,6 +2,7 @@
|
|||
<app-admin/eselect-vala-1 ~amd64
|
||||
=app-admin/gentoo-upgrade-9999 **
|
||||
<app-admin/paxtest-1 ~amd64
|
||||
app-cdr/mdf2iso ~amd64
|
||||
<app-editors/oxygenxml-12 ~x86
|
||||
<app-emulation/faudio-20 ~amd64
|
||||
<app-emulation/fuse-2 ~amd64
|
||||
|
|
Loading…
Reference in New Issue