New option -stream_recording

This commit is contained in:
2008-05-27 20:14:51 +00:00
parent 106ab1fb0c
commit b9f01ef512
7 changed files with 73 additions and 24 deletions

View File

@ -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);
}