From 85aa000192ad05eed8f5a02befbd7ac4d0e94510 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Wed, 14 Dec 2016 10:18:14 +0100 Subject: [PATCH] New command -update_li --- xorriso/opts_d_h.c | 2 + xorriso/opts_i_o.c | 16 +++-- xorriso/parse_exec.c | 7 ++- xorriso/xorriso.1 | 6 +- xorriso/xorriso.h | 1 + xorriso/xorriso.info | 118 +++++++++++++++++++----------------- xorriso/xorriso.texi | 8 ++- xorriso/xorriso_timestamp.h | 2 +- 8 files changed, 95 insertions(+), 65 deletions(-) diff --git a/xorriso/opts_d_h.c b/xorriso/opts_d_h.c index 970efc45..ac9e1d4c 100644 --- a/xorriso/opts_d_h.c +++ b/xorriso/opts_d_h.c @@ -1983,6 +1983,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag) " Like -update but affecting all files below directories.", " -update_l disk_prefix iso_rr_prefix disk_path [***]", " Performs -update_r with each disk_path.", +" -update_li iso_rr_prefix disk_prefix iso_rr_path [***]", +" Performs -update_r with each iso_rr_path.", " -update_lxi disk_prefix iso_rr_prefix disk_or_iso_rr_path [***]", " Performs -update_r with each disk_path or corresponding", " iso_rr_path after exchange of disk_prefix by iso_rr_prefix.", diff --git a/xorriso/opts_i_o.c b/xorriso/opts_i_o.c index dfa17de3..c40bdceb 100644 --- a/xorriso/opts_i_o.c +++ b/xorriso/opts_i_o.c @@ -553,7 +553,9 @@ ex:; } -/* Command -map_l , -compare_l , -update_l , -extract_l , -update_lxi */ +/* Command -map_l , -compare_l , -update_l , -extract_l , -update_lxi , + -update_li +*/ /* @param flag bit4= do not establish and dispose xorriso->di_array for update_l bit8-11= mode 0= -map_l @@ -561,6 +563,7 @@ ex:; 2= -update_l 3= -extract_l 4= -update_lxi + 5= -update_li */ int Xorriso_option_map_l(struct XorrisO *xorriso, int argc, char **argv, int *idx, int flag) @@ -583,8 +586,11 @@ int Xorriso_option_map_l(struct XorrisO *xorriso, int argc, char **argv, cmd= "-compare_l"; else if(mode==2) cmd= "-update_l"; - else if(mode==3) { - cmd= "-extract_l"; + else if(mode == 3 || mode == 5) { + if(mode == 5) + cmd= "-update_li"; + else + cmd= "-extract_l"; ns_flag= 2; s_wd= xorriso->wdi; nt_flag= 2|4; @@ -745,6 +751,8 @@ int Xorriso_option_map_l(struct XorrisO *xorriso, int argc, char **argv, } else { ret= Xorriso_option_extract(xorriso, eff_source, eff_target, 2 | 4); } + } else if(mode == 5) { + ret= Xorriso_option_update(xorriso, eff_target, eff_source, 2 | 8 | 16); } if(ret>0 && !xorriso->request_to_abort) @@ -774,7 +782,7 @@ int Xorriso_option_map_l(struct XorrisO *xorriso, int argc, char **argv, if(mode==0) Xorriso_pacifier_callback(xorriso, "files added", xorriso->pacifier_count, xorriso->pacifier_total, "", 1); - else if(mode==1 || mode==2 || mode == 4) + else if(mode==1 || mode==2 || mode == 4 || mode == 5) Xorriso_pacifier_callback(xorriso, "content bytes read", xorriso->pacifier_count, 0, "", 1 | 8 | 32); else if(mode==3) diff --git a/xorriso/parse_exec.c b/xorriso/parse_exec.c index 438b0e14..1b8fbe09 100644 --- a/xorriso/parse_exec.c +++ b/xorriso/parse_exec.c @@ -593,7 +593,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv, "launch_frontend","ls","lsi","lsl","lsli","lsd","lsdi","lsdl","lsdli", "lsx","lslx","lsdx","lsdlx","map_l","mv","mvi","mkdir","mkdiri", "not_paths","rm","rmi","rm_r","rm_ri","rmdir","rmdiri", - "update_l","update_lx","update_lxi", + "update_l","update_li","update_lx","update_lxi", "setfacl","setfacli","setfacl_list","setfacl_listi", "setfacl_r","setfacl_ri","setfattr","setfattri", "setfattr_list","setfattr_listi","setfattr_r","setfattr_ri", @@ -718,7 +718,7 @@ int Xorriso_cmd_sorting_rank(struct XorrisO *xorriso, "disk_pattern", "add_plainly", "mkdir", "lns", "add", "path_list", "quoted_path_list", "map", "map_single", "map_l", "update", "update_r", - "update_l", "update_lx", "update_lxi", + "update_l", "update_li", "update_lx", "update_lxi", "cut_out", "cpr", "clone", "cp_clone", @@ -1944,6 +1944,9 @@ if (0) { } else if(strcmp(cmd,"update_l") == 0 || strcmp(cmd,"update_lx") == 0) { ret= Xorriso_option_map_l(xorriso, argc, argv, idx, 2<<8); + } else if(strcmp(cmd,"update_li") == 0) { + ret= Xorriso_option_map_l(xorriso, argc, argv, idx, 5 << 8); + } else if(strcmp(cmd,"update_lxi") == 0) { ret= Xorriso_option_map_l(xorriso, argc, argv, idx, 4 << 8); diff --git a/xorriso/xorriso.1 b/xorriso/xorriso.1 index a95babfc..d9aee92f 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.4.7, Dec 05, 2016" +.TH XORRISO 1 "Version 1.4.7, Dec 13, 2016" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -1267,6 +1267,10 @@ exist, then iso_rr_path gets deleted. Perform \-update_r with each of the disk_path parameters. iso_rr_path will be composed from disk_path by replacing disk_prefix by iso_rr_prefix. .TP +\fB\-update_li\fR iso_rr_prefix disk_prefix iso_rr_path [***] +Perform \-update_r with each of the iso_rr_path parameters. disk_path will be +composed from iso_rr_path by replacing iso_rr_prefix by disk_prefix. +.TP \fB\-update_lxi\fR disk_prefix iso_rr_prefix disk_path [***] Perform \-update_r with each of the disk_path parameters and with iso_rr_paths in the ISO filesystem which are derived from the disk_path parameters after diff --git a/xorriso/xorriso.h b/xorriso/xorriso.h index e67343c9..f73896bb 100644 --- a/xorriso/xorriso.h +++ b/xorriso/xorriso.h @@ -1742,6 +1742,7 @@ int Xorriso_option_map(struct XorrisO *xorriso, char *disk_path, 2= -update_l 3= -extract_l 4= -update_lxi @since 1.4.8 + 5= -update_li @since 1.4.8 */ /* @since 0.2.0 */ int Xorriso_option_map_l(struct XorrisO *xorriso, int argc, char **argv, diff --git a/xorriso/xorriso.info b/xorriso/xorriso.info index f710e526..d2856610 100644 --- a/xorriso/xorriso.info +++ b/xorriso/xorriso.info @@ -1134,6 +1134,10 @@ filesystem. Perform -update_r with each of the disk_path parameters. iso_rr_path will be composed from disk_path by replacing disk_prefix by iso_rr_prefix. +-update_li iso_rr_prefix disk_prefix iso_rr_path [***] + Perform -update_r with each of the iso_rr_path parameters. + disk_path will be composed from iso_rr_path by replacing + iso_rr_prefix by disk_prefix. -update_lxi disk_prefix iso_rr_prefix disk_path [***] Perform -update_r with each of the disk_path parameters and with iso_rr_paths in the ISO filesystem which are derived from the @@ -5225,7 +5229,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -chmod_r sets permissions in ISO image: Manip. (line 66) * -chown sets ownership in ISO image: Manip. (line 43) * -chown_r sets ownership in ISO image: Manip. (line 47) -* -clone copies ISO directory tree: Insert. (line 181) +* -clone copies ISO directory tree: Insert. (line 185) * -close controls media closing: SetWrite. (line 401) * -close_damaged closes damaged track and session: Writing. (line 164) * -close_filter_list bans filter registration: Filter. (line 50) @@ -5238,12 +5242,12 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -concat copies ISO file content: Restore. (line 118) * -copyright_file sets copyright file name: SetWrite. (line 239) * -cpax copies files to disk: Restore. (line 100) -* -cpr inserts like with cp -r: Insert. (line 160) +* -cpr inserts like with cp -r: Insert. (line 164) * -cpx copies files to disk: Restore. (line 89) -* -cp_clone copies ISO directory tree: Insert. (line 192) +* -cp_clone copies ISO directory tree: Insert. (line 196) * -cp_rx copies file trees to disk: Restore. (line 103) * -cp_rx copies file trees to disk <1>: Restore. (line 111) -* -cut_out inserts piece of data file: Insert. (line 135) +* -cut_out inserts piece of data file: Insert. (line 139) * -data_cache_size adjusts read cache size: Loading. (line 332) * -dev acquires one drive for input and output: AqDrive. (line 12) * -devices gets list of drives: Inquiry. (line 7) @@ -5304,7 +5308,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -list_formats lists available formats: Writing. (line 129) * -list_profiles lists supported media: Writing. (line 177) * -list_speeds lists available write speeds: Writing. (line 140) -* -lns creates ISO symbolic link: Insert. (line 177) +* -lns creates ISO symbolic link: Insert. (line 181) * -load addresses a particular session as input: Loading. (line 33) * -local_charset sets terminal character set: Charset. (line 57) * -logfile logs output channels to file: Frontend. (line 19) @@ -5321,7 +5325,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -map_single inserts path: Insert. (line 93) * -mark sets synchronizing message: Frontend. (line 23) * -md5 controls handling of MD5 sums: Loading. (line 182) -* -mkdir creates ISO directory: Insert. (line 173) +* -mkdir creates ISO directory: Insert. (line 177) * -modesty_on_drive keep drive buffer hungry: SetWrite. (line 336) * -mount issues mount command for ISO session: Restore. (line 146) * -mount_cmd composes mount command line: Inquiry. (line 49) @@ -5413,7 +5417,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -uid sets global ownership: SetWrite. (line 284) * -update inserts path if different: Insert. (line 100) * -update_l inserts paths if different: Insert. (line 120) -* -update_l inserts paths if different <1>: Insert. (line 124) +* -update_l inserts paths if different <1>: Insert. (line 128) +* -update_li inserts paths if different: Insert. (line 124) * -update_r inserts paths if different: Insert. (line 110) * -use_immed_bit controls use of Immed bit: SetWrite. (line 374) * -use_readline enables readline for dialog: DialogCtl. (line 26) @@ -5483,9 +5488,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Dialog, EOF resistant, -named_pipe_loop: Frontend. (line 119) * Dialog, line editing, -use_readline: DialogCtl. (line 26) * Dialog, terminal geometry, -page: DialogCtl. (line 18) -* Directories, copy, -cp_clone: Insert. (line 192) -* Directory, copy, -clone: Insert. (line 181) -* Directory, create, -mkdir: Insert. (line 173) +* Directories, copy, -cp_clone: Insert. (line 196) +* Directory, copy, -clone: Insert. (line 185) +* Directory, create, -mkdir: Insert. (line 177) * Directory, delete, -rmdir: Manip. (line 29) * disk_path, _definition: Insert. (line 6) * Drive, accessability, -drive_class: Loading. (line 73) @@ -5568,7 +5573,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Insert, file exclusion, -quoted_not_list: SetInsert. (line 66) * Insert, if different, -update: Insert. (line 100) * Insert, if different, -update_l: Insert. (line 120) -* Insert, if different, -update_lxi: Insert. (line 124) +* Insert, if different, -update_li: Insert. (line 124) +* Insert, if different, -update_lxi: Insert. (line 128) * Insert, if different, -update_r: Insert. (line 110) * Insert, large file splitting, -split_size: SetInsert. (line 143) * Insert, limit data file size, -file_size_limit: SetInsert. (line 7) @@ -5580,9 +5586,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Insert, paths from disk file, -map_l: Insert. (line 96) * Insert, paths from disk file, -path_list: Insert. (line 81) * Insert, paths from disk file, -quoted_path_list: Insert. (line 85) -* Insert, paths, -cpr: Insert. (line 160) +* Insert, paths, -cpr: Insert. (line 164) * Insert, pathspecs, -add: Insert. (line 44) -* Insert, piece of data file, -cut_out: Insert. (line 135) +* Insert, piece of data file, -cut_out: Insert. (line 139) * Interval reader for system area and partitions: Bootable. (line 32) * ISO 9660, _definition: Model. (line 6) * iso_rr_path, _definition: Insert. (line 7) @@ -5697,7 +5703,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Sorting order, for -x, -list_arg_sorting: ArgSort. (line 26) * SUN Disk Label, production: Bootable. (line 354) * SUN SPARC boot images, activation: Bootable. (line 427) -* Symbolic link, create, -lns: Insert. (line 177) +* Symbolic link, create, -lns: Insert. (line 181) * System area, _definition: Bootable. (line 200) * Table-of-content, search sessions, -rom_toc_scan: Loading. (line 278) * Table-of-content, show, -toc: Inquiry. (line 27) @@ -5758,47 +5764,47 @@ Node: ArgSort27030 Node: AqDrive28524 Node: Loading32638 Node: Insert52745 -Node: SetInsert64032 -Node: Manip73351 -Node: CmdFind83310 -Node: Filter102082 -Node: Writing106704 -Node: SetWrite116860 -Node: Bootable141619 -Node: Jigdo167119 -Node: Charset171378 -Node: Exception174707 -Node: DialogCtl180836 -Node: Inquiry183438 -Node: Navigate192226 -Node: Verify200521 -Node: Restore210399 -Node: Emulation219012 -Node: Scripting229471 -Node: Frontend237254 -Node: Examples246880 -Node: ExDevices248058 -Node: ExCreate248719 -Node: ExDialog250019 -Node: ExGrowing251290 -Node: ExModifying252099 -Node: ExBootable252609 -Node: ExCharset253164 -Node: ExPseudo254060 -Node: ExCdrecord254987 -Node: ExMkisofs255307 -Node: ExGrowisofs256664 -Node: ExException257818 -Node: ExTime258276 -Node: ExIncBackup258734 -Node: ExRestore262760 -Node: ExRecovery263706 -Node: Files264278 -Node: Environ265612 -Node: Seealso266318 -Node: Bugreport267035 -Node: Legal267626 -Node: CommandIdx268638 -Node: ConceptIdx285899 +Node: SetInsert64248 +Node: Manip73567 +Node: CmdFind83526 +Node: Filter102298 +Node: Writing106920 +Node: SetWrite117076 +Node: Bootable141835 +Node: Jigdo167335 +Node: Charset171594 +Node: Exception174923 +Node: DialogCtl181052 +Node: Inquiry183654 +Node: Navigate192442 +Node: Verify200737 +Node: Restore210615 +Node: Emulation219228 +Node: Scripting229687 +Node: Frontend237470 +Node: Examples247096 +Node: ExDevices248274 +Node: ExCreate248935 +Node: ExDialog250235 +Node: ExGrowing251506 +Node: ExModifying252315 +Node: ExBootable252825 +Node: ExCharset253380 +Node: ExPseudo254276 +Node: ExCdrecord255203 +Node: ExMkisofs255523 +Node: ExGrowisofs256880 +Node: ExException258034 +Node: ExTime258492 +Node: ExIncBackup258950 +Node: ExRestore262976 +Node: ExRecovery263922 +Node: Files264494 +Node: Environ265828 +Node: Seealso266534 +Node: Bugreport267251 +Node: Legal267842 +Node: CommandIdx268854 +Node: ConceptIdx286188  End Tag Table diff --git a/xorriso/xorriso.texi b/xorriso/xorriso.texi index 6d89d314..1290859e 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.4.7, Dec 05, 2016" +@c man .TH XORRISO 1 "Version 1.4.7, Dec 13, 2016" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -1563,6 +1563,12 @@ exist, then iso_rr_path gets deleted. Perform -update_r with each of the disk_path parameters. iso_rr_path will be composed from disk_path by replacing disk_prefix by iso_rr_prefix. @c man .TP +@item -update_li iso_rr_prefix disk_prefix iso_rr_path [***] +@kindex -update_li inserts paths if different +@cindex Insert, if different, -update_li +Perform -update_r with each of the iso_rr_path parameters. disk_path will be +composed from iso_rr_path by replacing iso_rr_prefix by disk_prefix. +@c man .TP @item -update_lxi disk_prefix iso_rr_prefix disk_path [***] @kindex -update_l inserts paths if different @cindex Insert, if different, -update_lxi diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 22f5a593..7d4a630e 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2016.12.05.132927" +#define Xorriso_timestamP "2016.12.14.091711"