From e651cb5040b8108ecf54e3ac621e85c4e25cfb11 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Wed, 24 Nov 2021 12:52:53 +0100 Subject: [PATCH] New -toc output line "Overburnt by :" --- xorriso/drive_mgt.c | 14 +++++++++++--- xorriso/text_io.c | 2 ++ xorriso/xorriso.h | 3 +++ xorriso/xorriso_timestamp.h | 2 +- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/xorriso/drive_mgt.c b/xorriso/drive_mgt.c index 0226f745..7546cbaf 100644 --- a/xorriso/drive_mgt.c +++ b/xorriso/drive_mgt.c @@ -1,7 +1,7 @@ /* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images. - Copyright 2007-2020 Thomas Schmitt, + Copyright 2007-2021 Thomas Schmitt, Provided under GPL version 2 or later. @@ -1059,7 +1059,7 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag) char *book_name; int num_data_from_format= 0; char *sno = NULL; - int sno_len, i, is_bdr_pow= 0; + int sno_len, i, is_bdr_pow= 0, overburn_blocks= 0; ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive, "on attempt to print Table Of Content", @@ -1238,7 +1238,11 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag) goto ex; ret= burn_drive_get_start_end_lba(drive, &start_lba, &end_lba, 0); if(s == BURN_DISC_FULL && ret == 1) { - lba= end_lba - 2; + if(lba > end_lba - 2) { + overburn_blocks= lba - end_lba + 2; + } else { + lba= end_lba - 2; + } } else { if(ret == 1 && end_lba - 2 > lba) { sprintf(xorriso->info_text, @@ -1261,6 +1265,10 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag) sprintf(respt, "Media blocks : %d readable , %d %s , %d overall\n", num_data, (int) num_free, num_free_text, lba); Xorriso_toc_line(xorriso, flag & 8); + if(overburn_blocks > 0) { + sprintf(respt, "Overburnt by : %d blocks\n", overburn_blocks); + Xorriso_toc_line(xorriso, flag & 8); + } } if(s == BURN_DISC_BLANK) { diff --git a/xorriso/text_io.c b/xorriso/text_io.c index 3ab8fe89..63fe7eb4 100644 --- a/xorriso/text_io.c +++ b/xorriso/text_io.c @@ -2114,6 +2114,8 @@ int Xorriso_sieve_big(struct XorrisO *xorriso, int flag) 2, 0}, {"Modif. Time :", 3, "Modif. Time : ", "", 1, { 0, -1, -1, -1, -1, -1}, 1, 1}, + {"Overburnt by :", 3, "Overburnt by :", "", 1, { 0, -1, -1, -1, -1, -1}, + 2, 0}, {"PVD address :", 3, "PVD address :", "", 1, { 0, -1, -1, -1, -1, -1}, 1, 0}, {"Preparer Id :", 3, "Preparer Id : ", "", 1, { 0, -1, -1, -1, -1, -1}, diff --git a/xorriso/xorriso.h b/xorriso/xorriso.h index 073ca857..eae325ec 100644 --- a/xorriso/xorriso.h +++ b/xorriso/xorriso.h @@ -908,6 +908,9 @@ int Xorriso_sieve_dispose(struct XorrisO *xorriso, int flag); "Modif. Time :" up to 1 result from -pvd_info argv[0]= YYYYMMDDhhmmsscc (Note: prefix is "Modif. Time : ") + "Overburnt by :" up to 2 results from -toc + argv[0]= number of readable blocks beyond ATIP leadout + (Note: only reported with overburnt CD-RW) "PVD address :" up to 1 result from -pvd_info argv[0]= block address with "s" appended "Preparer Id :" up to 1 result from -pvd_info diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index ff56a5b2..86dd3f60 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2021.09.13.151337" +#define Xorriso_timestamP "2021.11.24.115053"