|
|
|
@ -12,6 +12,7 @@
|
|
|
|
|
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include <string.h>
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
|
|
#ifndef Xorriso_standalonE
|
|
|
|
|
|
|
|
|
@ -111,11 +112,11 @@ int isoburn_read_image(struct burn_drive *d,
|
|
|
|
|
struct isoburn_read_opts *read_opts,
|
|
|
|
|
IsoImage **image)
|
|
|
|
|
{
|
|
|
|
|
int ret, int_num;
|
|
|
|
|
int ret, int_num, dummy;
|
|
|
|
|
IsoReadOpts *ropts= NULL;
|
|
|
|
|
IsoReadImageFeatures *features= NULL;
|
|
|
|
|
uint32_t ms_block;
|
|
|
|
|
|
|
|
|
|
char msg[160];
|
|
|
|
|
enum burn_disc_status status= BURN_DISC_BLANK;
|
|
|
|
|
IsoDataSource *ds= NULL;
|
|
|
|
|
struct isoburn *o= NULL;
|
|
|
|
@ -133,7 +134,7 @@ int isoburn_read_image(struct burn_drive *d,
|
|
|
|
|
status = isoburn_disc_get_status(d);
|
|
|
|
|
}
|
|
|
|
|
if (d == NULL || status == BURN_DISC_BLANK || read_opts->pretend_blank) {
|
|
|
|
|
|
|
|
|
|
create_blank_image:;
|
|
|
|
|
/*
|
|
|
|
|
* Blank disc, we create a new image without files.
|
|
|
|
|
*/
|
|
|
|
@ -181,6 +182,12 @@ int isoburn_read_image(struct burn_drive *d,
|
|
|
|
|
if (ret <= 0)
|
|
|
|
|
return -2;
|
|
|
|
|
ms_block= int_num;
|
|
|
|
|
ret = isoburn_read_iso_head(d, int_num, &dummy, NULL, 0);
|
|
|
|
|
if (ret <= 0) {
|
|
|
|
|
sprintf(msg, "No ISO 9660 image at LBA %d. Creating blank image.", int_num);
|
|
|
|
|
burn_msgs_submit(0x00060000, msg, 0, "WARNING", NULL);
|
|
|
|
|
goto create_blank_image;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* create the data source */
|
|
|
|
|
ret = iso_read_opts_new(&ropts, 0);
|
|
|
|
|