New option -stream_recording
This commit is contained in:
@ -814,6 +814,8 @@ int Xorriso_make_write_options(
|
||||
burn_write_opts_set_multi(*burn_options,
|
||||
!(xorriso->do_close || drive_role==0 || drive_role==3));
|
||||
burn_drive_set_speed(drive, xorriso->speed, xorriso->speed);
|
||||
burn_write_opts_set_stream_recording(*burn_options,
|
||||
!! xorriso->do_stream_recording);
|
||||
burn_write_opts_set_underrun_proof(*burn_options, 1);
|
||||
return(1);
|
||||
}
|
||||
@ -2718,7 +2720,6 @@ int Xorriso_restore(struct XorrisO *xorriso,
|
||||
char *img_path_pt;
|
||||
IsoNode *node= NULL;
|
||||
int done= 0, is_dir= 0, ret, target_is_dir, source_is_dir, stbuf_ret;
|
||||
int target_is_split;
|
||||
struct stat stbuf, target_stbuf;
|
||||
struct PermiteM *perm_stack_mem;
|
||||
|
||||
@ -2766,8 +2767,16 @@ int Xorriso_restore(struct XorrisO *xorriso,
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef Osirrox_not_yeT
|
||||
/* >>> */
|
||||
int source_is_split= 0;
|
||||
|
||||
if(is_dir)
|
||||
source_is_split= Xorriso_is_split(xorriso, node, 0);
|
||||
#endif
|
||||
|
||||
}
|
||||
for(npt= apt; !done; apt= npt+1) {
|
||||
npt= strchr(apt, '/');
|
||||
if(npt==NULL) {
|
||||
@ -2783,24 +2792,20 @@ int Xorriso_restore(struct XorrisO *xorriso,
|
||||
continue;
|
||||
}
|
||||
source_is_dir= (is_dir || (flag&1) || !done);
|
||||
|
||||
stbuf_ret= stat(path, &target_stbuf);
|
||||
if(stbuf_ret!=-1) {
|
||||
target_is_dir= S_ISDIR(target_stbuf.st_mode);
|
||||
target_is_split= 0;
|
||||
|
||||
#ifdef Osirrox_not_yeT
|
||||
/* >>> */
|
||||
if(target_is_dir)
|
||||
target_is_split= Xorriso_is_split(xorriso, node, 0);
|
||||
/* >>> Take into respect source_is_split */
|
||||
#endif
|
||||
if((!target_is_dir) && source_is_dir) {
|
||||
|
||||
if(!((target_is_dir && !target_is_split) && source_is_dir)) {
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
|
||||
/* handle overwrite situation */;
|
||||
/* handle overwrite situation */
|
||||
if(xorriso->do_overwrite==1 ||
|
||||
(xorriso->do_overwrite==2 && !(target_is_dir && !target_is_split))) {
|
||||
(xorriso->do_overwrite==2 && !target_is_dir)) {
|
||||
ret= Xorriso_rmx(xorriso, (off_t) 0, path, 1|8);
|
||||
if(ret<=0)
|
||||
return(ret);
|
||||
@ -2813,11 +2818,10 @@ int Xorriso_restore(struct XorrisO *xorriso,
|
||||
stbuf_ret= -1;
|
||||
goto handle_path_node;
|
||||
}
|
||||
|
||||
Xorriso_msgs_submit(xorriso, 0, disk_path, 0, "ERRFILE", 0);
|
||||
sprintf(xorriso->info_text,
|
||||
"While restoring '%s' : '%s' exists and may not be overwritten",
|
||||
disk_path, path);
|
||||
"While restoring '%s' : '%s' exists and may not be overwritten",
|
||||
disk_path, path);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
|
Reference in New Issue
Block a user