diff --git a/xorriso/iso_img.c b/xorriso/iso_img.c index 32dab5a9..4072edb5 100644 --- a/xorriso/iso_img.c +++ b/xorriso/iso_img.c @@ -888,7 +888,7 @@ int Xorriso_mount(struct XorrisO *xorriso, char *dev, int adr_mode, char *adr_value, char *cmd, int flag) { int ret, lba, track, session, params_flag= 0, is_safe= 0, is_extra_drive= 0; - int give_up= 0, mount_chardev= 0, status; + int give_up= 0, mount_chardev= 0, status, aquire_flag; char volid[33], *devadr, mount_command[SfileadrL], adr_data[163], *adr_pt; char *dev_path, libburn_adr[BURN_DRIVE_ADR_LEN + SfileadrL]; char sfe[5 * SfileadrL], *dpt, *sysname= ""; @@ -957,7 +957,10 @@ int Xorriso_mount(struct XorrisO *xorriso, char *dev, int adr_mode, if(ret == 0 && strncmp(dev, "stdio:", 6) != 0) sprintf(libburn_adr, "stdio:%s", dev); burn_preset_device_open(xorriso->drives_exclusive, 0, 0); - ret= isoburn_drive_aquire(&dinfo, libburn_adr, 1); + aquire_flag= 1; + if((xorriso->toc_emulation_flag & 2) && adr_mode == 3) + aquire_flag|= 16; + ret= isoburn_drive_aquire(&dinfo, libburn_adr, aquire_flag); burn_preset_device_open(1, 0, 0); Xorriso_process_msg_queues(xorriso,0); if(ret <= 0) @@ -977,7 +980,7 @@ int Xorriso_mount(struct XorrisO *xorriso, char *dev, int adr_mode, Xorriso_process_msg_queues(xorriso,0); if(ret <= 0) goto ex; - if(session <= 0 || track <= 0 || ret == 2) { + if(((session <= 0 || track <= 0) && !(aquire_flag & 16)) || ret == 2) { Xorriso_msgs_submit(xorriso, 0, "-mount : Given address does not point to an ISO 9660 session", 0, "FAILURE", 0); diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 405becc5..841cdd2b 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2010.12.06.094347" +#define Xorriso_timestamP "2010.12.07.174921"