Adaptions of -as mkisofs and -as cdrecord to enable full use by scdbackup

This commit is contained in:
Thomas Schmitt 2008-02-25 20:44:41 +00:00
parent cc3b6f75db
commit 55a70f1463
2 changed files with 31 additions and 8 deletions

View File

@ -6209,7 +6209,7 @@ int Xorriso_cdrskin(struct XorrisO *xorriso, char *whom, int argc, char **argv,
"timeout=", "debug=", "kdebug=", "kd=", "driver=", "ts=", "timeout=", "debug=", "kdebug=", "kd=", "driver=", "ts=",
"pregap=", "defpregap=", "mcn=", "isrc=", "index=", "textfile=", "pregap=", "defpregap=", "mcn=", "isrc=", "index=", "textfile=",
"pktsize=", "cuefile=", "pktsize=", "cuefile=",
"driveropts=", "gracetime=", "minbuf=", "gracetime=", "minbuf=",
"assert_write_lba=", "fifo_start_at=", "dev_translation=", "assert_write_lba=", "fifo_start_at=", "dev_translation=",
"drive_scsi_dev_family=", "fallback_program=", "modesty_on_drive=", "drive_scsi_dev_family=", "fallback_program=", "modesty_on_drive=",
@ -6365,6 +6365,13 @@ no_volunteer:;
ret= Xorriso_option_dev(xorriso, cpt, 2|8); /* overwriteables as blank */ ret= Xorriso_option_dev(xorriso, cpt, 2|8); /* overwriteables as blank */
if(ret<=0) if(ret<=0)
goto ex; goto ex;
} else if(strncmp(argv[i],"driveropts=", 11)==0 ||
strncmp(argv[i],"-driveropts=", 12)==0) {
if(strcmp(argv[i]+11, "help")==0) {
fprintf(stderr,"Driver options:\n");
fprintf(stderr,
"burnfree\tPrepare writer to use BURN-Free technology\n");
}
} else if(strcmp(argv[i], "-dummy")==0) { } else if(strcmp(argv[i], "-dummy")==0) {
xorriso->do_dummy= 1; xorriso->do_dummy= 1;
} else if(strcmp(argv[i], "-eject")==0) { } else if(strcmp(argv[i], "-eject")==0) {
@ -6476,6 +6483,10 @@ no_volunteer:;
ret= 1; goto ex; ret= 1; goto ex;
} }
if(!(do_checkdrive || do_atip || do_toc || blank_mode[0] || track_source[0] ||
do_eject))
{ret= 1; goto ex;}
if(xorriso->out_drive_handle==NULL) { if(xorriso->out_drive_handle==NULL) {
sprintf(xorriso->info_text, "-as %s: No output drive selected", whom); sprintf(xorriso->info_text, "-as %s: No output drive selected", whom);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
@ -6550,7 +6561,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
int argc, char **argv, int flag) int argc, char **argv, int flag)
{ {
int ret, i, k, was_path= 0, was_other_option= 0, mem_graft_points; int ret, i, k, was_path= 0, was_other_option= 0, mem_graft_points;
int do_print_size= 0, idx_offset= 0; int do_print_size= 0, idx_offset= 0, fd;
char sfe[5*SfileadrL], adr[SfileadrL+8], ra_text[80], pathspec[2*SfileadrL]; char sfe[5*SfileadrL], adr[SfileadrL+8], ra_text[80], pathspec[2*SfileadrL];
char *ept, *add_pt, eff_path[SfileadrL]; char *ept, *add_pt, eff_path[SfileadrL];
@ -6599,7 +6610,19 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
adr[0]= 0; adr[0]= 0;
for(i= 0; i<argc; i++) { for(i= 0; i<argc; i++) {
if(strcmp(argv[i], "-o")==0 || strcmp(argv[i], "-output")==0) { if(strcmp(argv[i], "-version")==0) {
sprintf(xorriso->result_line,
"mkisofs 2.01-Emulation Copyright (C) 2008 see libburnia-project.org xorriso\n"
);
fd= xorriso->dev_fd_1;
if(fd<0)
fd= 1;
write(fd, xorriso->result_line, strlen(xorriso->result_line));
fsync(fd);
Xorriso_option_version(xorriso, 0);
/* >>> this would need a ban to write images to stdout */;
} else if(strcmp(argv[i], "-o")==0 || strcmp(argv[i], "-output")==0) {
if(i+1>=argc) if(i+1>=argc)
goto not_enough_args; goto not_enough_args;
i++; i++;
@ -6696,9 +6719,8 @@ no_volunteer:;
} }
if(strcmp(argv[i], "-version")==0) { if(strcmp(argv[i], "-version")==0) {
sprintf(xorriso->result_line, "mkisofs 2.01-Emulation Copyright (C) 2008 see libburnia-project.org xorriso\n"); /* was already handled in first argument scan */;
Xorriso_result(xorriso, 1);
Xorriso_option_version(xorriso, 0);
} else if(strcmp(argv[i], "-R")==0 || strcmp(argv[i], "-rock")==0) { } else if(strcmp(argv[i], "-R")==0 || strcmp(argv[i], "-rock")==0) {
/* ok */; /* ok */;
} else if(strcmp(argv[i], "-J")==0 || strcmp(argv[i], "-joliet")==0) { } else if(strcmp(argv[i], "-J")==0 || strcmp(argv[i], "-joliet")==0) {
@ -9098,6 +9120,7 @@ int Xorriso_option_print_size(struct XorrisO *xorriso, int flag)
if(fd<0) if(fd<0)
fd= 1; fd= 1;
write(fd, xorriso->result_line, strlen(xorriso->result_line)); write(fd, xorriso->result_line, strlen(xorriso->result_line));
fsync(fd);
} else { } else {
sprintf(xorriso->result_line,"Image size : %ds\n", ret); sprintf(xorriso->result_line,"Image size : %ds\n", ret);
Xorriso_result(xorriso,0); Xorriso_result(xorriso,0);
@ -10243,7 +10266,7 @@ protect_stdout:;
"Encountered - or stdio:/dev/fd/1 as possible write target."); "Encountered - or stdio:/dev/fd/1 as possible write target.");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
sprintf(xorriso->info_text, sprintf(xorriso->info_text,
"Redirecting any text message output to stderr."); "Redirecting nearly all text message output to stderr.");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
sprintf(xorriso->info_text, "Disabling use of libreadline."); sprintf(xorriso->info_text, "Disabling use of libreadline.");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);

View File

@ -1 +1 @@
#define Xorriso_timestamP "2008.02.25.174229" #define Xorriso_timestamP "2008.02.25.204402"