New bit1 with API call Xorriso_change_is_pending() issues a note if return is 0 and indev and outdev point to different drives
This commit is contained in:
parent
0b7e4f934e
commit
ab0bfdb04f
@ -238,6 +238,10 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
|
||||
m->indev_off_adr[0]= 0;
|
||||
m->isofs_st_in= 0;
|
||||
m->volset_change_pending= 0;
|
||||
m->commit_attempts= 0;
|
||||
m->print_size_attempts= 0;
|
||||
m->write_session_counter= 0;
|
||||
m->print_size_counter= 0;
|
||||
m->no_volset_present= 0;
|
||||
m->in_sector_map= NULL;
|
||||
m->check_media_default= NULL;
|
||||
|
@ -995,12 +995,32 @@ int Xorriso_get_volume(struct XorrisO *xorriso, IsoImage **volume,
|
||||
|
||||
|
||||
/* @param flag bit0= do not return 1 on volset_change_pending != 1
|
||||
bit1= issue NOTE if return is 0,
|
||||
indev and outdev point to different drives,
|
||||
and no write run or size run has happened
|
||||
*/
|
||||
int Xorriso_change_is_pending(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if(flag & 1)
|
||||
return(xorriso->volset_change_pending == 1);
|
||||
return(!!xorriso->volset_change_pending);
|
||||
ret= (xorriso->volset_change_pending == 1);
|
||||
else
|
||||
ret= !!xorriso->volset_change_pending;
|
||||
|
||||
if((flag & 2) && xorriso->volset_change_pending == 0 &&
|
||||
xorriso->commit_attempts <= 0 &&
|
||||
xorriso->print_size_attempts <= 0 &&
|
||||
xorriso->write_session_counter <= 0 &&
|
||||
xorriso->print_size_counter <= 0) {
|
||||
if(xorriso->indev[0] != 0 && xorriso->outdev[0] != 0 &&
|
||||
strcmp(xorriso->indev, xorriso->outdev) != 0) {
|
||||
Xorriso_msgs_submit(xorriso, 0,
|
||||
"-indev and -outdev differ. But no pending image modifications.",
|
||||
0, "NOTE", 0);
|
||||
}
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
||||
|
@ -2343,6 +2343,7 @@ int Xorriso_option_commit(struct XorrisO *xorriso, int flag)
|
||||
int ret;
|
||||
char eternal_problem_status_text_mem[80];
|
||||
|
||||
xorriso->commit_attempts++;
|
||||
if(!Xorriso_change_is_pending(xorriso, 0)) {
|
||||
sprintf(xorriso->info_text, "-commit: No image modifications pending");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
|
||||
|
@ -335,6 +335,7 @@ int Xorriso_option_print_size(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
int ret, fd;
|
||||
|
||||
xorriso->print_size_attempts++;
|
||||
if(!Xorriso_change_is_pending(xorriso, 0)) {
|
||||
sprintf(xorriso->info_text,"-print_size: No image modifications pending");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
|
||||
|
@ -1488,6 +1488,8 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
Xorriso_set_image_severities(xorriso, 2);
|
||||
if(flag&1) /* reset queue severity */
|
||||
Xorriso_set_image_severities(xorriso, 0);
|
||||
if(flag & 1)
|
||||
xorriso->print_size_counter++;
|
||||
goto cancel_iso;
|
||||
}
|
||||
|
||||
@ -1571,6 +1573,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
sprintf(xorriso->info_text, "Writing to %s completed successfully.\n\n",
|
||||
Text_shellsafe(xorriso->outdev,sfe,0));
|
||||
Xorriso_info(xorriso, 0);
|
||||
xorriso->write_session_counter++;
|
||||
ret= 1;
|
||||
ex:;
|
||||
xorriso->run_state= 0; /* Indicate that burning has ended */
|
||||
|
@ -214,9 +214,13 @@ int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Inquire whether option -commit would make sense.
|
||||
@param xorriso The context object to inquire.
|
||||
@param flag @since 0.6.6
|
||||
bit0= do not return 1 if -as mkisofs -print-size was
|
||||
@param flag bit0= do not return 1 if -as mkisofs -print-size was
|
||||
performed on the current image.
|
||||
@since 0.6.6
|
||||
bit1= issue NOTE if return is 0,
|
||||
indev and outdev point to different drives,
|
||||
and no write run has happened
|
||||
@since 1.5.8
|
||||
@return 0= -commit would have nothing to do
|
||||
1= a new image session would emerge at -commit
|
||||
*/
|
||||
|
@ -357,6 +357,11 @@ struct XorrisO { /* the global context of xorriso */
|
||||
3= change pending, but the attempt to write it
|
||||
failed
|
||||
*/
|
||||
int commit_attempts; /* For Xorriso_change_is_pending bit1 */
|
||||
int print_size_attempts; /* For Xorriso_change_is_pending bit1 */
|
||||
int write_session_counter; /* For Xorriso_change_is_pending bit1 */
|
||||
int print_size_counter; /* For Xorriso_change_is_pending bit1 */
|
||||
|
||||
int no_volset_present; /* set to 1 on first failure */
|
||||
|
||||
struct CheckmediajoB *check_media_default;
|
||||
|
@ -1 +1 @@
|
||||
#define Xorriso_timestamP "2023.08.07.132608"
|
||||
#define Xorriso_timestamP "2023.08.08.114313"
|
||||
|
Loading…
Reference in New Issue
Block a user