From 513bafda9204ef8038ffe9fb234b795cd86694b2 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Thu, 13 Dec 2012 19:33:43 +0000 Subject: [PATCH] New command -toc_of --- libisoburn/libisoburn.ver | 1 + xorriso/opts_d_h.c | 4 +- xorriso/opts_p_z.c | 36 ++++++++++++++ xorriso/parse_exec.c | 8 +++- xorriso/xorriso.1 | 15 +++++- xorriso/xorriso.h | 9 ++-- xorriso/xorriso.info | 94 ++++++++++++++++++++----------------- xorriso/xorriso.texi | 16 ++++++- xorriso/xorriso_timestamp.h | 2 +- 9 files changed, 132 insertions(+), 53 deletions(-) diff --git a/libisoburn/libisoburn.ver b/libisoburn/libisoburn.ver index 920be1ce..9bca698d 100644 --- a/libisoburn/libisoburn.ver +++ b/libisoburn/libisoburn.ver @@ -283,6 +283,7 @@ Xorriso_option_system_id; Xorriso_option_tell_media_space; Xorriso_option_temp_mem_limit; Xorriso_option_toc; +Xorriso_option_toc_of; Xorriso_option_uid; Xorriso_option_unregister_filter; Xorriso_option_update; diff --git a/xorriso/opts_d_h.c b/xorriso/opts_d_h.c index 92374147..ed88451f 100644 --- a/xorriso/opts_d_h.c +++ b/xorriso/opts_d_h.c @@ -1658,7 +1658,9 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag) " -device_links Like devices, but showing link paths which are hopefully", " persistent over reboot on modern Linux systems.", "", -" -toc Show media specific table of content (sessions).", +" -toc Show media specific tables of content (sessions).", +" -toc_of \"in\"|\"out\"|\"all\"", +" Show -toc of either input drive or output drive or both.", "", " -mount_cmd drive entity id path", " Print to result channel a command suitable to mount the", diff --git a/xorriso/opts_p_z.c b/xorriso/opts_p_z.c index b25c5daa..a3b685e5 100644 --- a/xorriso/opts_p_z.c +++ b/xorriso/opts_p_z.c @@ -1509,6 +1509,42 @@ int Xorriso_option_toc(struct XorrisO *xorriso, int flag) } +/* Option -toc_of */ +int Xorriso_option_toc_of(struct XorrisO *xorriso, char *which, int flag) +{ + int ret= 0; + + if(strncmp(which, "in", 2) == 0) { + if(xorriso->indev[0] == 0) { + Xorriso_msgs_submit(xorriso, 0, "-toc_of 'in' : No input drive aquired", + 0, "NOTE", 0); + return(2); + } + ret= Xorriso_toc(xorriso, 0); + } else if(strncmp(which, "out", 3) == 0) { + if(xorriso->outdev[0] == 0) { + Xorriso_msgs_submit(xorriso, 0, "-toc_of 'out' : No output drive aquired", + 0, "NOTE", 0); + return(2); + } + ret= Xorriso_toc(xorriso, 2); + } else if(strncmp(which, "all", 3) == 0) { + if(xorriso->indev[0] == 0 && xorriso->outdev[0] == 0) { + Xorriso_msgs_submit(xorriso, 0, "-toc_of 'all' : No drive aquired", + 0, "NOTE", 0); + return(2); + } + ret= Xorriso_option_toc(xorriso, 0); + } else { + sprintf(xorriso->info_text, "-toc_of: Unknown drive code "); + Text_shellsafe(which, xorriso->info_text, 1); + Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0); + ret= 0; + } + return(ret); +} + + /* Option -uid */ int Xorriso_option_uid(struct XorrisO *xorriso, char *uid, int flag) { diff --git a/xorriso/parse_exec.c b/xorriso/parse_exec.c index 47e16346..41682002 100644 --- a/xorriso/parse_exec.c +++ b/xorriso/parse_exec.c @@ -519,7 +519,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv, "rom_toc_scan","rr_reloc_dir","scsi_log", "session_log","signal_handling","sleep", "speed","split_size","status","status_history_max", - "stdio_sync","stream_recording","system_id","temp_mem_limit", + "stdio_sync","stream_recording","system_id","temp_mem_limit","toc_of", "uid","unregister_filter","use_readline","volid","volset_id", "write_type","xattr","zisofs", "" @@ -660,7 +660,7 @@ int Xorriso_cmd_sorting_rank(struct XorrisO *xorriso, "* Drive and media related inquiry actions (2):", "list_profiles", "list_formats", "list_speeds", - "toc", "pvd_info", + "toc", "toc_of", "pvd_info", "* Settings for file insertion:", "file_size_limit", "not_mgt", "not_paths", "not_leaf", "not_list", @@ -1898,6 +1898,10 @@ next_command:; } else if(strcmp(cmd,"toc")==0) { Xorriso_option_toc(xorriso, 0); + } else if(strcmp(cmd,"toc_of")==0) { + (*idx)++; + Xorriso_option_toc_of(xorriso, arg1, 0); + } else if(strcmp(cmd,"uid")==0) { (*idx)++; ret= Xorriso_option_uid(xorriso,arg1,0); diff --git a/xorriso/xorriso.1 b/xorriso/xorriso.1 index 010c9e80..6c7081a4 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.2.5, Dec 08, 2012" +.TH XORRISO 1 "Version 1.2.5, Dec 13, 2012" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -3407,7 +3407,7 @@ Precedence is: "dvdrw", "cdrw", "dvd", "cdrom", "cd". .TP \fB\-toc\fR .br -Show media specific table of content. This is the session history +Show media specific tables of content. This is the session history of the medium, not the ISO image directory tree. .br In case of overwriteable media holding a valid ISO image, it may happen that @@ -3421,6 +3421,17 @@ to be the most recent real session then. .br Some read\-only drives and media show no usable session history at all. Command \-rom_toc_scan might help. +.br +If input device and output device are both aquired and not the same, +then both tables\-of\-content get shown. +.TP +\fB\-toc_of\fR "in"|"out"|"all" +Like command \-toc but explicitely choosing which drive's table\-of\-content +to show. "in" shows \-indev or \-dev, "out" shows \-outdev or \-dev, +"all" shows the same as \-toc. +.br +As further difference to \-toc, this command does not emit FAILURE events +when the desired drive is not aquired. .TP \fB\-mount_cmd\fR drive entity id path Emit an appropriate command line for mounting the ISO session diff --git a/xorriso/xorriso.h b/xorriso/xorriso.h index b419fd12..cfd71f9b 100644 --- a/xorriso/xorriso.h +++ b/xorriso/xorriso.h @@ -623,14 +623,14 @@ int Xorriso_process_errfile(struct XorrisO *xorriso, These functions can use Xorriso_parse_line() too, if they submit the xorriso parameter as NULL. They may not use the struct XorrisO object in any way. - Synchronization between watcher and emitters of commands can be achived + Synchronization between watcher and emitters of commands can be achieved by Xorriso_peek_outlists(). The main motivation for the message watcher is to inspect and display messages of long lasting xorriso commands while they are still executing. E.g. of -commit, -blank, -format. One would normally start it before such a command and stop it afterwards. But of course, the watcher can stay activated all the time and process - all message output via its handler calls.i + all message output via its handler calls. The message sieve does not interfere with outlists and message watcher. The message watcher will only see messages which are not caught by outlists @@ -1202,7 +1202,7 @@ int Xorriso_option_add_plainly(struct XorrisO *xorriso, char *mode, int flag); -/* Command -alter_date, alter_date_r */ +/* Command -alter_date, -alter_date_r */ /* @param flag bit0=recursive (-alter_date_r) */ int Xorriso_option_alter_date(struct XorrisO *xorriso, @@ -1844,6 +1844,9 @@ int Xorriso_option_temp_mem_limit(struct XorrisO *xorriso, char *size, /* Command -toc */ int Xorriso_option_toc(struct XorrisO *xorriso, int flag); +/* Command -toc_of */ +int Xorriso_option_toc_of(struct XorrisO *xorriso, char *which, int flag); + /* Command -uid */ int Xorriso_option_uid(struct XorrisO *xorriso, char *uid, int flag); diff --git a/xorriso/xorriso.info b/xorriso/xorriso.info index 3027c2d4..068a1594 100644 --- a/xorriso/xorriso.info +++ b/xorriso/xorriso.info @@ -2986,7 +2986,7 @@ File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Comm "dvd", "cdrom", "cd". -toc - Show media specific table of content. This is the session history + Show media specific tables of content. This is the session history of the medium, not the ISO image directory tree. In case of overwriteable media holding a valid ISO image, it may happen that only a single session gets shown. But if the first @@ -2997,6 +2997,15 @@ File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Comm sessions is supposed to be the most recent real session then. Some read-only drives and media show no usable session history at all. Command -rom_toc_scan might help. + If input device and output device are both aquired and not the + same, then both tables-of-content get shown. + +-toc_of "in"|"out"|"all" + Like command -toc but explicitely choosing which drive's + table-of-content to show. "in" shows -indev or -dev, "out" shows + -outdev or -dev, "all" shows the same as -toc. + As further difference to -toc, this command does not emit FAILURE + events when the desired drive is not aquired. -mount_cmd drive entity id path Emit an appropriate command line for mounting the ISO session @@ -4715,8 +4724,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -md5 controls handling of MD5 sums: Loading. (line 156) * -mkdir creates ISO directory: Insert. (line 169) * -mount issues mount command for ISO session: Restore. (line 126) -* -mount_cmd composes mount command line: Inquiry. (line 41) -* -mount_cmd controls mount command: Inquiry. (line 57) +* -mount_cmd composes mount command line: Inquiry. (line 50) +* -mount_cmd controls mount command: Inquiry. (line 66) * -msg_op perform operations on program messages: Frontend. (line 30) * -mv renames file in ISO image: Manip. (line 35) * -no_rc disables startup files: Scripting. (line 7) @@ -4740,12 +4749,12 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -print prints result text line: Scripting. (line 99) * -print_info prints message text line: Scripting. (line 102) * -print_mark prints synchronizing text line: Scripting. (line 105) -* -print_size predicts image size: Inquiry. (line 80) +* -print_size predicts image size: Inquiry. (line 89) * -prog sets program name: Frontend. (line 89) * -prog_help prints help text: Frontend. (line 92) * -prompt prompts for enter key: Scripting. (line 110) * -publisher sets publisher id: SetWrite. (line 186) -* -pvd_info shows image id strings: Inquiry. (line 93) +* -pvd_info shows image id strings: Inquiry. (line 102) * -pwd tells working directory in ISO: Navigate. (line 20) * -pwdx tells working directory on disk: Navigate. (line 23) * -quoted_not_list sets exclusions: SetInsert. (line 72) @@ -4768,7 +4777,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 168) * -scsi_log reports SCSI commands: Scripting. (line 147) * -session_log logs written sessions: Scripting. (line 138) -* -session_string composes session info line: Inquiry. (line 67) +* -session_string composes session info line: Inquiry. (line 76) * -set_filter applies filter to file: Filter. (line 60) * -set_filter_r applies filter to file tree: Filter. (line 89) * -setfacl sets ACL in ISO image: Manip. (line 73) @@ -4789,9 +4798,10 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -stdio_sync controls stdio buffer: SetWrite. (line 318) * -stream_recording controls defect management: SetWrite. (line 299) * -system_id sets system id: SetWrite. (line 201) -* -tell_media_space reports free space: Inquiry. (line 89) +* -tell_media_space reports free space: Inquiry. (line 98) * -temp_mem_limit curbs memory consumption: Scripting. (line 92) * -toc shows list of sessions: Inquiry. (line 28) +* -toc_of shows list of sessions: Inquiry. (line 43) * -uid sets global ownership: SetWrite. (line 264) * -update inserts path if different: Insert. (line 102) * -update_l inserts paths if different: Insert. (line 124) @@ -4922,7 +4932,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Image, set volume id, -volid: SetWrite. (line 160) * Image, set volume set id, -volset_id: SetWrite. (line 181) * Image, set volume timestamp, -volume_date: SetWrite. (line 208) -* Image, show id strings, -pvd_info: Inquiry. (line 93) +* Image, show id strings, -pvd_info: Inquiry. (line 102) * Insert, enable overwriting, -overwrite: SetInsert. (line 127) * Insert, file exclusion absolute, -not_paths: SetInsert. (line 55) * Insert, file exclusion from file, -not_list: SetInsert. (line 67) @@ -5039,11 +5049,11 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Rock Ridge, _definition: Extras. (line 6) * Session, _definition: Model. (line 6) * Session, altered start address, -displacement: Loading. (line 36) -* Session, info string, -session_string: Inquiry. (line 67) +* Session, info string, -session_string: Inquiry. (line 76) * Session, issue mount command, -mount: Restore. (line 126) * Session, log when written, -session_log: Scripting. (line 138) -* Session, mount command line, -mount_cmd: Inquiry. (line 41) -* Session, mount parameters, -mount_opts: Inquiry. (line 57) +* Session, mount command line, -mount_cmd: Inquiry. (line 50) +* Session, mount parameters, -mount_opts: Inquiry. (line 66) * Session, select as input, -load: Loading. (line 11) * Sorting order, for -x, -list_arg_sorting: ArgSort. (line 27) * SUN Disk Label, production: Bootable. (line 210) @@ -5073,12 +5083,12 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Write, enable HFS+, -hfsplus: SetWrite. (line 14) * Write, enable Joliet, -joliet: SetWrite. (line 10) * Write, fifo size, -fs: SetWrite. (line 328) -* Write, free space, -tell_media_space: Inquiry. (line 89) +* Write, free space, -tell_media_space: Inquiry. (line 98) * Write, log problematic disk files, -errfile_log: Scripting. (line 118) * Write, log written sessions, -session_log: Scripting. (line 138) * Write, padding image, -padding: SetWrite. (line 349) * Write, pending ISO image, -commit: Writing. (line 29) -* Write, predict image size, -print_size: Inquiry. (line 80) +* Write, predict image size, -print_size: Inquiry. (line 89) * Write, set speed, -speed: SetWrite. (line 284) * Write, simulation, -dummy: SetWrite. (line 324) * Write, TAO or SAO/DAO, -write_type: SetWrite. (line 341) @@ -5119,34 +5129,34 @@ Node: Charset140512 Node: Exception143274 Node: DialogCtl149394 Node: Inquiry151992 -Node: Navigate156859 -Node: Verify165157 -Node: Restore174189 -Node: Emulation181099 -Node: Scripting190911 -Node: Frontend198072 -Node: Examples202666 -Node: ExDevices203844 -Node: ExCreate204503 -Node: ExDialog205788 -Node: ExGrowing207053 -Node: ExModifying207858 -Node: ExBootable208362 -Node: ExCharset208914 -Node: ExPseudo209735 -Node: ExCdrecord210633 -Node: ExMkisofs210950 -Node: ExGrowisofs212290 -Node: ExException213425 -Node: ExTime213879 -Node: ExIncBackup214338 -Node: ExRestore218330 -Node: ExRecovery219290 -Node: Files219860 -Node: Seealso221159 -Node: Bugreport221882 -Node: Legal222463 -Node: CommandIdx223474 -Node: ConceptIdx239492 +Node: Navigate157310 +Node: Verify165608 +Node: Restore174640 +Node: Emulation181550 +Node: Scripting191362 +Node: Frontend198523 +Node: Examples203117 +Node: ExDevices204295 +Node: ExCreate204954 +Node: ExDialog206239 +Node: ExGrowing207504 +Node: ExModifying208309 +Node: ExBootable208813 +Node: ExCharset209365 +Node: ExPseudo210186 +Node: ExCdrecord211084 +Node: ExMkisofs211401 +Node: ExGrowisofs212741 +Node: ExException213876 +Node: ExTime214330 +Node: ExIncBackup214789 +Node: ExRestore218781 +Node: ExRecovery219741 +Node: Files220311 +Node: Seealso221610 +Node: Bugreport222333 +Node: Legal222914 +Node: CommandIdx223925 +Node: ConceptIdx240016  End Tag Table diff --git a/xorriso/xorriso.texi b/xorriso/xorriso.texi index d127a88a..90baf985 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.2.5, Dec 08, 2012" +@c man .TH XORRISO 1 "Version 1.2.5, Dec 13, 2012" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -3994,7 +3994,7 @@ Precedence is: "dvdrw", "cdrw", "dvd", "cdrom", "cd". @* @kindex -toc shows list of sessions @cindex Table-of-content, show, -toc -Show media specific table of content. This is the session history +Show media specific tables of content. This is the session history of the medium, not the ISO image directory tree. @* In case of overwriteable media holding a valid ISO image, it may happen that @@ -4008,6 +4008,18 @@ to be the most recent real session then. @* Some read-only drives and media show no usable session history at all. Command -rom_toc_scan might help. +@* +If input device and output device are both aquired and not the same, +then both tables-of-content get shown. +@c man .TP +@item -toc_of "in"|"out"|"all" +@kindex -toc_of shows list of sessions +Like command -toc but explicitely choosing which drive's table-of-content +to show. "in" shows -indev or -dev, "out" shows -outdev or -dev, +"all" shows the same as -toc. +@* +As further difference to -toc, this command does not emit FAILURE events +when the desired drive is not aquired. @c man .TP @item -mount_cmd drive entity id path @kindex -mount_cmd composes mount command line diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 2d5a426e..6eb79119 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2012.12.08.175205" +#define Xorriso_timestamP "2012.12.13.193255"