diff --git a/xorriso/drive_mgt.c b/xorriso/drive_mgt.c index 7ca2dca8..dc908cb9 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-2021 Thomas Schmitt, + Copyright 2007-2023 Thomas Schmitt, Provided under GPL version 2 or later. @@ -1069,7 +1069,7 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag) struct burn_multi_caps *caps= NULL; struct burn_drive *drive; enum burn_disc_status s; - char mem_text[80], *num_free_text; + char mem_text[80], *num_free_text, *num_data_text; off_t start_byte= 0, num_free= 0, size; unsigned dummy; struct isoburn_toc_disc *disc= NULL; @@ -1281,12 +1281,16 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag) lba= num_blocks; } + if(drive_role == 5) + num_data_text= "occupied"; + else + num_data_text= "readable"; if(drive_role == 4 || is_bdr_pow) num_free_text = "unused"; else num_free_text = "writable"; - sprintf(respt, "Media blocks : %d readable , %d %s , %d overall\n", - num_data, (int) num_free, num_free_text, lba); + sprintf(respt, "Media blocks : %d %s , %d %s , %d overall\n", + num_data, num_data_text, (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); @@ -1341,10 +1345,11 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag) if (disc==NULL) { Xorriso_process_msg_queues(xorriso,0); + nwa= 0; if(drive_role == 5 && s == BURN_DISC_APPENDABLE) { ret= burn_disc_track_lba_nwa(drive, NULL, 0, &lba, &nwa); if(ret != 1) - lba= 0; + nwa= 0; } else { ret= isoburn_get_min_start_byte(drive, &start_byte, 0); nwa= start_byte / 2048; @@ -1381,10 +1386,11 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag) } else { num_data_from_format= 1; } - nwa= lba + size / 2048; - num_data= nwa - lba; + num_data= size / 2048; + if(num_data == 0 && drive_role == 5 && s == BURN_DISC_APPENDABLE) + num_data= nwa; sprintf(respt, "%13s: %3d , %9d , %9ds , \n", - typetext, 1, lba, num_data); + typetext, 1, 0, num_data); } if(!(flag&1)) Xorriso_toc_line(xorriso, flag & 8); diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index ce1f6332..034c0b7c 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2022.12.28.083915" +#define Xorriso_timestamP "2023.01.09.144346"