diff --git a/xorriso/disk_ops.c b/xorriso/disk_ops.c index c1658b4f..2d356569 100644 --- a/xorriso/disk_ops.c +++ b/xorriso/disk_ops.c @@ -1,7 +1,7 @@ /* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images. - Copyright 2007-2010 Thomas Schmitt, + Copyright 2007-2011 Thomas Schmitt, 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; } } diff --git a/xorriso/opts_i_o.c b/xorriso/opts_i_o.c index 8b59df91..97d98180 100644 --- a/xorriso/opts_i_o.c +++ b/xorriso/opts_i_o.c @@ -1,7 +1,7 @@ /* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images. - Copyright 2007-2010 Thomas Schmitt, + Copyright 2007-2011 Thomas Schmitt, 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; diff --git a/xorriso/read_run.c b/xorriso/read_run.c index 002a6b38..aa753b5d 100644 --- a/xorriso/read_run.c +++ b/xorriso/read_run.c @@ -2,7 +2,7 @@ /* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images. - Copyright 2007-2010 Thomas Schmitt, + Copyright 2007-2011 Thomas Schmitt, 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) - goto ex; + 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,8 +1607,11 @@ attach_source:; } else { ret= Xorriso_restore_disk_object(xorriso, img_path, node, path, offset, bytes, (flag & (2|4|64)) | !!(flag&8)); - if(ret<=0) - goto ex; + if(ret <= 0) { + hret= Xorriso_eval_problem_status(xorriso, ret, 1 | 2); + if(hret < 0) + goto ex; + } } } } else @@ -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;} } diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 75f452d9..fd168b2d 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2011.08.15.132616" +#define Xorriso_timestamP "2011.08.15.171835"