Bug fix: -extract was not immediately aborted if -abort_on was triggered

This commit is contained in:
Thomas Schmitt 2011-08-16 16:05:11 +00:00
parent 55c0af9653
commit 264615efee
4 changed files with 29 additions and 17 deletions

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -1413,7 +1413,7 @@ int Xorriso_restore_sorted(struct XorrisO *xorriso, int count,
(off_t) 0, (off_t) 0, hflag);
if(ret <= 0) {
(*problem_count)++;
hret= Xorriso_eval_problem_status(xorriso, ret, 0);
hret= Xorriso_eval_problem_status(xorriso, ret, 1 | 2);
if(hret < 0)
goto ex;
}
@ -1436,7 +1436,7 @@ int Xorriso_restore_sorted(struct XorrisO *xorriso, int count,
(off_t) 0, (off_t) 0, (2 << 7) | (flag & 32));
if(ret <= 0) {
(*problem_count)++;
hret= Xorriso_eval_problem_status(xorriso, ret, 0);
hret= Xorriso_eval_problem_status(xorriso, ret, 1 | 2);
if(hret < 0)
goto ex;
}
@ -1456,8 +1456,8 @@ int Xorriso_restore_sorted(struct XorrisO *xorriso, int count,
(off_t) 0, (off_t) 0, flag & 32);
if(ret <= 0) {
(*problem_count)++;
hret= Xorriso_eval_problem_status(xorriso, ret, 0);
if(ret < 0)
hret= Xorriso_eval_problem_status(xorriso, ret, 1 | 2);
if(hret < 0)
goto ex;
}
}

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -581,7 +581,7 @@ int Xorriso_option_map_l(struct XorrisO *xorriso, int argc, char **argv,
if(ret>0 && !xorriso->request_to_abort)
continue; /* regular bottom of loop */
was_failure= 1;
fret= Xorriso_eval_problem_status(xorriso, ret, 2);
fret= Xorriso_eval_problem_status(xorriso, ret, 1 | 2);
if(fret>=0)
continue;
goto ex;

View File

@ -2,7 +2,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -1007,7 +1007,7 @@ int Xorriso_restore_disk_object(struct XorrisO *xorriso,
}
if(ret & 4) {
/* Found siblings with non-NULL target, but did not link. */
ret= Xorriso_eval_problem_status(xorriso, 1, 0);
ret= Xorriso_eval_problem_status(xorriso, 1, 1 | 2);
if(ret < 0)
{ret= 0; goto ex;}
}
@ -1574,15 +1574,24 @@ attach_source:;
} else if(is_dir && !source_is_split) {
if(!node_register) {
if(new_dir_made) /* keep open and push to Permstack */
Xorriso_restore_properties(xorriso, disk_path, node,
if(new_dir_made) { /* keep open and push to Permstack */
ret= Xorriso_restore_properties(xorriso, disk_path, node,
2 | !!(flag&64));
if(ret <= 0) {
hret= Xorriso_eval_problem_status(xorriso, ret, 1 | 2);
if(hret < 0)
goto ex;
}
}
}
if(!(flag&32)) {
ret= Xorriso_restore_tree(xorriso, (IsoDir *) node, img_path, path,
(off_t) 0, NULL, flag & (2 | 64 | (3 << 7)));
if(ret<=0)
if(ret <= 0) {
hret= Xorriso_eval_problem_status(xorriso, ret, 1 | 2);
if(hret < 0)
goto ex;
}
if(new_dir_made && !(flag&64))
/* set timestamps which Permstack_pop() will not set */
Xorriso_restore_properties(xorriso, disk_path, node, 2);
@ -1598,10 +1607,13 @@ attach_source:;
} else {
ret= Xorriso_restore_disk_object(xorriso, img_path, node, path,
offset, bytes, (flag & (2|4|64)) | !!(flag&8));
if(ret<=0)
if(ret <= 0) {
hret= Xorriso_eval_problem_status(xorriso, ret, 1 | 2);
if(hret < 0)
goto ex;
}
}
}
} else
*npt= '/';
}
@ -1682,7 +1694,7 @@ int Xorriso_restore_node_array(struct XorrisO *xorriso, int flag)
}
if(ret & 4) {
/* Found elder siblings, but did not link. */
ret= Xorriso_eval_problem_status(xorriso, 1, 0);
ret= Xorriso_eval_problem_status(xorriso, 1, 1 | 2);
if(ret < 0)
{ret= 0; goto ex;}
}

View File

@ -1 +1 @@
#define Xorriso_timestamP "2011.08.15.132616"
#define Xorriso_timestamP "2011.08.15.171835"