From e2c71a34d0e1c8dca25dd88f464bc5a34b6c948f Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Fri, 11 Oct 2019 12:46:50 +0200 Subject: [PATCH] Bug fix: -osirrox "concat_split_on" worked only together with -split_size larger than 0. Thanks William Willems. --- xorriso/iso_tree.c | 6 ++++-- xorriso/opts_a_c.c | 2 +- xorriso/read_run.c | 8 ++++---- xorriso/xorriso.1 | 4 ++-- xorriso/xorriso.info | 2 +- xorriso/xorriso.texi | 4 ++-- xorriso/xorriso_timestamp.h | 2 +- 7 files changed, 15 insertions(+), 13 deletions(-) diff --git a/xorriso/iso_tree.c b/xorriso/iso_tree.c index 3be888e7..6977653b 100644 --- a/xorriso/iso_tree.c +++ b/xorriso/iso_tree.c @@ -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 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, void *in_node, @@ -627,6 +627,8 @@ ex:; /* @param flag bit0= node is valid, do not resolve path 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 flag) @@ -636,7 +638,7 @@ int Xorriso_is_split(struct XorrisO *xorriso, char *path, void *node, struct stat stbuf; ret= Xorriso_identify_split(xorriso, path, node, &split_parts, - &split_count, &stbuf, flag & 3); + &split_count, &stbuf, flag & 7); if(split_parts!=NULL) Splitparts_destroy(&split_parts, split_count, 0); return(ret>0); diff --git a/xorriso/opts_a_c.c b/xorriso/opts_a_c.c index 570b2e95..f8f815e2 100644 --- a/xorriso/opts_a_c.c +++ b/xorriso/opts_a_c.c @@ -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 */ ret= 0; 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) goto problem_handler; if(ret==0) { diff --git a/xorriso/read_run.c b/xorriso/read_run.c index c09a5844..2e79c34a 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-2015 Thomas Schmitt, + Copyright 2007-2019 Thomas Schmitt, 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) 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) { /* 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_split= 0; 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) do_not_dive= 1; @@ -1627,7 +1627,7 @@ int Xorriso_restore(struct XorrisO *xorriso, ret= 0; goto ex; } 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) { npt= strchr(apt, '/'); diff --git a/xorriso/xorriso.1 b/xorriso/xorriso.1 index 6527f9ec..a7ac5724 100644 --- a/xorriso/xorriso.1 +++ b/xorriso/xorriso.1 @@ -9,7 +9,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" 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. .\" .\" Some roff macros, for reference: @@ -1626,7 +1626,7 @@ permissible. .br 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 -\-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 when files get restored to disk. .br diff --git a/xorriso/xorriso.info b/xorriso/xorriso.info index ce73cafb..733438b0 100644 --- a/xorriso/xorriso.info +++ b/xorriso/xorriso.info @@ -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 with split file pieces will be recognized and handled like a 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 restored to disk. In order to be recognizable, the names of the part files have to diff --git a/xorriso/xorriso.texi b/xorriso/xorriso.texi index 015bd443..b243db44 100644 --- a/xorriso/xorriso.texi +++ b/xorriso/xorriso.texi @@ -50,7 +50,7 @@ @c man .\" First parameter, NAME, should be all caps @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 .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 .\" @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 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 when files get restored to disk. @* diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 02b99d75..c2f8e2de 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2019.09.29.205504" +#define Xorriso_timestamP "2019.10.11.104334"