New command -toc_info_type

This commit is contained in:
Thomas Schmitt 2024-06-28 16:42:28 +02:00
parent 2306175432
commit 7f1abc4174
14 changed files with 304 additions and 89 deletions

View File

@ -3,7 +3,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images. /* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2023 Thomas Schmitt, <scdbackup@gmx.net> Copyright 2007-2024 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
@ -496,6 +496,9 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->info_text[0]= 0; m->info_text[0]= 0;
m->toc_info_type= 1;
m->toc_time_form= 1;
/* Here begin actions which might fail */ /* Here begin actions which might fail */

View File

@ -1085,6 +1085,14 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
off_t lba= 0, nwa= -1, track_size, session_size, first_track_start= 0; off_t lba= 0, nwa= -1, track_size, session_size, first_track_start= 0;
off_t num_session_data, num_session_other, num_data= 0, other_data= 0; off_t num_session_data, num_session_other, num_data= 0, other_data= 0;
off_t emul_lba, end_lba, image_blocks, overburn_blocks= 0; off_t emul_lba, end_lba, image_blocks, overburn_blocks= 0;
int info_type;
static char *info_type_name[]= {"", "Volume Id", "", "Creation Time",
"Modification Time"};
static int max_info_type= 4;
info_type= xorriso->toc_info_type;
if(info_type < 1 || info_type > max_info_type)
info_type= 1;
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive, ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
"on attempt to print Table Of Content", "on attempt to print Table Of Content",
@ -1343,7 +1351,7 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
"Idx", "sbsector", "Size"); "Idx", "sbsector", "Size");
else else
sprintf(respt, "TOC layout : %3s , %9s , %10s , %s\n", sprintf(respt, "TOC layout : %3s , %9s , %10s , %s\n",
"Idx", "sbsector", "Size", "Volume Id"); "Idx", "sbsector", "Size", info_type_name[info_type]);
if(!(flag&1)) if(!(flag&1))
Xorriso_toc_line(xorriso, flag & 8); Xorriso_toc_line(xorriso, flag & 8);
@ -1372,8 +1380,12 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
if(flag & 4) { if(flag & 4) {
ret= 0; ret= 0;
typetext= "Session "; typetext= "Session ";
} else } else {
ret= isoburn_read_iso_head_v2(drive, 0, &image_blocks, volume_id, 1); ret= isoburn_read_iso_head_v2(drive, 0, &image_blocks, volume_id,
info_type);
if(ret > 0 && (info_type == 3 || info_type == 4))
Untimezone_ecma119_17byte(volume_id, (xorriso->toc_time_form & 1) | 2);
}
if(ret>0) { if(ret>0) {
sprintf(respt, "ISO session : %3d , %9d , %9.fs , %s\n", sprintf(respt, "ISO session : %3d , %9d , %9.fs , %s\n",
1, 0, (double) image_blocks, volume_id); 1, 0, (double) image_blocks, volume_id);
@ -1444,9 +1456,13 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
} else { } else {
ret= isoburn_toc_track_get_emul_v2(tracks[track_no], &emul_lba, ret= isoburn_toc_track_get_emul_v2(tracks[track_no], &emul_lba,
&image_blocks, volume_id, 0); &image_blocks, volume_id, 0);
if(ret <= 0) if(ret <= 0 || info_type != 1) {
ret= isoburn_read_iso_head_v2(drive, lba, &image_blocks, volume_id, ret= isoburn_read_iso_head_v2(drive, lba, &image_blocks, volume_id,
1); info_type);
if(ret > 0 && (info_type == 3 || info_type == 4))
Untimezone_ecma119_17byte(volume_id,
(xorriso->toc_time_form & 1) | 2);
}
if(image_blocks > track_size) { if(image_blocks > track_size) {
sprintf(xorriso->info_text, sprintf(xorriso->info_text,
"Session %d bears ISO image size %.fs larger than track size %.fs", "Session %d bears ISO image size %.fs larger than track size %.fs",

View File

@ -325,8 +325,14 @@ int Xorriso_pvd_info(struct XorrisO *xorriso, int flag)
Xorriso_result(xorriso,0); Xorriso_result(xorriso,0);
ret= iso_image_get_pvd_times(image, &crt, &mdt, &ext, &eft); ret= iso_image_get_pvd_times(image, &crt, &mdt, &ext, &eft);
if(ret != ISO_SUCCESS) if(ret != ISO_SUCCESS) {
crt= mdt= ext= eft= " "; /* Need 17 bytes. Last byte 0. */ crt= mdt= ext= eft= " "; /* Need 17 bytes. Last byte 0. */
} else {
Untimezone_ecma119_17byte(crt, 0);
Untimezone_ecma119_17byte(mdt, 0);
Untimezone_ecma119_17byte(ext, 0);
Untimezone_ecma119_17byte(eft, 0);
}
Xorriso_report_pvd_time(xorriso, "Creation Time:", crt, 0); Xorriso_report_pvd_time(xorriso, "Creation Time:", crt, 0);
Xorriso_report_pvd_time(xorriso, "Modif. Time :", mdt, 0); Xorriso_report_pvd_time(xorriso, "Modif. Time :", mdt, 0);
Xorriso_report_pvd_time(xorriso, "Expir. Time :", ext, 0); Xorriso_report_pvd_time(xorriso, "Expir. Time :", ext, 0);

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images. /* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2020 Thomas Schmitt, <scdbackup@gmx.net> Copyright 2007-2024 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
@ -585,7 +585,7 @@ done:;
} }
time_t Decode_timestring(char *code, time_t *date, int flag) int Decode_timestring(char *code, time_t *date, int flag)
{ {
char scale_chr; char scale_chr;
double value,seconds; double value,seconds;
@ -643,8 +643,8 @@ time_t Decode_timestring(char *code, time_t *date, int flag)
seconds_valid= 1; seconds_valid= 1;
goto completed; goto completed;
} else if((ret= Decode_ecma119_format(&result_tm, code, 0)) > 0) { } else if((ret= Decode_ecma119_format(&result_tm, code, 0)) > 0) {
/* YYYYMMDDhhmmsscc[UTC] */ /* YYYYMMDDhhmmsscc[LOC] */
/* 2010040711405800UTC */ /* 2010040711405800LOC */
seconds= mktime(&result_tm); seconds= mktime(&result_tm);
if(ret == 1) { if(ret == 1) {
@ -672,6 +672,88 @@ completed:;
} }
int Decode_ecma119_17byte(time_t *seconds, char *code, int flag)
/* YYYYMMDDhhmmssccN (N = 15 minutes Offset from GMT: -48 West to +52 east) */
{
int ret;
char digits[17];
struct tm erg;
*seconds= 0;
strncpy(digits, code, 16);
digits[16]= 0;
ret= Decode_ecma119_format(&erg, digits, 0);
if(ret <= 0)
return(ret);
*seconds= mktime(&erg);
*seconds-= (int) code[16] * 60 * 15;
/* Convert from local time to GMT */
#ifdef HAVE_TM_GMTOFF
*seconds+= erg.tm_gmtoff;
#else
if(erg.tm_isdst < 0)
erg.tm_isdst = 0;
#ifndef Libburnia_timezonE
#define Libburnia_timezonE timezone
#endif
*seconds-= Libburnia_timezonE - erg.tm_isdst * 3600;
#endif
return(1);
}
int Encode_ecma119_17byte(time_t seconds, char *centi_seconds,
char *code, int flag)
{
struct tm *gmt;
gmt= gmtime(&seconds);
if(gmt == NULL)
return(0);
sprintf(code, "%4.4d", 1900 + gmt->tm_year);
sprintf(code + 4, "%2.2d", gmt->tm_mon + 1);
sprintf(code + 6, "%2.2d", gmt->tm_mday);
sprintf(code + 8, "%2.2d", gmt->tm_hour);
sprintf(code + 10, "%2.2d", gmt->tm_min);
sprintf(code + 12, "%2.2d", gmt->tm_sec);
strncpy(code + 14, centi_seconds, 2);
code[16]= code[17]= 0;
return(1);
}
/* flag: bit0= format to xorriso timestamp in local time
bit1= truncate centiseconds (with !bit0)
*/
int Untimezone_ecma119_17byte(char *code, int flag)
{
int ret;
time_t seconds;
char new_code[18];
if(code[16] == 0 && !(flag & 1))
return(1);
ret= Decode_ecma119_17byte(&seconds, code, 0);
if(ret <= 0)
return(ret);
if(flag & 1) {
/* xorriso timestamp format in local time */
if(Ftimetxt(seconds, new_code, 1 | 2) == NULL)
return(0);
} else {
/* ECMA-119 17 byte format in GMT */
ret= Encode_ecma119_17byte(seconds, flag & 2 ? "00" : code + 14, new_code,
0);
if(ret <= 0)
return(ret);
}
strcpy(code, new_code);
return(1);
}
/* @param flag bit0=with year and seconds /* @param flag bit0=with year and seconds
bit1-3= form bit1-3= form
0= ls -l format 0= ls -l format

View File

@ -54,10 +54,17 @@ double Scanf_io_size(char *text, int flag);
*/ */
int Compare_text_lines(char *text1, char *text2, int *diff_count, int flag); int Compare_text_lines(char *text1, char *text2, int *diff_count, int flag);
time_t Decode_timestring(char *code, time_t *date, int flag); int Decode_timestring(char *code, time_t *date, int flag);
int Decode_ecma119_format(struct tm *erg, char *text, int flag); int Decode_ecma119_format(struct tm *erg, char *text, int flag);
int Decode_ecma119_17byte(time_t *seconds, char *text, int flag);
int Untimezone_ecma119_17byte(char *code, int flag);
int Encode_ecma119_17byte(time_t seconds, char *centi_seconds,
char *code, int flag);
int Wait_for_input(int fd, int microsec, int flag); int Wait_for_input(int fd, int microsec, int flag);
int Fileliste__target_source_limit(char *line, char sep, char **limit_pt, int Fileliste__target_source_limit(char *line, char sep, char **limit_pt,

View File

@ -1691,6 +1691,32 @@ int Xorriso_option_toc(struct XorrisO *xorriso, int flag)
} }
/* Command -toc_info_type */
int Xorriso_option_toc_info_type(struct XorrisO *xorriso, char *mode, int flag)
{
if(strcmp(mode, "volid") == 0 || mode[0] == 0) {
xorriso->toc_info_type= 1;
} else if(strcmp(mode, "creation_time") == 0 ||
strcmp(mode, "ctime") == 0 ||
strcmp(mode, "creation_time_gmt") == 0 ||
strcmp(mode, "ctime_gmt") == 0) {
xorriso->toc_info_type= 3;
xorriso->toc_time_form= (strstr(mode, "_gmt") == NULL);
} else if(strcmp(mode, "modification_time") == 0 ||
strcmp(mode, "mtime") == 0 ||
strcmp(mode, "modification_time_gmt") == 0 ||
strcmp(mode, "mtime_gmt") == 0) {
xorriso->toc_info_type= 4;
xorriso->toc_time_form= (strstr(mode, "_gmt") == NULL);
} else {
sprintf(xorriso->info_text, "-toc_info_type: unknown type '%s'", mode);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
return(1);
}
/* Option -toc_of */ /* Option -toc_of */
int Xorriso_option_toc_of(struct XorrisO *xorriso, char *which, int flag) int Xorriso_option_toc_of(struct XorrisO *xorriso, char *which, int flag)
{ {

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images. /* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2022 Thomas Schmitt, <scdbackup@gmx.net> Copyright 2007-2024 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
@ -559,7 +559,8 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
"session_log","setfattr_list","setfattr_listi", "session_log","setfattr_list","setfattr_listi",
"sh_style_result","signal_handling","sleep", "sh_style_result","signal_handling","sleep",
"speed","split_size","status","status_history_max", "speed","split_size","status","status_history_max",
"stdio_sync","stream_recording","system_id","temp_mem_limit","toc_of", "stdio_sync","stream_recording","system_id","temp_mem_limit",
"toc_info_type", "toc_of",
"uid","unregister_filter","use_immed_bit","use_readline", "uid","unregister_filter","use_immed_bit","use_readline",
"volid","volset_id", "volid","volset_id",
"write_type","xattr","zisofs", "write_type","xattr","zisofs",
@ -709,7 +710,7 @@ int Xorriso_cmd_sorting_rank(struct XorrisO *xorriso,
"dev", "indev", "outdev", "dev", "indev", "outdev",
"* Drive and media related inquiry actions (2):", "* Drive and media related inquiry actions (2):",
"list_profiles", "list_formats", "list_speeds", "list_profiles", "list_formats", "list_speeds", "toc_info_type",
"toc", "toc_of", "pvd_info", "report_system_area", "report_el_torito", "toc", "toc_of", "pvd_info", "report_system_area", "report_el_torito",
"assess_indev_features", "assess_indev_features",
@ -1962,6 +1963,10 @@ if (0) {
} else if(strcmp(cmd,"toc")==0) { } else if(strcmp(cmd,"toc")==0) {
Xorriso_option_toc(xorriso, 0); Xorriso_option_toc(xorriso, 0);
} else if(strcmp(cmd,"toc_info_type")==0) {
(*idx)++;
Xorriso_option_toc_info_type(xorriso, arg1, 0);
} else if(strcmp(cmd,"toc_of")==0) { } else if(strcmp(cmd,"toc_of")==0) {
(*idx)++; (*idx)++;
Xorriso_option_toc_of(xorriso, arg1, 0); Xorriso_option_toc_of(xorriso, arg1, 0);
@ -2615,13 +2620,13 @@ ex:;
*/ */
int Xorriso_source_date_epoch(struct XorrisO *xorriso, int flag) int Xorriso_source_date_epoch(struct XorrisO *xorriso, int flag)
{ {
int ret;
/* num_text must be able to take the sprintf output of "%.f". /* num_text must be able to take the sprintf output of "%.f".
num_text + 12 must be able to take "%d" with a 64 bit int. num_text + 12 must be able to take "%d" with a 64 bit int.
*/ */
char *sec_text, num_text[40]; char *sec_text, num_text[40];
double dsec= -1.0; double dsec= -1.0;
time_t tsec; time_t tsec;
struct tm *gmt;
sec_text= getenv("SOURCE_DATE_EPOCH"); sec_text= getenv("SOURCE_DATE_EPOCH");
if(sec_text == NULL) if(sec_text == NULL)
@ -2641,17 +2646,10 @@ malformed:;
0, "HINT", 0); 0, "HINT", 0);
return(0); return(0);
} }
gmt= gmtime(&tsec);
if(gmt == NULL)
goto malformed;
sprintf(num_text, "%4.4d", 1900 + gmt->tm_year); ret= Encode_ecma119_17byte(tsec, "00", num_text, 0);
sprintf(num_text + 4, "%2.2d", gmt->tm_mon + 1); if(ret <= 0)
sprintf(num_text + 6, "%2.2d", gmt->tm_mday); goto malformed;
sprintf(num_text + 8, "%2.2d", gmt->tm_hour);
sprintf(num_text + 10, "%2.2d", gmt->tm_min);
sprintf(num_text + 12, "%2.2d", gmt->tm_sec);
strcpy(num_text + 14, "00");
strcpy(xorriso->vol_uuid, num_text); strcpy(xorriso->vol_uuid, num_text);
xorriso->gpt_guid_mode= 2; /* Disk GUID from vol_uuid */ xorriso->gpt_guid_mode= 2; /* Disk GUID from vol_uuid */
strcpy(xorriso->all_file_dates, "set_to_mtime"); strcpy(xorriso->all_file_dates, "set_to_mtime");

View File

@ -3018,6 +3018,14 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
if(!(is_default && no_defaults)) if(!(is_default && no_defaults))
Xorriso_status_result(xorriso, filter, fp, flag & 2); Xorriso_status_result(xorriso, filter, fp, flag & 2);
is_default= (xorriso->toc_info_type == 1);
sprintf(line, "-toc_info_type %s%s\n",
xorriso->toc_info_type == 3 ? "creation_time" :
xorriso->toc_info_type == 4 ? "modification_time" : "volid",
xorriso->toc_time_form == 0 ? "_gmt" : "");
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso, filter, fp, flag & 2);
is_default= (xorriso->mount_opts_flag == 0); is_default= (xorriso->mount_opts_flag == 0);
sprintf(line,"-mount_opts %s\n", sprintf(line,"-mount_opts %s\n",
xorriso->mount_opts_flag & 1 ? "shared" : "exclusive"); xorriso->mount_opts_flag & 1 ? "shared" : "exclusive");

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.7, May 12, 2024" .TH XORRISO 1 "Version 1.5.7, Jun 28, 2024"
.\" 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:
@ -4573,6 +4573,20 @@ summary of drive state and medium content is printed.
As further difference to \-toc, this command does not emit FAILURE events As further difference to \-toc, this command does not emit FAILURE events
if the desired drive is not acquired. if the desired drive is not acquired.
.TP .TP
\fB\-toc_info_type\fR typetext
Choose which information to show in the rightmost column of \-toc and \-toc_of.
.br
Type "volid" is the default. It shows the Volume Ids of the listed ISO
sessions.
.br
Type "creation_time" or "ctime" chooses the Creation Times.
.br
Type "modification_time" or "mtime" chooses the Modification Times.
.br
Appending "_gmt" to a time type text causes the time information
to be shown in ECMA\-119 format YYYYMMDDhhmmsscc in timezone GMT. Else it is
shown as timestamps YYYY.MM.DD.hhmmss in the local timezone of the system.
.TP
\fB\-assess_indev_features\fR "plain"|"cmd"|"as_mkisofs"|"replay" \fB\-assess_indev_features\fR "plain"|"cmd"|"as_mkisofs"|"replay"
Inspect the filesystem on \-indev for the presence of Rock Ridge, Joliet, or Inspect the filesystem on \-indev for the presence of Rock Ridge, Joliet, or
ISO 9660:1999, and for traces of other write options which seem to have been ISO 9660:1999, and for traces of other write options which seem to have been
@ -4690,8 +4704,10 @@ This depends on medium type, number of recorded sessions, and drive habits.
Print various ID strings and timestamps which can be found in loaded ISO Print various ID strings and timestamps which can be found in loaded ISO
images. Some of the IDs may be changed by commands like \-volid or \-publisher. images. Some of the IDs may be changed by commands like \-volid or \-publisher.
For these IDs \-pvd_info reports what would be written with the next \-commit. For these IDs \-pvd_info reports what would be written with the next \-commit.
The timestamps get not automatically propagated from loaded image to newly .br
written image. The ones for new images may be set by command \-volume_date. The timestamps get shown in ECMA\-119 format YYYYMMDDhhmmsscc and timezone GMT.
They do not get 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. See there for the meaning of the particular timestamps.
.TP .TP
\fB\-report_el_torito\fR mode \fB\-report_el_torito\fR mode

View File

@ -2,7 +2,7 @@
/* xorriso - libisoburn higher level API which creates, loads, manipulates /* xorriso - libisoburn higher level API which creates, loads, manipulates
and burns ISO 9660 filesystem images. and burns ISO 9660 filesystem images.
Copyright 2007-2023 Thomas Schmitt, <scdbackup@gmx.net> Copyright 2007-2024 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
@ -1216,7 +1216,7 @@ int Xorriso_lst_destroy_all(struct Xorriso_lsT **lstring, int flag);
Xorriso_eval_problem_status() Xorriso_eval_problem_status()
One should follow its eventual advice to abort. One should follow its eventual advice to abort.
Commands with a varying number of arguments get then passed like Commands with a varying number of arguments get them passed like
Xorriso_interpreter(). E.g.: Xorriso_interpreter(). E.g.:
int Xorriso_option_add(struct XorrisO *xorriso, int argc, char **argv, int Xorriso_option_add(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag); int *idx, int flag);
@ -2145,6 +2145,11 @@ int Xorriso_option_temp_mem_limit(struct XorrisO *xorriso, char *size,
/* @since 0.1.0 */ /* @since 0.1.0 */
int Xorriso_option_toc(struct XorrisO *xorriso, int flag); int Xorriso_option_toc(struct XorrisO *xorriso, int flag);
/* Command -toc_info_type */
/* @since 1.5.8 */
int Xorriso_option_toc_info_type(struct XorrisO *xorriso, char *mode,
int flag);
/* Command -toc_of */ /* Command -toc_of */
/* @since 1.2.6 */ /* @since 1.2.6 */
int Xorriso_option_toc_of(struct XorrisO *xorriso, char *which, int flag); int Xorriso_option_toc_of(struct XorrisO *xorriso, char *which, int flag);

View File

@ -3844,6 +3844,18 @@ File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Comm
short summary of drive state and medium content is printed. short summary of drive state and medium content is printed.
As further difference to -toc, this command does not emit FAILURE As further difference to -toc, this command does not emit FAILURE
events if the desired drive is not acquired. events if the desired drive is not acquired.
-toc_info_type typetext
Choose which information to show in the rightmost column of -toc
and -toc_of.
Type "volid" is the default. It shows the Volume Ids of the listed
ISO sessions.
Type "creation_time" or "ctime" chooses the Creation Times.
Type "modification_time" or "mtime" chooses the Modification Times.
Appending "_gmt" to a time type text causes the time information to
be shown in ECMA-119 format YYYYMMDDhhmmsscc in timezone GMT. Else
it is shown as timestamps YYYY.MM.DD.hhmmss in the local timezone
of the system.
-assess_indev_features "plain"|"cmd"|"as_mkisofs"|"replay" -assess_indev_features "plain"|"cmd"|"as_mkisofs"|"replay"
Inspect the filesystem on -indev for the presence of Rock Ridge, Inspect the filesystem on -indev for the presence of Rock Ridge,
Joliet, or ISO 9660:1999, and for traces of other write options Joliet, or ISO 9660:1999, and for traces of other write options
@ -3941,10 +3953,12 @@ File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Comm
Print various ID strings and timestamps which can be found in Print various ID strings and timestamps which can be found in
loaded ISO images. Some of the IDs may be changed by commands like loaded ISO images. Some of the IDs may be changed by commands like
-volid or -publisher. For these IDs -pvd_info reports what would -volid or -publisher. For these IDs -pvd_info reports what would
be written with the next -commit. The timestamps get not be written with the next -commit.
automatically propagated from loaded image to newly written image. The timestamps get shown in ECMA-119 format YYYYMMDDhhmmsscc and
The ones for new images may be set by command -volume_date. See timezone GMT. They do not get automatically propagated from loaded
there for the meaning of the particular timestamps. 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.
-report_el_torito mode -report_el_torito mode
With mode *plain* print a report about the information found in the With mode *plain* print a report about the information found in the
@ -5765,7 +5779,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -application_use sets application use field: SetWrite. (line 293) * -application_use sets application use field: SetWrite. (line 293)
* -as emulates mkisofs or cdrecord: Emulation. (line 13) * -as emulates mkisofs or cdrecord: Emulation. (line 13)
* -assert_volid rejects undesired images: Loading. (line 105) * -assert_volid rejects undesired images: Loading. (line 105)
* -assess_indev_features shows filesystem features: Inquiry. (line 49) * -assess_indev_features shows filesystem features: Inquiry. (line 61)
* -auto_charset learns character set from image: Loading. (line 117) * -auto_charset learns character set from image: Loading. (line 117)
* -backslash_codes enables backslash conversion: Scripting. (line 71) * -backslash_codes enables backslash conversion: Scripting. (line 71)
* -ban_stdio_write demands real drive: Loading. (line 345) * -ban_stdio_write demands real drive: Loading. (line 345)
@ -5892,8 +5906,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -mkdir creates ISO directory: Insert. (line 188) * -mkdir creates ISO directory: Insert. (line 188)
* -modesty_on_drive keep drive buffer hungry: SetWrite. (line 440) * -modesty_on_drive keep drive buffer hungry: SetWrite. (line 440)
* -mount issues mount command for ISO session: Restore. (line 204) * -mount issues mount command for ISO session: Restore. (line 204)
* -mount_cmd composes mount command line: Inquiry. (line 83) * -mount_cmd composes mount command line: Inquiry. (line 95)
* -mount_cmd controls mount command: Inquiry. (line 99) * -mount_cmd controls mount command: Inquiry. (line 111)
* -msg_op perform operations on program messages: Frontend. (line 27) * -msg_op perform operations on program messages: Frontend. (line 27)
* -mv renames files in ISO image: Manip. (line 37) * -mv renames files in ISO image: Manip. (line 37)
* -mv renames single file in ISO image: Manip. (line 31) * -mv renames single file in ISO image: Manip. (line 31)
@ -5919,12 +5933,12 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -print prints result text line: Scripting. (line 102) * -print prints result text line: Scripting. (line 102)
* -print_info prints message text line: Scripting. (line 104) * -print_info prints message text line: Scripting. (line 104)
* -print_mark prints synchronizing text line: Scripting. (line 106) * -print_mark prints synchronizing text line: Scripting. (line 106)
* -print_size predicts image size: Inquiry. (line 120) * -print_size predicts image size: Inquiry. (line 132)
* -prog sets program name: Frontend. (line 176) * -prog sets program name: Frontend. (line 176)
* -prog_help prints help text: Frontend. (line 178) * -prog_help prints help text: Frontend. (line 178)
* -prompt prompts for enter key: Scripting. (line 110) * -prompt prompts for enter key: Scripting. (line 110)
* -publisher sets publisher id: SetWrite. (line 213) * -publisher sets publisher id: SetWrite. (line 213)
* -pvd_info shows image id strings: Inquiry. (line 142) * -pvd_info shows image id strings: Inquiry. (line 154)
* -pwd tells working directory in ISO: Navigate. (line 19) * -pwd tells working directory in ISO: Navigate. (line 19)
* -pwdx tells working directory on disk: Navigate. (line 21) * -pwdx tells working directory on disk: Navigate. (line 21)
* -quoted_not_list sets exclusions: SetInsert. (line 74) * -quoted_not_list sets exclusions: SetInsert. (line 74)
@ -5935,8 +5949,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -read_speed set read speed: Loading. (line 11) * -read_speed set read speed: Loading. (line 11)
* -reassure enables confirmation question: DialogCtl. (line 29) * -reassure enables confirmation question: DialogCtl. (line 29)
* -report_about controls verbosity: Exception. (line 53) * -report_about controls verbosity: Exception. (line 53)
* -report_el_torito shows Boot Catalog: Inquiry. (line 150) * -report_el_torito shows Boot Catalog: Inquiry. (line 164)
* -report_system_area shows MBR, GPT, and alike: Inquiry. (line 185) * -report_system_area shows MBR, GPT, and alike: Inquiry. (line 199)
* -return_with controls exit value: Exception. (line 38) * -return_with controls exit value: Exception. (line 38)
* -rm deletes files from ISO image: Manip. (line 20) * -rm deletes files from ISO image: Manip. (line 20)
* -rmdir deletes ISO directory: Manip. (line 29) * -rmdir deletes ISO directory: Manip. (line 29)
@ -5951,7 +5965,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -scsi_dev_family choose Linux device file type: AqDrive. (line 95) * -scsi_dev_family choose Linux device file type: AqDrive. (line 95)
* -scsi_log reports SCSI commands: Scripting. (line 143) * -scsi_log reports SCSI commands: Scripting. (line 143)
* -session_log logs written sessions: Scripting. (line 134) * -session_log logs written sessions: Scripting. (line 134)
* -session_string composes session info line: Inquiry. (line 108) * -session_string composes session info line: Inquiry. (line 120)
* -setfacl sets ACL in ISO image: Manip. (line 68) * -setfacl sets ACL in ISO image: Manip. (line 68)
* -setfacl_list sets ACL in ISO image: Manip. (line 94) * -setfacl_list sets ACL in ISO image: Manip. (line 94)
* -setfacl_r sets ACL in ISO image: Manip. (line 92) * -setfacl_r sets ACL in ISO image: Manip. (line 92)
@ -5974,9 +5988,10 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -stdio_sync controls stdio buffer: SetWrite. (line 490) * -stdio_sync controls stdio buffer: SetWrite. (line 490)
* -stream_recording controls defect management: SetWrite. (line 410) * -stream_recording controls defect management: SetWrite. (line 410)
* -system_id sets system id: SetWrite. (line 226) * -system_id sets system id: SetWrite. (line 226)
* -tell_media_space reports free space: Inquiry. (line 132) * -tell_media_space reports free space: Inquiry. (line 144)
* -temp_mem_limit curbs memory consumption: Scripting. (line 96) * -temp_mem_limit curbs memory consumption: Scripting. (line 96)
* -toc shows list of sessions: Inquiry. (line 27) * -toc shows list of sessions: Inquiry. (line 27)
* -toc_info_type shows list of sessions: Inquiry. (line 49)
* -toc_of shows list of sessions: Inquiry. (line 41) * -toc_of shows list of sessions: Inquiry. (line 41)
* -truncate_overwritable activates older session: Writing. (line 167) * -truncate_overwritable activates older session: Writing. (line 167)
* -uid sets global ownership: SetWrite. (line 311) * -uid sets global ownership: SetWrite. (line 311)
@ -6090,7 +6105,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* File names, curb length, -file_name_limit: Loading. (line 275) * File names, curb length, -file_name_limit: Loading. (line 275)
* File names, if Joliet is loaded: Loading. (line 241) * File names, if Joliet is loaded: Loading. (line 241)
* File names, if neither Rock Ridge nor Joliet: Loading. (line 228) * File names, if neither Rock Ridge nor Joliet: Loading. (line 228)
* Filesytem features, show, -assess_indev_features: Inquiry. (line 49) * Filesytem features, show, -assess_indev_features: Inquiry. (line 61)
* Filter, apply to file tree, -set_filter_r: Filter. (line 84) * Filter, apply to file tree, -set_filter_r: Filter. (line 84)
* Filter, apply to file, -set_filter: Filter. (line 58) * Filter, apply to file, -set_filter: Filter. (line 58)
* Filter, ban registration, -close_filter_list: Filter. (line 50) * Filter, ban registration, -close_filter_list: Filter. (line 50)
@ -6132,9 +6147,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Image, set volume id, -volid: SetWrite. (line 189) * Image, set volume id, -volid: SetWrite. (line 189)
* Image, set volume set id, -volset_id: SetWrite. (line 209) * Image, set volume set id, -volset_id: SetWrite. (line 209)
* Image, set volume timestamp, -volume_date: SetWrite. (line 232) * Image, set volume timestamp, -volume_date: SetWrite. (line 232)
* Image, show Boot Catalog: Inquiry. (line 150) * Image, show Boot Catalog: Inquiry. (line 164)
* Image, show id strings, -pvd_info: Inquiry. (line 142) * Image, show id strings, -pvd_info: Inquiry. (line 154)
* Image, show MBR, GPT, and alike, -pvd_info: Inquiry. (line 185) * Image, show MBR, GPT, and alike, -pvd_info: Inquiry. (line 199)
* Image, _definition: Model. (line 9) * Image, _definition: Model. (line 9)
* Input Character Set, _definition: Charset. (line 25) * Input Character Set, _definition: Charset. (line 25)
* Insert, enable overwriting, -overwrite: SetInsert. (line 140) * Insert, enable overwriting, -overwrite: SetInsert. (line 140)
@ -6269,11 +6284,11 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
(line 61) (line 61)
* Rock Ridge, _definition: Extras. (line 6) * Rock Ridge, _definition: Extras. (line 6)
* Session, altered start address, -displacement: Loading. (line 78) * Session, altered start address, -displacement: Loading. (line 78)
* Session, info string, -session_string: Inquiry. (line 108) * Session, info string, -session_string: Inquiry. (line 120)
* Session, issue mount command, -mount: Restore. (line 204) * Session, issue mount command, -mount: Restore. (line 204)
* Session, log when written, -session_log: Scripting. (line 134) * Session, log when written, -session_log: Scripting. (line 134)
* Session, mount command line, -mount_cmd: Inquiry. (line 83) * Session, mount command line, -mount_cmd: Inquiry. (line 95)
* Session, mount parameters, -mount_opts: Inquiry. (line 99) * Session, mount parameters, -mount_opts: Inquiry. (line 111)
* Session, select as input, -load: Loading. (line 54) * Session, select as input, -load: Loading. (line 54)
* Session, _definition: Model. (line 6) * Session, _definition: Model. (line 6)
* Sorting order, for -x, -list_arg_sorting: ArgSort. (line 26) * Sorting order, for -x, -list_arg_sorting: ArgSort. (line 26)
@ -6281,7 +6296,10 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* SUN SPARC boot images, activation: Bootable. (line 517) * SUN SPARC boot images, activation: Bootable. (line 517)
* Symbolic link, create, -lns: Insert. (line 192) * Symbolic link, create, -lns: Insert. (line 192)
* System area, _definition: Bootable. (line 227) * System area, _definition: Bootable. (line 227)
* Table-of-content, choose info to show, -toc_info_type: Inquiry.
(line 49)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 307) * Table-of-content, search sessions, -rom_toc_scan: Loading. (line 307)
* Table-of-content, show parts of, -toc_of: Inquiry. (line 41)
* Table-of-content, show, -toc: Inquiry. (line 27) * Table-of-content, show, -toc: Inquiry. (line 27)
* Timestamps, set in ISO image, -alter_date: Manip. (line 139) * Timestamps, set in ISO image, -alter_date: Manip. (line 139)
* Timestamps, set in ISO image, -alter_date_r: Manip. (line 174) * Timestamps, set in ISO image, -alter_date_r: Manip. (line 174)
@ -6307,12 +6325,12 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Write, enable HFS+, -hfsplus: SetWrite. (line 14) * Write, enable HFS+, -hfsplus: SetWrite. (line 14)
* Write, enable Joliet, -joliet: SetWrite. (line 10) * Write, enable Joliet, -joliet: SetWrite. (line 10)
* Write, fifo size, -fs: SetWrite. (line 500) * Write, fifo size, -fs: SetWrite. (line 500)
* Write, free space, -tell_media_space: Inquiry. (line 132) * Write, free space, -tell_media_space: Inquiry. (line 144)
* Write, log problematic disk files, -errfile_log: Scripting. (line 116) * Write, log problematic disk files, -errfile_log: Scripting. (line 116)
* Write, log written sessions, -session_log: Scripting. (line 134) * Write, log written sessions, -session_log: Scripting. (line 134)
* Write, padding image, -padding: SetWrite. (line 528) * Write, padding image, -padding: SetWrite. (line 528)
* Write, pending ISO image, -commit: Writing. (line 27) * Write, pending ISO image, -commit: Writing. (line 27)
* Write, predict image size, -print_size: Inquiry. (line 120) * Write, predict image size, -print_size: Inquiry. (line 132)
* Write, set speed, -speed: SetWrite. (line 392) * Write, set speed, -speed: SetWrite. (line 392)
* Write, simulation, -dummy: SetWrite. (line 497) * Write, simulation, -dummy: SetWrite. (line 497)
* Write, TAO or SAO/DAO, -write_type: SetWrite. (line 521) * Write, TAO or SAO/DAO, -write_type: SetWrite. (line 521)
@ -6353,35 +6371,35 @@ Node: Charset195309
Node: Exception198638 Node: Exception198638
Node: DialogCtl204767 Node: DialogCtl204767
Node: Inquiry207369 Node: Inquiry207369
Node: Navigate219241 Node: Navigate219902
Node: Verify227948 Node: Verify228609
Node: Restore239097 Node: Restore239758
Node: Emulation251304 Node: Emulation251965
Node: Scripting261760 Node: Scripting262421
Node: Frontend269543 Node: Frontend270204
Node: Examples279169 Node: Examples279830
Node: ExDevices280347 Node: ExDevices281008
Node: ExCreate281008 Node: ExCreate281669
Node: ExDialog282308 Node: ExDialog282969
Node: ExGrowing283579 Node: ExGrowing284240
Node: ExModifying284388 Node: ExModifying285049
Node: ExBootable284898 Node: ExBootable285559
Node: ExCharset285453 Node: ExCharset286114
Node: ExPseudo286349 Node: ExPseudo287010
Node: ExCdrecord287276 Node: ExCdrecord287937
Node: ExMkisofs287596 Node: ExMkisofs288257
Node: ExGrowisofs289493 Node: ExGrowisofs290154
Node: ExException290646 Node: ExException291307
Node: ExTime291104 Node: ExTime291765
Node: ExIncBackup291562 Node: ExIncBackup292223
Node: ExRestore295588 Node: ExRestore296249
Node: ExRecovery296534 Node: ExRecovery297195
Node: Files297106 Node: Files297767
Node: Environ298440 Node: Environ299101
Node: Seealso299188 Node: Seealso299849
Node: Bugreport299905 Node: Bugreport300566
Node: Legal300496 Node: Legal301157
Node: CommandIdx301508 Node: CommandIdx302169
Node: ConceptIdx319406 Node: ConceptIdx320140
 
End Tag Table End Tag Table

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.7, May 12, 2024" @c man .TH XORRISO 1 "Version 1.5.7, Jun 28, 2024"
@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:
@ -5207,6 +5207,7 @@ then both tables-of-content get shown.
@c man .TP @c man .TP
@item -toc_of "in"|"out"|"all"[":short"] @item -toc_of "in"|"out"|"all"[":short"]
@kindex -toc_of shows list of sessions @kindex -toc_of shows list of sessions
@cindex Table-of-content, show parts of, -toc_of
Like command -toc but explicitly choosing which drive's table-of-content Like command -toc but explicitly choosing which drive's table-of-content
to show. "in" shows -indev or -dev, "out" shows -outdev or -dev, to show. "in" shows -indev or -dev, "out" shows -outdev or -dev,
"all" shows the same as -toc. "all" shows the same as -toc.
@ -5217,6 +5218,22 @@ summary of drive state and medium content is printed.
As further difference to -toc, this command does not emit FAILURE events As further difference to -toc, this command does not emit FAILURE events
if the desired drive is not acquired. if the desired drive is not acquired.
@c man .TP @c man .TP
@item -toc_info_type typetext
@kindex -toc_info_type shows list of sessions
@cindex Table-of-content, choose info to show, -toc_info_type
Choose which information to show in the rightmost column of -toc and -toc_of.
@*
Type "volid" is the default. It shows the Volume Ids of the listed ISO
sessions.
@*
Type "creation_time" or "ctime" chooses the Creation Times.
@*
Type "modification_time" or "mtime" chooses the Modification Times.
@*
Appending "_gmt" to a time type text causes the time information
to be shown in ECMA-119 format YYYYMMDDhhmmsscc in timezone GMT. Else it is
shown as timestamps YYYY.MM.DD.hhmmss in the local timezone of the system.
@c man .TP
@item -assess_indev_features "plain"|"cmd"|"as_mkisofs"|"replay" @item -assess_indev_features "plain"|"cmd"|"as_mkisofs"|"replay"
@kindex -assess_indev_features shows filesystem features @kindex -assess_indev_features shows filesystem features
@cindex Filesytem features, show, -assess_indev_features @cindex Filesytem features, show, -assess_indev_features
@ -5348,8 +5365,10 @@ This depends on medium type, number of recorded sessions, and drive habits.
Print various ID strings and timestamps which can be found in loaded ISO Print various ID strings and timestamps which can be found in loaded ISO
images. Some of the IDs may be changed by commands like -volid or -publisher. images. Some of the IDs may be changed by commands like -volid or -publisher.
For these IDs -pvd_info reports what would be written with the next -commit. For these IDs -pvd_info reports what would be written with the next -commit.
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. The timestamps get shown in ECMA-119 format YYYYMMDDhhmmsscc and timezone GMT.
They do not get 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. See there for the meaning of the particular timestamps.
@c man .TP @c man .TP
@item -report_el_torito mode @item -report_el_torito mode

View File

@ -905,10 +905,21 @@ struct XorrisO { /* the global context of xorriso */
int result_page_counter; int result_page_counter;
int result_open_line_len; int result_open_line_len;
/* info (stderr, I:) */ /* info (stderr, I:) */
char info_text[10*SfileadrL]; char info_text[10*SfileadrL];
/* info return mode for isoburn_read_iso_head_v2() with -toc:
1= volume id
3= creation time
4= modification type
*/
int toc_info_type;
/* How to present toc_info_type 2 and 3:
0= in ECMA-119 format YYYYMMDDhhmmsscc rectified to GMT
1= in xorriso format YYY.MM.DD.hhmmss in local time
*/
int toc_time_form;
}; };

View File

@ -1 +1 @@
#define Xorriso_timestamP "2024.06.28.135605" #define Xorriso_timestamP "2024.06.28.144204"