Bug fix: -osirrox "concat_split_on" worked only together with -split_size larger than 0. Thanks William Willems.

This commit is contained in:
Thomas Schmitt 2019-10-11 12:46:50 +02:00
parent cb597ec570
commit e2c71a34d0
7 changed files with 15 additions and 13 deletions

View File

@ -495,7 +495,7 @@ int Xorriso_path_from_lba(struct XorrisO *xorriso, IsoNode *node, int lba,
/* @param flag bit0= in_node is valid, do not resolve iso_adr /* @param flag bit0= in_node is valid, do not resolve iso_adr
bit2= recognize and parse split parts despite bit2= recognize and parse split parts despite
xorrio->split_size <= 0 xorriso->split_size <= 0
*/ */
int Xorriso_identify_split(struct XorrisO *xorriso, char *iso_adr, int Xorriso_identify_split(struct XorrisO *xorriso, char *iso_adr,
void *in_node, void *in_node,
@ -627,6 +627,8 @@ ex:;
/* @param flag bit0= node is valid, do not resolve path /* @param flag bit0= node is valid, do not resolve path
bit1= insist in complete collection of part files bit1= insist in complete collection of part files
bit2= recognize and parse split parts despite
xorriso->split_size <= 0
*/ */
int Xorriso_is_split(struct XorrisO *xorriso, char *path, void *node, int Xorriso_is_split(struct XorrisO *xorriso, char *path, void *node,
int flag) int flag)
@ -636,7 +638,7 @@ int Xorriso_is_split(struct XorrisO *xorriso, char *path, void *node,
struct stat stbuf; struct stat stbuf;
ret= Xorriso_identify_split(xorriso, path, node, &split_parts, ret= Xorriso_identify_split(xorriso, path, node, &split_parts,
&split_count, &stbuf, flag & 3); &split_count, &stbuf, flag & 7);
if(split_parts!=NULL) if(split_parts!=NULL)
Splitparts_destroy(&split_parts, split_count, 0); Splitparts_destroy(&split_parts, split_count, 0);
return(ret>0); return(ret>0);

View File

@ -2681,7 +2681,7 @@ int Xorriso_option_cpx(struct XorrisO *xorriso, int argc, char **argv,
/* only allow directories if they actually represent split data files */ /* only allow directories if they actually represent split data files */
ret= 0; ret= 0;
if(xorriso->do_concat_split) if(xorriso->do_concat_split)
ret= Xorriso_is_split(xorriso, eff_origin, NULL, 0); ret= Xorriso_is_split(xorriso, eff_origin, NULL, 4);
if(ret<0) if(ret<0)
goto problem_handler; goto problem_handler;
if(ret==0) { if(ret==0) {

View File

@ -2,7 +2,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images. /* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2015 Thomas Schmitt, <scdbackup@gmx.net> Copyright 2007-2019 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
@ -1062,7 +1062,7 @@ int Xorriso_restore_disk_object(struct XorrisO *xorriso,
if(LIBISO_ISDIR(node) && xorriso->do_concat_split) if(LIBISO_ISDIR(node) && xorriso->do_concat_split)
leaf_is_split= Xorriso_identify_split(xorriso, img_path, node, leaf_is_split= Xorriso_identify_split(xorriso, img_path, node,
&split_parts, &split_count, &stbuf, 1|2); &split_parts, &split_count, &stbuf, 1 | 4);
if(leaf_is_split) { if(leaf_is_split) {
/* map all files in directory img_path into regular file disk_path */ /* map all files in directory img_path into regular file disk_path */
@ -1437,7 +1437,7 @@ much_too_long:;
source_is_dir= 1; source_is_dir= 1;
source_is_split= 0; source_is_split= 0;
if(source_is_dir) if(source_is_dir)
source_is_split= Xorriso_is_split(xorriso, img_path, node, 1|2); source_is_split= Xorriso_is_split(xorriso, img_path, node, 1 | 2 | 4);
if(source_is_split) if(source_is_split)
do_not_dive= 1; do_not_dive= 1;
@ -1627,7 +1627,7 @@ int Xorriso_restore(struct XorrisO *xorriso,
ret= 0; goto ex; ret= 0; goto ex;
} }
if(is_dir && xorriso->do_concat_split) if(is_dir && xorriso->do_concat_split)
leaf_is_split= Xorriso_is_split(xorriso, img_path, node, 1|2); leaf_is_split= Xorriso_is_split(xorriso, img_path, node, 1 | 2 | 4);
} }
for(npt= apt; !done; apt= npt+1) { for(npt= apt; !done; apt= npt+1) {
npt= strchr(apt, '/'); npt= strchr(apt, '/');

View File

@ -9,7 +9,7 @@
.\" First parameter, NAME, should be all caps .\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1) .\" other parameters are allowed: see man(7), man(1)
.TH XORRISO 1 "Version 1.5.1, Sep 04, 2019" .TH XORRISO 1 "Version 1.5.1, Oct 10, 2019"
.\" Please adjust this date whenever revising the manpage. .\" Please adjust this date whenever revising the manpage.
.\" .\"
.\" Some roff macros, for reference: .\" Some roff macros, for reference:
@ -1626,7 +1626,7 @@ permissible.
.br .br
While command \-split_size is set larger than 0 such a directory with split While command \-split_size is set larger than 0 such a directory with split
file pieces will be recognized and handled like a regular file by commands file pieces will be recognized and handled like a regular file by commands
\-compare* , \-update*, and in overwrite situations. There are \-ossirox \-compare* , \-update*, and in overwrite situations. There are \-osirrox
parameters "concat_split_on" and "concat_split_off" which control the handling parameters "concat_split_on" and "concat_split_off" which control the handling
when files get restored to disk. when files get restored to disk.
.br .br

View File

@ -1428,7 +1428,7 @@ File: xorriso.info, Node: SetInsert, Next: Manip, Prev: Insert, Up: Commands
While command -split_size is set larger than 0 such a directory While command -split_size is set larger than 0 such a directory
with split file pieces will be recognized and handled like a with split file pieces will be recognized and handled like a
regular file by commands -compare* , -update*, and in overwrite regular file by commands -compare* , -update*, and in overwrite
situations. There are -ossirox parameters "concat_split_on" and situations. There are -osirrox parameters "concat_split_on" and
"concat_split_off" which control the handling when files get "concat_split_off" which control the handling when files get
restored to disk. restored to disk.
In order to be recognizable, the names of the part files have to In order to be recognizable, the names of the part files have to

View File

@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps @c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection @c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
@c man .\" other parameters are allowed: see man(7), man(1) @c man .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISO 1 "Version 1.5.1, Sep 04, 2019" @c man .TH XORRISO 1 "Version 1.5.1, Oct 10, 2019"
@c man .\" Please adjust this date whenever revising the manpage. @c man .\" Please adjust this date whenever revising the manpage.
@c man .\" @c man .\"
@c man .\" Some roff macros, for reference: @c man .\" Some roff macros, for reference:
@ -1968,7 +1968,7 @@ permissible.
@* @*
While command -split_size is set larger than 0 such a directory with split While command -split_size is set larger than 0 such a directory with split
file pieces will be recognized and handled like a regular file by commands file pieces will be recognized and handled like a regular file by commands
-compare* , -update*, and in overwrite situations. There are -ossirox -compare* , -update*, and in overwrite situations. There are -osirrox
parameters "concat_split_on" and "concat_split_off" which control the handling parameters "concat_split_on" and "concat_split_off" which control the handling
when files get restored to disk. when files get restored to disk.
@* @*

View File

@ -1 +1 @@
#define Xorriso_timestamP "2019.09.29.205504" #define Xorriso_timestamP "2019.10.11.104334"