Bug fix: -toc reported wrong track LBA with overwritable media with unrecognized content (pseudo-closed)
This commit is contained in:
parent
1a39dc6903
commit
3afa1d5191
@ -1,7 +1,7 @@
|
||||
|
||||
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
|
||||
|
||||
Copyright 2007-2021 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
Copyright 2007-2023 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
|
||||
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);
|
||||
|
@ -1 +1 @@
|
||||
#define Xorriso_timestamP "2022.12.28.083915"
|
||||
#define Xorriso_timestamP "2023.01.09.144346"
|
||||
|
Loading…
Reference in New Issue
Block a user