New option -close_damaged
This commit is contained in:
parent
a06b171f54
commit
4c1b8c0a03
@ -143,6 +143,7 @@ Xorriso_option_chmodi;
|
|||||||
Xorriso_option_chowni;
|
Xorriso_option_chowni;
|
||||||
Xorriso_option_clone;
|
Xorriso_option_clone;
|
||||||
Xorriso_option_close;
|
Xorriso_option_close;
|
||||||
|
Xorriso_option_close_damaged;
|
||||||
Xorriso_option_close_filter_list;
|
Xorriso_option_close_filter_list;
|
||||||
Xorriso_option_commit;
|
Xorriso_option_commit;
|
||||||
Xorriso_option_commit_eject;
|
Xorriso_option_commit_eject;
|
||||||
|
@ -1745,6 +1745,34 @@ int Xorriso_option_close(struct XorrisO *xorriso, char *mode, int flag)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Option -close_damaged */
|
||||||
|
int Xorriso_option_close_damaged(struct XorrisO *xorriso, char *mode, int flag)
|
||||||
|
{
|
||||||
|
int ret, force= 0;
|
||||||
|
|
||||||
|
if(strcmp(mode, "as_needed") == 0 || strcmp(mode, "") == 0)
|
||||||
|
force= 0;
|
||||||
|
else if(strcmp(mode, "force") == 0)
|
||||||
|
force= 1;
|
||||||
|
else {
|
||||||
|
sprintf(xorriso->info_text, "-close_damaged: unknown mode ");
|
||||||
|
Text_shellsafe(mode, xorriso->info_text, 1);
|
||||||
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
ret= Xorriso_reassure(xorriso, "-close_damaged",
|
||||||
|
"Close damaged track and session", 0);
|
||||||
|
if(ret <= 0)
|
||||||
|
{ret= 2; goto ex;}
|
||||||
|
ret= Xorriso_close_damaged(xorriso, force);
|
||||||
|
if(ret <= 0)
|
||||||
|
goto ex;
|
||||||
|
ret= 1;
|
||||||
|
ex:;
|
||||||
|
return(ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Option -close_filter_list */
|
/* Option -close_filter_list */
|
||||||
int Xorriso_option_close_filter_list(struct XorrisO *xorriso, int flag)
|
int Xorriso_option_close_filter_list(struct XorrisO *xorriso, int flag)
|
||||||
{
|
{
|
||||||
|
@ -1449,6 +1449,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
|
|||||||
" Classify stdio drives by effective access permissions.",
|
" Classify stdio drives by effective access permissions.",
|
||||||
" -blank \"fast\"|\"all\"|\"deformat\"|\"deformat_quickest\"",
|
" -blank \"fast\"|\"all\"|\"deformat\"|\"deformat_quickest\"",
|
||||||
" Blank media resp. invalidate ISO image on media.",
|
" Blank media resp. invalidate ISO image on media.",
|
||||||
|
" -close_damaged \"as_needed\"|\"force\"",
|
||||||
|
" Close track and session of damaged media.",
|
||||||
" -format \"as_needed\"|\"full\"|\"fast\"|\"by_index_#\"|\"by_size_#\"",
|
" -format \"as_needed\"|\"full\"|\"fast\"|\"by_index_#\"|\"by_size_#\"",
|
||||||
" Format BD-RE, BD-R, DVD-RAM, DVD-RW, DVD+RW.",
|
" Format BD-RE, BD-R, DVD-RAM, DVD-RW, DVD+RW.",
|
||||||
" -volid volume_id",
|
" -volid volume_id",
|
||||||
|
@ -458,7 +458,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
|
|||||||
"abort_on","acl","add_plainly","application_id","auto_charset",
|
"abort_on","acl","add_plainly","application_id","auto_charset",
|
||||||
"abstract_file",
|
"abstract_file",
|
||||||
"backslash_codes","blank","biblio_file",
|
"backslash_codes","blank","biblio_file",
|
||||||
"calm_drive","cd","cdi","cdx","charset","close",
|
"calm_drive","cd","cdi","cdx","charset","close","close_damaged",
|
||||||
"commit_eject","compliance","copyright_file",
|
"commit_eject","compliance","copyright_file",
|
||||||
"dev","dialog","disk_dev_ino","disk_pattern","displacement",
|
"dev","dialog","disk_dev_ino","disk_pattern","displacement",
|
||||||
"dummy","dvd_obs","early_stdio_test", "eject",
|
"dummy","dvd_obs","early_stdio_test", "eject",
|
||||||
@ -766,6 +766,10 @@ next_command:;
|
|||||||
(*idx)++;
|
(*idx)++;
|
||||||
ret= Xorriso_option_close(xorriso, arg1, 0);
|
ret= Xorriso_option_close(xorriso, arg1, 0);
|
||||||
|
|
||||||
|
} else if(strcmp(cmd,"close_damaged")==0) {
|
||||||
|
(*idx)++;
|
||||||
|
ret= Xorriso_option_close_damaged(xorriso, arg1, 0);
|
||||||
|
|
||||||
} else if(strcmp(cmd,"close_filter_list")==0) {
|
} else if(strcmp(cmd,"close_filter_list")==0) {
|
||||||
ret= Xorriso_option_close_filter_list(xorriso, 0);
|
ret= Xorriso_option_close_filter_list(xorriso, 0);
|
||||||
|
|
||||||
|
@ -2513,3 +2513,40 @@ ex:
|
|||||||
return(ret);
|
return(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* @param flag bit0=force burn_disc_close_damaged()
|
||||||
|
*/
|
||||||
|
int Xorriso_close_damaged(struct XorrisO *xorriso, int flag)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
struct burn_drive_info *dinfo;
|
||||||
|
struct burn_drive *drive;
|
||||||
|
struct burn_write_opts *burn_options= NULL;
|
||||||
|
|
||||||
|
if(xorriso->volset_change_pending) {
|
||||||
|
sprintf(xorriso->info_text,
|
||||||
|
"Image changes pending. -commit or -rollback first");
|
||||||
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||||
|
ret= 0; goto ex;
|
||||||
|
}
|
||||||
|
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
||||||
|
"on attempt to closed damaged session", 2);
|
||||||
|
if(ret<=0)
|
||||||
|
goto ex;
|
||||||
|
ret= Xorriso_make_write_options(xorriso, drive, &burn_options, 0);
|
||||||
|
if(ret <= 0)
|
||||||
|
goto ex;
|
||||||
|
ret= burn_disc_close_damaged(burn_options, flag & 1);
|
||||||
|
Xorriso_process_msg_queues(xorriso, 0);
|
||||||
|
Xorriso_option_dev(xorriso, "", 3 | 4); /* Give up drives */
|
||||||
|
if(ret <= 0)
|
||||||
|
goto ex;
|
||||||
|
|
||||||
|
ret= 1;
|
||||||
|
ex:;
|
||||||
|
Xorriso_process_msg_queues(xorriso, 0);
|
||||||
|
if(burn_options != NULL)
|
||||||
|
burn_write_opts_free(burn_options);
|
||||||
|
return(ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -9,7 +9,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 "Version 1.0.9, May 29, 2011"
|
.TH XORRISO 1 "Version 1.0.9, Jun 01, 2011"
|
||||||
.\" 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:
|
||||||
@ -2049,6 +2049,22 @@ MMC format codes are manifold. Most important are:
|
|||||||
.br
|
.br
|
||||||
Smaller format size with DVD\-RAM, BD\-RE, or BD\-R means more reserve space.
|
Smaller format size with DVD\-RAM, BD\-RE, or BD\-R means more reserve space.
|
||||||
.TP
|
.TP
|
||||||
|
\fB\-close_damaged\fR "as_needed"|"force"
|
||||||
|
Try to close the upcomming track and session if the drive reported the media
|
||||||
|
as damaged. This may apply to CD\-R, CD\-RW, DVD\-R, DVD\-RW, DVD+R, DVD+R DL,
|
||||||
|
or BD\-R media. It is indicated by warning messages when the drive gets
|
||||||
|
aquired, and by a remark "but next track is damaged" with the line
|
||||||
|
"Media status :" of command \-toc.
|
||||||
|
.br
|
||||||
|
The setting of option \-close determines whether the media stays appendable.
|
||||||
|
.br
|
||||||
|
Mode "as_needed" gracefully refuses on media which are not reported as
|
||||||
|
damaged. Mode "force" attempts the close operation even with media which
|
||||||
|
appear undamaged.
|
||||||
|
.br
|
||||||
|
No image changes are allowed to be pending before this command is performed.
|
||||||
|
After closing was attempted, both drives are given up.
|
||||||
|
.TP
|
||||||
\fB\-list_profiles\fR "in"|"out"|"all"
|
\fB\-list_profiles\fR "in"|"out"|"all"
|
||||||
Put out a list of media types supported by \-indev, resp. \-outdev, resp. both.
|
Put out a list of media types supported by \-indev, resp. \-outdev, resp. both.
|
||||||
The currently recognized type is marked by text "(current)".
|
The currently recognized type is marked by text "(current)".
|
||||||
|
@ -724,6 +724,11 @@ int Xorriso_option_clone(struct XorrisO *xorriso, char *origin, char *dest,
|
|||||||
/* Option -close "on"|"off" */
|
/* Option -close "on"|"off" */
|
||||||
int Xorriso_option_close(struct XorrisO *xorriso, char *mode, int flag);
|
int Xorriso_option_close(struct XorrisO *xorriso, char *mode, int flag);
|
||||||
|
|
||||||
|
/* Option -close_damaged */
|
||||||
|
/* @since 1.1.0 */
|
||||||
|
int Xorriso_option_close_damaged(struct XorrisO *xorriso, char *mode,
|
||||||
|
int flag);
|
||||||
|
|
||||||
/* Option -close_filter_list */
|
/* Option -close_filter_list */
|
||||||
int Xorriso_option_close_filter_list(struct XorrisO *xorriso, int flag);
|
int Xorriso_option_close_filter_list(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
|
@ -1828,6 +1828,20 @@ File: xorriso.info, Node: Writing, Next: SetWrite, Prev: Filter, Up: Options
|
|||||||
Smaller format size with DVD-RAM, BD-RE, or BD-R means more
|
Smaller format size with DVD-RAM, BD-RE, or BD-R means more
|
||||||
reserve space.
|
reserve space.
|
||||||
|
|
||||||
|
-close_damaged "as_needed"|"force"
|
||||||
|
Try to close the upcomming track and session if the drive reported
|
||||||
|
the media as damaged. This may apply to CD-R, CD-RW, DVD-R,
|
||||||
|
DVD-RW, DVD+R, DVD+R DL, or BD-R media. It is indicated by warning
|
||||||
|
messages when the drive gets aquired, and by a remark "but next
|
||||||
|
track is damaged" with the line "Media status :" of command -toc.
|
||||||
|
The setting of option -close determines whether the media stays
|
||||||
|
appendable.
|
||||||
|
Mode "as_needed" gracefully refuses on media which are not
|
||||||
|
reported as damaged. Mode "force" attempts the close operation
|
||||||
|
even with media which appear undamaged.
|
||||||
|
No image changes are allowed to be pending before this command is
|
||||||
|
performed. After closing was attempted, both drives are given up.
|
||||||
|
|
||||||
-list_profiles "in"|"out"|"all"
|
-list_profiles "in"|"out"|"all"
|
||||||
Put out a list of media types supported by -indev, resp. -outdev,
|
Put out a list of media types supported by -indev, resp. -outdev,
|
||||||
resp. both. The currently recognized type is marked by text
|
resp. both. The currently recognized type is marked by text
|
||||||
@ -4192,6 +4206,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
|||||||
* -chown_r sets ownership in ISO image: Manip. (line 47)
|
* -chown_r sets ownership in ISO image: Manip. (line 47)
|
||||||
* -clone copies ISO directory tree: Insert. (line 171)
|
* -clone copies ISO directory tree: Insert. (line 171)
|
||||||
* -close controls media closing: SetWrite. (line 262)
|
* -close controls media closing: SetWrite. (line 262)
|
||||||
|
* -close_damaged closes damaged track and session: Writing. (line 122)
|
||||||
* -close_filter_list bans filter registration: Filter. (line 52)
|
* -close_filter_list bans filter registration: Filter. (line 52)
|
||||||
* -commit writes pending ISO image: Writing. (line 13)
|
* -commit writes pending ISO image: Writing. (line 13)
|
||||||
* -commit_eject writes and ejects: Writing. (line 40)
|
* -commit_eject writes and ejects: Writing. (line 40)
|
||||||
@ -4255,7 +4270,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
|||||||
* -joliet enables production of Joliet tree: SetWrite. (line 10)
|
* -joliet enables production of Joliet tree: SetWrite. (line 10)
|
||||||
* -list_delimiter replaces '--': Scripting. (line 42)
|
* -list_delimiter replaces '--': Scripting. (line 42)
|
||||||
* -list_formats lists available formats: Writing. (line 110)
|
* -list_formats lists available formats: Writing. (line 110)
|
||||||
* -list_profiles lists supported media: Writing. (line 122)
|
* -list_profiles lists supported media: Writing. (line 136)
|
||||||
* -load addresses a particular session as input: Loading. (line 11)
|
* -load addresses a particular session as input: Loading. (line 11)
|
||||||
* -local_charset sets terminal character set: Charset. (line 47)
|
* -local_charset sets terminal character set: Charset. (line 47)
|
||||||
* -logfile logs output channels to file: Frontend. (line 20)
|
* -logfile logs output channels to file: Frontend. (line 20)
|
||||||
@ -4396,6 +4411,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
|||||||
* Create, new ISO image, _definiton: Methods. (line 6)
|
* Create, new ISO image, _definiton: Methods. (line 6)
|
||||||
* Cylinder alignment, _definiton: Bootable. (line 169)
|
* Cylinder alignment, _definiton: Bootable. (line 169)
|
||||||
* Cylinder size, _definiton: Bootable. (line 158)
|
* Cylinder size, _definiton: Bootable. (line 158)
|
||||||
|
* Damaged track and session, close, -close_damaged: Writing. (line 122)
|
||||||
* Delete, from ISO image, -rm: Manip. (line 21)
|
* Delete, from ISO image, -rm: Manip. (line 21)
|
||||||
* Delete, from ISO image, -rm_r: Manip. (line 28)
|
* Delete, from ISO image, -rm_r: Manip. (line 28)
|
||||||
* Delete, ISO directory, -rmdir: Manip. (line 32)
|
* Delete, ISO directory, -rmdir: Manip. (line 32)
|
||||||
@ -4418,7 +4434,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
|||||||
* Drive, for input, -indev: AqDrive. (line 22)
|
* Drive, for input, -indev: AqDrive. (line 22)
|
||||||
* Drive, for output, -outdev: AqDrive. (line 29)
|
* Drive, for output, -outdev: AqDrive. (line 29)
|
||||||
* Drive, get drive list, -devices: Inquiry. (line 7)
|
* Drive, get drive list, -devices: Inquiry. (line 7)
|
||||||
* Drive, list supported media, -list_profiles: Writing. (line 122)
|
* Drive, list supported media, -list_profiles: Writing. (line 136)
|
||||||
* Drive, reduce activity, -calm_drive: Loading. (line 235)
|
* Drive, reduce activity, -calm_drive: Loading. (line 235)
|
||||||
* Drive, report SCSI commands, -scsi_log: Scripting. (line 125)
|
* Drive, report SCSI commands, -scsi_log: Scripting. (line 125)
|
||||||
* Drive, write and eject, -commit_eject: Writing. (line 40)
|
* Drive, write and eject, -commit_eject: Writing. (line 40)
|
||||||
@ -4634,41 +4650,41 @@ Node: Manip60375
|
|||||||
Node: CmdFind69060
|
Node: CmdFind69060
|
||||||
Node: Filter80363
|
Node: Filter80363
|
||||||
Node: Writing84720
|
Node: Writing84720
|
||||||
Node: SetWrite91164
|
Node: SetWrite91955
|
||||||
Node: Bootable105210
|
Node: Bootable106001
|
||||||
Node: Jigdo118530
|
Node: Jigdo119321
|
||||||
Node: Charset122794
|
Node: Charset123585
|
||||||
Node: Exception125553
|
Node: Exception126344
|
||||||
Node: DialogCtl131693
|
Node: DialogCtl132484
|
||||||
Node: Inquiry134280
|
Node: Inquiry135071
|
||||||
Node: Navigate138663
|
Node: Navigate139454
|
||||||
Node: Verify146603
|
Node: Verify147394
|
||||||
Node: Restore155198
|
Node: Restore155989
|
||||||
Node: Emulation161858
|
Node: Emulation162649
|
||||||
Node: Scripting171731
|
Node: Scripting172522
|
||||||
Node: Frontend177881
|
Node: Frontend178672
|
||||||
Node: Examples179180
|
Node: Examples179971
|
||||||
Node: ExDevices180351
|
Node: ExDevices181142
|
||||||
Node: ExCreate180989
|
Node: ExCreate181780
|
||||||
Node: ExDialog182263
|
Node: ExDialog183054
|
||||||
Node: ExGrowing183525
|
Node: ExGrowing184316
|
||||||
Node: ExModifying184327
|
Node: ExModifying185118
|
||||||
Node: ExBootable184828
|
Node: ExBootable185619
|
||||||
Node: ExCharset185377
|
Node: ExCharset186168
|
||||||
Node: ExPseudo186205
|
Node: ExPseudo186996
|
||||||
Node: ExCdrecord187103
|
Node: ExCdrecord187894
|
||||||
Node: ExMkisofs187418
|
Node: ExMkisofs188209
|
||||||
Node: ExGrowisofs188756
|
Node: ExGrowisofs189547
|
||||||
Node: ExException189891
|
Node: ExException190682
|
||||||
Node: ExTime190345
|
Node: ExTime191136
|
||||||
Node: ExIncBackup190804
|
Node: ExIncBackup191595
|
||||||
Node: ExRestore194728
|
Node: ExRestore195519
|
||||||
Node: ExRecovery195697
|
Node: ExRecovery196488
|
||||||
Node: Files196263
|
Node: Files197054
|
||||||
Node: Seealso197561
|
Node: Seealso198352
|
||||||
Node: Bugreport198149
|
Node: Bugreport198940
|
||||||
Node: Legal198730
|
Node: Legal199521
|
||||||
Node: CommandIdx199660
|
Node: CommandIdx200451
|
||||||
Node: ConceptIdx214328
|
Node: ConceptIdx215192
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
@c man .\" First parameter, NAME, should be all caps
|
@c man .\" First parameter, NAME, should be all caps
|
||||||
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||||
@c man .\" other parameters are allowed: see man(7), man(1)
|
@c man .\" other parameters are allowed: see man(7), man(1)
|
||||||
@c man .TH XORRISO 1 "Version 1.0.9, May 29, 2011"
|
@c man .TH XORRISO 1 "Version 1.0.9, Jun 01, 2011"
|
||||||
@c man .\" Please adjust this date whenever revising the manpage.
|
@c man .\" Please adjust this date whenever revising the manpage.
|
||||||
@c man .\"
|
@c man .\"
|
||||||
@c man .\" Some roff macros, for reference:
|
@c man .\" Some roff macros, for reference:
|
||||||
@ -2459,6 +2459,24 @@ MMC format codes are manifold. Most important are:
|
|||||||
@*
|
@*
|
||||||
Smaller format size with DVD-RAM, BD-RE, or BD-R means more reserve space.
|
Smaller format size with DVD-RAM, BD-RE, or BD-R means more reserve space.
|
||||||
@c man .TP
|
@c man .TP
|
||||||
|
@item -close_damaged "as_needed"|"force"
|
||||||
|
@kindex -close_damaged closes damaged track and session
|
||||||
|
@cindex Damaged track and session, close, -close_damaged
|
||||||
|
Try to close the upcomming track and session if the drive reported the media
|
||||||
|
as damaged. This may apply to CD-R, CD-RW, DVD-R, DVD-RW, DVD+R, DVD+R DL,
|
||||||
|
or BD-R media. It is indicated by warning messages when the drive gets
|
||||||
|
aquired, and by a remark "but next track is damaged" with the line
|
||||||
|
"Media status :" of command -toc.
|
||||||
|
@*
|
||||||
|
The setting of option -close determines whether the media stays appendable.
|
||||||
|
@*
|
||||||
|
Mode "as_needed" gracefully refuses on media which are not reported as
|
||||||
|
damaged. Mode "force" attempts the close operation even with media which
|
||||||
|
appear undamaged.
|
||||||
|
@*
|
||||||
|
No image changes are allowed to be pending before this command is performed.
|
||||||
|
After closing was attempted, both drives are given up.
|
||||||
|
@c man .TP
|
||||||
@item -list_profiles "in"|"out"|"all"
|
@item -list_profiles "in"|"out"|"all"
|
||||||
@kindex -list_profiles lists supported media
|
@kindex -list_profiles lists supported media
|
||||||
@cindex Drive, list supported media, -list_profiles
|
@cindex Drive, list supported media, -list_profiles
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Xorriso_timestamP "2011.05.31.092902"
|
#define Xorriso_timestamP "2011.06.01.165129"
|
||||||
|
@ -574,6 +574,9 @@ int Xorriso_mark_update_merge(struct XorrisO *xorriso, char *path,
|
|||||||
*/
|
*/
|
||||||
int Xorriso_set_signal_handling(struct XorrisO *xorriso, int flag);
|
int Xorriso_set_signal_handling(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
|
/* @param flag bit0=force burn_disc_close_damaged()
|
||||||
|
*/
|
||||||
|
int Xorriso_close_damaged(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
#endif /* Xorrisoburn_includeD */
|
#endif /* Xorrisoburn_includeD */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user