New option -signal_handling
This commit is contained in:
@ -554,7 +554,7 @@ ex:;
|
||||
int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
int ret, relax= 0, i, pacifier_speed= 0, data_lba, ext, is_bootable= 0;
|
||||
int freshly_bootable= 0, hide_attr, pad_by_libisofs= 0;
|
||||
int freshly_bootable= 0, hide_attr, pad_by_libisofs= 0, signal_mode;
|
||||
char xorriso_id[256], *img_id, sfe[5*SfileadrL], *out_cs, *part_image;
|
||||
struct isoburn_imgen_opts *sopts= NULL;
|
||||
struct burn_drive_info *dinfo, *source_dinfo;
|
||||
@ -926,7 +926,12 @@ fprintf(stderr, "XORRISO_DEBUG: isoburn_igopt_set_tail_blocks(%d)\n",
|
||||
goto cancel_iso;
|
||||
|
||||
/* Important: do not return until burn_is_aborting() was checked */
|
||||
Xorriso_set_signal_handling(xorriso, 1);
|
||||
|
||||
signal_mode= 1;
|
||||
ret= burn_drive_get_drive_role(drive);
|
||||
if(ret == 1)
|
||||
signal_mode|= 2;
|
||||
Xorriso_set_signal_handling(xorriso, signal_mode);
|
||||
|
||||
/* De-activate eventual target file truncation in dummy mode */
|
||||
ret= isoburn_set_truncate(drive, (!xorriso->do_dummy) | 2 | 4);
|
||||
@ -1253,7 +1258,7 @@ int Xorriso_pacifier_loop(struct XorrisO *xorriso, struct burn_drive *drive,
|
||||
*/
|
||||
int Xorriso_blank_media(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
int ret, do_deformat= 0;
|
||||
int ret, do_deformat= 0, signal_mode;
|
||||
struct burn_drive_info *dinfo;
|
||||
struct burn_drive *drive;
|
||||
enum burn_disc_status disc_state;
|
||||
@ -1322,7 +1327,11 @@ int Xorriso_blank_media(struct XorrisO *xorriso, int flag)
|
||||
Xorriso_info(xorriso,0);
|
||||
|
||||
/* Important: do not return until burn_is_aborting() was checked */
|
||||
Xorriso_set_signal_handling(xorriso, 1);
|
||||
signal_mode= 1;
|
||||
ret= burn_drive_get_drive_role(drive);
|
||||
if(ret == 1)
|
||||
signal_mode|= 2;
|
||||
Xorriso_set_signal_handling(xorriso, signal_mode);
|
||||
|
||||
if(do_deformat)
|
||||
burn_disc_erase(drive, (flag&1));
|
||||
@ -1370,7 +1379,7 @@ int Xorriso_blank_media(struct XorrisO *xorriso, int flag)
|
||||
*/
|
||||
int Xorriso_format_media(struct XorrisO *xorriso, off_t in_size, int flag)
|
||||
{
|
||||
int ret, mode_flag= 0, index, status, num_formats;
|
||||
int ret, mode_flag= 0, index, status, num_formats, signal_mode;
|
||||
unsigned dummy;
|
||||
struct burn_drive_info *dinfo;
|
||||
struct burn_drive *drive;
|
||||
@ -1481,7 +1490,11 @@ int Xorriso_format_media(struct XorrisO *xorriso, off_t in_size, int flag)
|
||||
size= in_size;
|
||||
|
||||
/* Important: do not return until burn_is_aborting() was checked */
|
||||
Xorriso_set_signal_handling(xorriso, 1);
|
||||
signal_mode= 1;
|
||||
ret= burn_drive_get_drive_role(drive);
|
||||
if(ret == 1)
|
||||
signal_mode|= 2;
|
||||
Xorriso_set_signal_handling(xorriso, signal_mode);
|
||||
|
||||
burn_disc_format(drive, size, mode_flag);
|
||||
|
||||
@ -1612,8 +1625,7 @@ int Xorriso_burn_track(struct XorrisO *xorriso, off_t write_start_address,
|
||||
char *track_source, off_t tsize, int flag)
|
||||
{
|
||||
int ret, fd, unpredicted_size, profile_number, is_cd= 0, dummy, nwa= -1;
|
||||
int isosize= -1, do_isosize, is_bd= 0;
|
||||
|
||||
int isosize= -1, do_isosize, is_bd= 0, signal_mode;
|
||||
struct burn_drive_info *dinfo;
|
||||
struct burn_drive *drive;
|
||||
struct burn_write_opts *burn_options;
|
||||
@ -1812,7 +1824,11 @@ int Xorriso_burn_track(struct XorrisO *xorriso, off_t write_start_address,
|
||||
goto ex;
|
||||
|
||||
/* Important: do not return until burn_is_aborting() was checked */
|
||||
Xorriso_set_signal_handling(xorriso, 1);
|
||||
signal_mode= 1;
|
||||
ret= burn_drive_get_drive_role(drive);
|
||||
if(ret == 1)
|
||||
signal_mode|= 2;
|
||||
Xorriso_set_signal_handling(xorriso, signal_mode);
|
||||
|
||||
xorriso->run_state= 1; /* Indicate that burning has started */
|
||||
burn_disc_write(burn_options, disc);
|
||||
|
Reference in New Issue
Block a user