From a4a13cbe2c50c56d45a0ea4384b08f5f79d365ee Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Tue, 29 Apr 2014 17:49:08 +0000 Subject: [PATCH] New command -report_el_torito (former -report_system_area "el_torito") --- libisoburn/libisoburn.ver | 3 +- xorriso/iso_img.c | 53 +++++++++--------------- xorriso/opts_d_h.c | 7 +++- xorriso/opts_p_z.c | 11 +++++ xorriso/parse_exec.c | 9 +++- xorriso/xorriso.1 | 18 ++++---- xorriso/xorriso.h | 4 ++ xorriso/xorriso.info | 82 +++++++++++++++++++------------------ xorriso/xorriso.texi | 22 ++++++---- xorriso/xorriso_timestamp.h | 2 +- 10 files changed, 118 insertions(+), 93 deletions(-) diff --git a/libisoburn/libisoburn.ver b/libisoburn/libisoburn.ver index 587307a0..cafa8299 100644 --- a/libisoburn/libisoburn.ver +++ b/libisoburn/libisoburn.ver @@ -267,7 +267,8 @@ Xorriso_option_pwdx; Xorriso_option_read_mkisofsrc; Xorriso_option_reassure; Xorriso_option_report_about; -Xorriso_report_system_area; +Xorriso_option_report_el_torito; +Xorriso_option_report_system_area; Xorriso_option_return_with; Xorriso_option_rmi; Xorriso_option_rockridge; diff --git a/xorriso/iso_img.c b/xorriso/iso_img.c index fc4a05eb..44d6ef5c 100644 --- a/xorriso/iso_img.c +++ b/xorriso/iso_img.c @@ -1370,34 +1370,24 @@ static void Xorriso_report_lines(struct XorrisO *xorriso, */ int Xorriso_report_system_area(struct XorrisO *xorriso, char *form, int flag) { - int ret, line_count, is_elto= 0; + int ret, line_count; char **lines = NULL; IsoImage *image; if(strcmp(form, "help") == 0) { - ret= iso_image_report_system_area(NULL, &lines, &line_count, 1); + if(flag & 1) + ret= iso_image_report_el_torito(NULL, &lines, &line_count, 1); + else + ret= iso_image_report_system_area(NULL, &lines, &line_count, 1); if(ret <= 0) goto ex; sprintf(xorriso->result_line, "------------------------------------------------------------------------------\n"); Xorriso_result(xorriso, 0); - sprintf(xorriso->result_line, "With -report_system_area \"plain\":\n"); - Xorriso_result(xorriso, 0); - sprintf(xorriso->result_line, -"------------------------------------------------------------------------------\n"); - Xorriso_result(xorriso, 0); - sprintf(xorriso->result_line, "\n"); - Xorriso_result(xorriso, 0); - Xorriso_report_lines(xorriso, lines, line_count); - iso_image_report_system_area(NULL, &lines, &line_count, 1 << 15); - ret= iso_image_report_el_torito(NULL, &lines, &line_count, 1); - if(ret <= 0) - goto ex; - is_elto= 1; - sprintf(xorriso->result_line, -"------------------------------------------------------------------------------\n"); - Xorriso_result(xorriso, 0); - sprintf(xorriso->result_line, "With -report_system_area \"el_torito\":\n"); + if(flag & 1) + sprintf(xorriso->result_line, "With -report_el_torito \"plain\":\n"); + else + sprintf(xorriso->result_line, "With -report_system_area \"plain\":\n"); Xorriso_result(xorriso, 0); sprintf(xorriso->result_line, "------------------------------------------------------------------------------\n"); @@ -1409,22 +1399,19 @@ int Xorriso_report_system_area(struct XorrisO *xorriso, char *form, int flag) ret= Xorriso_get_volume(xorriso, &image, 0); if(ret <= 0) goto ex; - ret= iso_image_report_system_area(image, &lines, &line_count, 0); + if(flag & 1) + ret= iso_image_report_el_torito(image, &lines, &line_count, 0); + else + ret= iso_image_report_system_area(image, &lines, &line_count, 0); - } else if(strcmp(form, "el_torito") == 0) { - ret= Xorriso_get_volume(xorriso, &image, 0); - if(ret <= 0) - goto ex; - is_elto= 1; - ret= iso_image_report_el_torito(image, &lines, &line_count, 0); - - } else if(strncmp(form, "gpt_crc_of:", 11) == 0) { + } else if(strncmp(form, "gpt_crc_of:", 11) == 0 && !(flag & 1)) { ret = Xorriso_gpt_crc(xorriso, form + 11, 0); goto ex; } else { - strcpy(xorriso->info_text, - "-report_system_area form parameter not recognized: "); + sprintf(xorriso->info_text, + "%s form parameter not recognized: ", + flag & 1 ? "-report_el_torito" : "-report_system_area"); Text_shellsafe(form, xorriso->info_text, 1); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); ret= 0; goto ex; @@ -1432,7 +1419,7 @@ int Xorriso_report_system_area(struct XorrisO *xorriso, char *form, int flag) if(ret < 0) goto ex; if(lines == NULL || ret == 0) { - if(is_elto) + if(flag & 1) strcpy(xorriso->info_text, "No El Torito information was loaded"); else strcpy(xorriso->info_text, "No System Area was loaded"); @@ -1440,7 +1427,7 @@ int Xorriso_report_system_area(struct XorrisO *xorriso, char *form, int flag) ret= 2; goto ex; } if(line_count == 0) { - if(is_elto) + if(flag & 1) strcpy(xorriso->info_text, "No El Torito information available"); else strcpy(xorriso->info_text, "System Area only contains 0-bytes"); @@ -1451,7 +1438,7 @@ int Xorriso_report_system_area(struct XorrisO *xorriso, char *form, int flag) ret= 1; ex:; if(lines != NULL) { - if(is_elto) + if(flag & 1) iso_image_report_el_torito(NULL, &lines, &line_count, 1 << 15); else iso_image_report_system_area(NULL, &lines, &line_count, 1 << 15); diff --git a/xorriso/opts_d_h.c b/xorriso/opts_d_h.c index 97b54ac0..10b54c90 100644 --- a/xorriso/opts_d_h.c +++ b/xorriso/opts_d_h.c @@ -1785,10 +1785,13 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag) " Print foreseeable available space on output medium", " -pvd_info Print various id strings of the loaded ISO image.", "", -" -report_system_area \"plain\"|\"el_torito\"|\"help\"|\"gpt_crc_of:\"disk_path", +" -report_el_torito \"plain\"|\"help\"", +" \"plain\" prints information about the El Torito boot catalog", +" and boot images of the loaded ISO image.", +" \"help\" prints an explanation of the output format.", +" -report_system_area \"plain\"|\"help\"|\"gpt_crc_of:\"disk_path", " \"plain\" prints information about recognized data", " in the System Area of the loaded ISO image: MBR, GPT, ...", -" \"el_torito\" prints data from the El Torito boot catalog.", " \"help\" prints an explanation of the output format.", " \"gpt_crc_of:\" prints GPT CRC of file disk_path.", "", diff --git a/xorriso/opts_p_z.c b/xorriso/opts_p_z.c index b9dbfe56..5398d354 100644 --- a/xorriso/opts_p_z.c +++ b/xorriso/opts_p_z.c @@ -491,6 +491,17 @@ int Xorriso_option_report_about(struct XorrisO *xorriso, char *in_severity, } +/* Command -report_el_torito */ +int Xorriso_option_report_el_torito(struct XorrisO *xorriso, + char *form, int flag) +{ + int ret; + + ret= Xorriso_report_system_area(xorriso, form, 1); + return(ret); +} + + /* Command -report_system_area */ int Xorriso_option_report_system_area(struct XorrisO *xorriso, char *form, int flag) diff --git a/xorriso/parse_exec.c b/xorriso/parse_exec.c index 16a32504..c46e13c8 100644 --- a/xorriso/parse_exec.c +++ b/xorriso/parse_exec.c @@ -531,7 +531,8 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv, "pacifier","padding","path_list","pathspecs","pkt_output", "preparer_id","print","print_info","print_mark","prompt", "prog","prog_help","publisher","quoted_not_list","quoted_path_list", - "read_speed","reassure","report_about","report_system_area","rockridge", + "read_speed","reassure","report_about", + "report_el_torito","report_system_area","rockridge", "rom_toc_scan","rr_reloc_dir","scsi_log", "session_log","sh_style_result","signal_handling","sleep", "speed","split_size","status","status_history_max", @@ -679,7 +680,7 @@ int Xorriso_cmd_sorting_rank(struct XorrisO *xorriso, "* Drive and media related inquiry actions (2):", "list_profiles", "list_formats", "list_speeds", - "toc", "toc_of", "pvd_info", "report_system_area", + "toc", "toc_of", "pvd_info", "report_system_area", "report_el_torito", "* Settings for file insertion:", "file_size_limit", "not_mgt", "not_paths", "not_leaf", "not_list", @@ -1643,6 +1644,10 @@ next_command:; (*idx)++; ret= Xorriso_option_report_about(xorriso, arg1, 0); + } else if(strcmp(cmd,"report_el_torito")==0) { + (*idx)++; + ret= Xorriso_option_report_el_torito(xorriso, arg1, 0); + } else if(strcmp(cmd,"report_system_area")==0) { (*idx)++; ret= Xorriso_option_report_system_area(xorriso, arg1, 0); diff --git a/xorriso/xorriso.1 b/xorriso/xorriso.1 index 427d7401..b562ef71 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.3.7, Apr 23, 2014" +.TH XORRISO 1 "Version 1.3.7, Apr 29, 2014" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -3760,17 +3760,21 @@ The timestamps get not automatically propagated from loaded image to newly written image. The ones for new images may be set by command \-volume_date. See there for the meaning of the particular timestamps. .TP -\fB\-report_system_area\fR "plain"|"el_torito"|"help"|"gpt_crc_of:"disk_path +\fB\-report_el_torito\fR "plain"|"help" +.br +With parameter \fBplain\fR print a report about the information found +in the El Torito boot catalog of the loaded ISO image. +.br +With parameter \fBhelp\fR print a text which explains the meaning of the +lines put out by "plain". +.TP +\fB\-report_system_area\fR "plain"|"help"|"gpt_crc_of:"disk_path With parameter \fBplain\fR print a report about the information found in the System Area of the loaded ISO image. The report consists of zero to many lines with a header text, a colon, and information text. .br -With parameter \fBel_torito\fR print a report about the information found -in the El Torito boot catalog of the loaded ISO image. The boot catalog is -not actually a part of the system area. But its data serve a similar purpose. -.br With parameter \fBhelp\fR print a text which explains the meaning of the -lines put out by "plain" and "el_torito". You probably will have to look +lines put out by "plain". You probably will have to look for more documentation which explains the technical details of the mentioned boot facilities. .br diff --git a/xorriso/xorriso.h b/xorriso/xorriso.h index 41985235..ae029971 100644 --- a/xorriso/xorriso.h +++ b/xorriso/xorriso.h @@ -1800,6 +1800,10 @@ int Xorriso_option_reassure(struct XorrisO *xorriso, char *mode, int flag); int Xorriso_option_report_about(struct XorrisO *xorriso, char *severity, int flag); +/* Command -report_el_torito */ +int Xorriso_option_report_el_torito(struct XorrisO *xorriso, + char *form, int flag); + /* Command -report_system_area */ int Xorriso_option_report_system_area(struct XorrisO *xorriso, char *form, int flag); diff --git a/xorriso/xorriso.info b/xorriso/xorriso.info index be2765db..9c56b2d4 100644 --- a/xorriso/xorriso.info +++ b/xorriso/xorriso.info @@ -3282,19 +3282,21 @@ File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Comm The ones for new images may be set by command -volume_date. See there for the meaning of the particular timestamps. --report_system_area "plain"|"el_torito"|"help"|"gpt_crc_of:"disk_path +-report_el_torito "plain"|"help" + With parameter *plain* print a report about the information found + in the El Torito boot catalog of the loaded ISO image. + With parameter *help* print a text which explains the meaning of + the lines put out by "plain". + +-report_system_area "plain"|"help"|"gpt_crc_of:"disk_path With parameter *plain* print a report about the information found in the System Area of the loaded ISO image. The report consists of zero to many lines with a header text, a colon, and information text. - With parameter *el_torito* print a report about the information - found in the El Torito boot catalog of the loaded ISO image. The - boot catalog is not actually a part of the system area. But its - data serve a similar purpose. With parameter *help* print a text which explains the meaning of - the lines put out by "plain" and "el_torito". You probably will - have to look for more documentation which explains the technical - details of the mentioned boot facilities. + the lines put out by "plain". You probably will have to look for + more documentation which explains the technical details of the + mentioned boot facilities. With parameter *gpt_crc_of:*disk_path read up to 32 KiB from the disk file with the path given after the colon. Compute the GPT compliant CRC number and print it to the result channel. The @@ -5164,7 +5166,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -read_speed set read speed: Loading. (line 11) * -reassure enables confirmation question: DialogCtl. (line 32) * -report_about controls verbosity: Exception. (line 55) -* -report_system_area show MBR, GPT, and alike: Inquiry. (line 124) +* -report_el_torito shows Boot Catalog: Inquiry. (line 124) +* -report_system_area shows MBR, GPT, and alike: Inquiry. (line 130) * -return_with controls exit value: Exception. (line 39) * -rm deletes files from ISO image: Manip. (line 21) * -rm_r deletes trees from ISO image: Manip. (line 28) @@ -5343,8 +5346,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Image, set volume id, -volid: SetWrite. (line 164) * Image, set volume set id, -volset_id: SetWrite. (line 185) * Image, set volume timestamp, -volume_date: SetWrite. (line 212) +* Image, show Boot Catalog: Inquiry. (line 124) * Image, show id strings, -pvd_info: Inquiry. (line 115) -* Image, show MBR, GPT, and alike, -pvd_info: Inquiry. (line 124) +* Image, show MBR, GPT, and alike, -pvd_info: Inquiry. (line 130) * Input Character Set, _definition: Charset. (line 25) * Insert, enable overwriting, -overwrite: SetInsert. (line 131) * Insert, file exclusion absolute, -not_paths: SetInsert. (line 55) @@ -5550,34 +5554,34 @@ Node: Charset151157 Node: Exception154472 Node: DialogCtl160592 Node: Inquiry163190 -Node: Navigate170612 -Node: Verify178910 -Node: Restore188737 -Node: Emulation197341 -Node: Scripting207729 -Node: Frontend215500 -Node: Examples225107 -Node: ExDevices226285 -Node: ExCreate226951 -Node: ExDialog228236 -Node: ExGrowing229501 -Node: ExModifying230306 -Node: ExBootable230810 -Node: ExCharset231362 -Node: ExPseudo232254 -Node: ExCdrecord233152 -Node: ExMkisofs233469 -Node: ExGrowisofs234809 -Node: ExException235944 -Node: ExTime236398 -Node: ExIncBackup236857 -Node: ExRestore240837 -Node: ExRecovery241770 -Node: Files242340 -Node: Seealso243639 -Node: Bugreport244362 -Node: Legal244943 -Node: CommandIdx245954 -Node: ConceptIdx262762 +Node: Navigate170611 +Node: Verify178909 +Node: Restore188736 +Node: Emulation197340 +Node: Scripting207728 +Node: Frontend215499 +Node: Examples225106 +Node: ExDevices226284 +Node: ExCreate226950 +Node: ExDialog228235 +Node: ExGrowing229500 +Node: ExModifying230305 +Node: ExBootable230809 +Node: ExCharset231361 +Node: ExPseudo232253 +Node: ExCdrecord233151 +Node: ExMkisofs233468 +Node: ExGrowisofs234808 +Node: ExException235943 +Node: ExTime236397 +Node: ExIncBackup236856 +Node: ExRestore240836 +Node: ExRecovery241769 +Node: Files242339 +Node: Seealso243638 +Node: Bugreport244361 +Node: Legal244942 +Node: CommandIdx245953 +Node: ConceptIdx262834  End Tag Table diff --git a/xorriso/xorriso.texi b/xorriso/xorriso.texi index 22e29bc4..8ef1a72f 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.3.7, Apr 23, 2014" +@c man .TH XORRISO 1 "Version 1.3.7, Apr 29, 2014" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -4373,19 +4373,25 @@ The timestamps get not automatically propagated from loaded image to newly written image. The ones for new images may be set by command -volume_date. See there for the meaning of the particular timestamps. @c man .TP -@item -report_system_area "plain"|"el_torito"|"help"|"gpt_crc_of:"disk_path -@kindex -report_system_area show MBR, GPT, and alike +@item -report_el_torito "plain"|"help" +@kindex -report_el_torito shows Boot Catalog +@cindex Image, show Boot Catalog +@* +With parameter @strong{plain} print a report about the information found +in the El Torito boot catalog of the loaded ISO image. +@* +With parameter @strong{help} print a text which explains the meaning of the +lines put out by "plain". +@c man .TP +@item -report_system_area "plain"|"help"|"gpt_crc_of:"disk_path +@kindex -report_system_area shows MBR, GPT, and alike @cindex Image, show MBR, GPT, and alike, -pvd_info With parameter @strong{plain} print a report about the information found in the System Area of the loaded ISO image. The report consists of zero to many lines with a header text, a colon, and information text. @* -With parameter @strong{el_torito} print a report about the information found -in the El Torito boot catalog of the loaded ISO image. The boot catalog is -not actually a part of the system area. But its data serve a similar purpose. -@* With parameter @strong{help} print a text which explains the meaning of the -lines put out by "plain" and "el_torito". You probably will have to look +lines put out by "plain". You probably will have to look for more documentation which explains the technical details of the mentioned boot facilities. @* diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 3374c6c9..6370a897 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2014.04.25.064456" +#define Xorriso_timestamP "2014.04.29.174832"