New option -commit_eject
This commit is contained in:
parent
05fabf5149
commit
91c092b428
@ -423,8 +423,17 @@ int Xorriso_give_up_drive(struct XorrisO *xorriso, int flag)
|
|||||||
int in_is_out_too, ret;
|
int in_is_out_too, ret;
|
||||||
struct burn_drive_info *dinfo;
|
struct burn_drive_info *dinfo;
|
||||||
struct burn_drive *drive;
|
struct burn_drive *drive;
|
||||||
|
char sfe[5*SfileadrL];
|
||||||
|
|
||||||
in_is_out_too= (xorriso->in_drive_handle == xorriso->out_drive_handle);
|
in_is_out_too= (xorriso->in_drive_handle == xorriso->out_drive_handle);
|
||||||
|
if((flag&4) && in_is_out_too && (flag&(1|2))) {
|
||||||
|
if((flag&3)!=3) {
|
||||||
|
sprintf(xorriso->info_text,"Giving up for -eject whole -dev %s",
|
||||||
|
Text_shellsafe(xorriso->indev, sfe, 0));
|
||||||
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
||||||
|
}
|
||||||
|
flag|= 3; /* give up in/out drive to eject it */
|
||||||
|
}
|
||||||
|
|
||||||
if((flag&1) && xorriso->in_drive_handle != NULL) {
|
if((flag&1) && xorriso->in_drive_handle != NULL) {
|
||||||
Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
||||||
@ -449,7 +458,7 @@ int Xorriso_give_up_drive(struct XorrisO *xorriso, int flag)
|
|||||||
}
|
}
|
||||||
if((flag&2) && xorriso->out_drive_handle!=NULL) {
|
if((flag&2) && xorriso->out_drive_handle!=NULL) {
|
||||||
Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
||||||
"on attempt to give drive up", 2);
|
"on attempt to give up drive", 2);
|
||||||
if(!in_is_out_too) {
|
if(!in_is_out_too) {
|
||||||
if(drive!=NULL)
|
if(drive!=NULL)
|
||||||
isoburn_drive_release(drive,!!(flag&4));
|
isoburn_drive_release(drive,!!(flag&4));
|
||||||
@ -660,9 +669,15 @@ int Xorriso_pacifier_loop(struct XorrisO *xorriso, struct burn_drive *drive,
|
|||||||
progress.sector, progress.sectors);
|
progress.sector, progress.sectors);
|
||||||
ret= isoburn_get_fifo_status(drive, &size, &free_bytes, &status_text);
|
ret= isoburn_get_fifo_status(drive, &size, &free_bytes, &status_text);
|
||||||
if(ret>0 )
|
if(ret>0 )
|
||||||
|
sprintf(xorriso->info_text+strlen(xorriso->info_text),
|
||||||
|
" [fifo %s, %2d%% fill, size=%d , free=%d]", status_text,
|
||||||
|
(int) (100.0-100.0*((double) free_bytes)/(double) size),
|
||||||
|
size, free_bytes);
|
||||||
|
/*
|
||||||
sprintf(xorriso->info_text+strlen(xorriso->info_text),
|
sprintf(xorriso->info_text+strlen(xorriso->info_text),
|
||||||
" [fifo %s, %2d%% fill]", status_text,
|
" [fifo %s, %2d%% fill]", status_text,
|
||||||
(int) (100.0-100.0*((double) free_bytes)/(double) size));
|
(int) (100.0-100.0*((double) free_bytes)/(double) size));
|
||||||
|
*/
|
||||||
} else if(drive_status == BURN_DRIVE_CLOSING_SESSION ||
|
} else if(drive_status == BURN_DRIVE_CLOSING_SESSION ||
|
||||||
drive_status == BURN_DRIVE_CLOSING_TRACK)
|
drive_status == BURN_DRIVE_CLOSING_TRACK)
|
||||||
sprintf(xorriso->info_text,
|
sprintf(xorriso->info_text,
|
||||||
|
@ -2,7 +2,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 "January 21, 2008"
|
.TH XORRISO 1 "January 25, 2008"
|
||||||
.\" 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:
|
||||||
@ -725,6 +725,7 @@ are uncommitted manipulations pending.
|
|||||||
So, to perform a final write operation with no new -dev
|
So, to perform a final write operation with no new -dev
|
||||||
and no new loading of image, rather execute option -end.
|
and no new loading of image, rather execute option -end.
|
||||||
To suppress a final write, execute -rollback -end.
|
To suppress a final write, execute -rollback -end.
|
||||||
|
To eject outdev after write without new loading of image, use -commit_eject.
|
||||||
.br
|
.br
|
||||||
|
|
||||||
Writing can last quite a while. It is not unnormal with several
|
Writing can last quite a while. It is not unnormal with several
|
||||||
@ -741,6 +742,11 @@ for such failure is hardly ever in the code of the various
|
|||||||
burn programs but you may well try some of those listed below
|
burn programs but you may well try some of those listed below
|
||||||
under SEE ALSO.
|
under SEE ALSO.
|
||||||
.TP
|
.TP
|
||||||
|
\fB\-commit_eject\fR
|
||||||
|
Like -commit. But when writing has finished it does not make
|
||||||
|
-outdev the new -dev, and it loads no ISO image. It rather ejects
|
||||||
|
-outdev and gives up -indev.
|
||||||
|
.TP
|
||||||
\fB\-eject\fR "in"|"out"|"all"
|
\fB\-eject\fR "in"|"out"|"all"
|
||||||
Eject the media in -indev, resp. -outdev, resp. both drives.
|
Eject the media in -indev, resp. -outdev, resp. both drives.
|
||||||
Note: It is not possible yet to effectively eject disk files.
|
Note: It is not possible yet to effectively eject disk files.
|
||||||
|
@ -6513,6 +6513,22 @@ int Xorriso_option_commit(struct XorrisO *xorriso, int flag)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Option -commit_eject */
|
||||||
|
int Xorriso_option_commit_eject(struct XorrisO *xorriso, int flag)
|
||||||
|
{
|
||||||
|
int ret, eret;
|
||||||
|
|
||||||
|
ret= Xorriso_option_commit(xorriso, 1);
|
||||||
|
if(ret<=0)
|
||||||
|
return(ret);
|
||||||
|
eret= Xorriso_option_eject(xorriso, "out", 0);
|
||||||
|
ret= Xorriso_option_dev(xorriso, "", 1);
|
||||||
|
if(eret<ret)
|
||||||
|
return(eret);
|
||||||
|
return(ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Option -cpr alias -cpri */
|
/* Option -cpr alias -cpri */
|
||||||
int Xorriso_option_cpri(struct XorrisO *xorriso, int argc, char **argv,
|
int Xorriso_option_cpri(struct XorrisO *xorriso, int argc, char **argv,
|
||||||
int *idx, int flag)
|
int *idx, int flag)
|
||||||
@ -6740,7 +6756,7 @@ int Xorriso_option_eject(struct XorrisO *xorriso, char *which, int flag)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Option -end */
|
/* Options -end , and -rollback_end */
|
||||||
/* @param flag bit0= discard pending changes */
|
/* @param flag bit0= discard pending changes */
|
||||||
int Xorriso_option_end(struct XorrisO *xorriso, int flag)
|
int Xorriso_option_end(struct XorrisO *xorriso, int flag)
|
||||||
{
|
{
|
||||||
@ -7179,6 +7195,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
|
|||||||
" -commit Perform the write operation and then perform -dev outdrive.",
|
" -commit Perform the write operation and then perform -dev outdrive.",
|
||||||
" Hint: To perform a final write operation with no new -dev",
|
" Hint: To perform a final write operation with no new -dev",
|
||||||
" and no new loading of image, execute option -end.",
|
" and no new loading of image, execute option -end.",
|
||||||
|
" -commit_eject Like -commit but rather eject than load image from outdrive.",
|
||||||
|
"",
|
||||||
" -close \"on\"|\"off\"",
|
" -close \"on\"|\"off\"",
|
||||||
" If \"on\" then mark the written media as not appendable.",
|
" If \"on\" then mark the written media as not appendable.",
|
||||||
" -dummy \"on\"|\"off\"",
|
" -dummy \"on\"|\"off\"",
|
||||||
@ -8421,6 +8439,9 @@ next_command:;
|
|||||||
} else if(strcmp(cmd,"commit")==0) {
|
} else if(strcmp(cmd,"commit")==0) {
|
||||||
ret= Xorriso_option_commit(xorriso, 0);
|
ret= Xorriso_option_commit(xorriso, 0);
|
||||||
|
|
||||||
|
} else if(strcmp(cmd,"commit_eject")==0) {
|
||||||
|
ret= Xorriso_option_commit_eject(xorriso, 0);
|
||||||
|
|
||||||
} else if(strcmp(cmd,"cpr")==0 || strcmp(cmd,"cpri")==0) {
|
} else if(strcmp(cmd,"cpr")==0 || strcmp(cmd,"cpri")==0) {
|
||||||
ret= Xorriso_option_cpri(xorriso, argc, argv, idx, 0);
|
ret= Xorriso_option_cpri(xorriso, argc, argv, idx, 0);
|
||||||
|
|
||||||
|
@ -203,6 +203,9 @@ int Xorriso_option_close(struct XorrisO *xorriso, char *mode, int flag);
|
|||||||
/* @param flag bit0= do not aquire outdrive as new indrive */
|
/* @param flag bit0= do not aquire outdrive as new indrive */
|
||||||
int Xorriso_option_commit(struct XorrisO *xorriso, int flag);
|
int Xorriso_option_commit(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
|
/* Option -commit_eject */
|
||||||
|
int Xorriso_option_commit_eject(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
/* Option -cpr alias -cpri */
|
/* Option -cpr alias -cpri */
|
||||||
int Xorriso_option_cpri( struct XorrisO *xorriso, int argc, char **argv,
|
int Xorriso_option_cpri( struct XorrisO *xorriso, int argc, char **argv,
|
||||||
int *idx, int flag);
|
int *idx, int flag);
|
||||||
@ -230,7 +233,7 @@ int Xorriso_option_dummy(struct XorrisO *xorriso, char *mode, int flag);
|
|||||||
/* Option -eject */
|
/* Option -eject */
|
||||||
int Xorriso_option_eject(struct XorrisO *xorriso, char *which, int flag);
|
int Xorriso_option_eject(struct XorrisO *xorriso, char *which, int flag);
|
||||||
|
|
||||||
/* Option -end */
|
/* Options -end , and -rollback_end */
|
||||||
/* @param flag bit0= discard pending changes */
|
/* @param flag bit0= discard pending changes */
|
||||||
int Xorriso_option_end(struct XorrisO *xorriso, int flag);
|
int Xorriso_option_end(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Xorriso_timestamP "2008.01.25.150902"
|
#define Xorriso_timestamP "2008.01.25.175353"
|
||||||
|
Loading…
Reference in New Issue
Block a user