Rectified usage of original xorriso options underneath growisofs
This commit is contained in:
@@ -2947,10 +2947,12 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
|
||||
else if(strcmp(leafname, "xorrisofs")==0 || strcmp(leafname, "genisofs")==0 ||
|
||||
strcmp(leafname, "mkisofs")==0 || strcmp(leafname, "genisoimage")==0) {
|
||||
m->argument_emulation= 1;
|
||||
m->pacifier_style= 1;
|
||||
Xorriso_protect_stdout(*xorriso, 0);
|
||||
} else if(strcmp(leafname, "xorrecord")==0 || strcmp(leafname, "wodim")==0 ||
|
||||
strcmp(leafname, "cdrecord")==0 || strcmp(leafname, "cdrskin")==0) {
|
||||
m->argument_emulation= 2;
|
||||
m->pacifier_style= 2;
|
||||
}
|
||||
ret= Exclusions_new(&(m->disk_exclusions), 0);
|
||||
if(ret<=0)
|
||||
@@ -4202,8 +4204,8 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
||||
|
||||
is_default= (xorriso->pacifier_style==0);
|
||||
sprintf(line,"-pacifier '%s'\n",
|
||||
xorriso->pacifier_style==2 ? "mkisofs" :
|
||||
xorriso->pacifier_style==1 ? "cdrecord" : "xorriso");
|
||||
xorriso->pacifier_style==1 ? "mkisofs" :
|
||||
xorriso->pacifier_style==2 ? "cdrecord" : "xorriso");
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
||||
@@ -7667,14 +7669,14 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
|
||||
if(ret<=0)
|
||||
goto ex;
|
||||
}
|
||||
if(!was_other_option)
|
||||
{ret= 1; goto ex;}
|
||||
if(xorriso->out_drive_handle==NULL) {
|
||||
if(was_other_option && xorriso->out_drive_handle==NULL) {
|
||||
ret= Xorriso_option_dev(xorriso, "-", 2|4); /* set outdev to stdout */
|
||||
if(ret<=0)
|
||||
return(ret);
|
||||
}
|
||||
|
||||
/* MULTI : */
|
||||
|
||||
if(msc[0]) {
|
||||
cpt= strchr(msc, ',');
|
||||
if(cpt==NULL) {
|
||||
@@ -7688,15 +7690,16 @@ illegal_c:;
|
||||
goto illegal_c;
|
||||
strncpy(sfe, msc, cpt-msc);
|
||||
sfe[cpt-msc]= 0;
|
||||
if(strcmp(sfe, "16")==0) /* growisofs uses 16 to avoid a bug in mkisofs */
|
||||
strcpy(sfe, "0");
|
||||
if(xorriso->in_drive_handle!=NULL && indev[0]) {
|
||||
/* give up indev before setting the load address */
|
||||
ret= Xorriso_option_dev(xorriso, "", 1);
|
||||
if(ret<=0)
|
||||
return(ret);
|
||||
}
|
||||
ret= Xorriso_option_load(xorriso, "sbsector", sfe, 0);
|
||||
/* growisofs submits msc1+16 to avoid a theoretical bug in mkisofs.
|
||||
Therefore this bug has to be emulated here. Sigh.
|
||||
*/
|
||||
ret= Xorriso_option_load(xorriso, "sbsector", sfe, 1);
|
||||
if(ret<=0)
|
||||
return(ret);
|
||||
ret= Xorriso_option_grow_blindly(xorriso, cpt+1, 0);
|
||||
@@ -7709,6 +7712,9 @@ illegal_c:;
|
||||
goto ex;
|
||||
}
|
||||
|
||||
if(!was_other_option)
|
||||
{ret= 1; goto ex;}
|
||||
|
||||
xorriso->padding= 300*1024;
|
||||
|
||||
for(i= 0; i<argc; i++) {
|
||||
@@ -7853,7 +7859,7 @@ not_enough_args:;
|
||||
if(ret<=0)
|
||||
goto ex;
|
||||
was_path= 1;
|
||||
xorriso->pacifier_style= 2;
|
||||
xorriso->pacifier_style= 1;
|
||||
}
|
||||
}
|
||||
if(do_print_size) {
|
||||
@@ -10380,7 +10386,8 @@ int Xorriso_option_list_formats(struct XorrisO *xorriso, int flag)
|
||||
|
||||
|
||||
/* Option -load session|track|sbsector value */
|
||||
/* @return <=0 error , 1 success, 2 revoked by -reassure
|
||||
/* @param flag bit0= with adr_mode sbsector: adr_value is possibly 16 too high
|
||||
@return <=0 error , 1 success, 2 revoked by -reassure
|
||||
*/
|
||||
int Xorriso_option_load(struct XorrisO *xorriso, char *adr_mode,
|
||||
char *adr_value, int flag)
|
||||
@@ -10404,7 +10411,7 @@ int Xorriso_option_load(struct XorrisO *xorriso, char *adr_mode,
|
||||
else if(strcmp(adr_mode, "track")==0)
|
||||
xorriso->image_start_mode= 2;
|
||||
else if(strcmp(adr_mode, "lba")==0 || strcmp(adr_mode, "sbsector")==0)
|
||||
xorriso->image_start_mode= 3;
|
||||
xorriso->image_start_mode= 3 | ((flag&1) << 16);
|
||||
else if(strcmp(adr_mode, "volid")==0)
|
||||
xorriso->image_start_mode= 4;
|
||||
else {
|
||||
@@ -11264,11 +11271,11 @@ int Xorriso_option_pacifier(struct XorrisO *xorriso, char *style, int flag)
|
||||
{
|
||||
if(strcmp(style, "xorriso")==0 || strcmp(style, "default")==0)
|
||||
xorriso->pacifier_style= 0;
|
||||
else if(strcmp(style, "cdrecord")==0 || strcmp(style, "cdrskin")==0 ||
|
||||
strcmp(style, "wodim")==0 || strcmp(style, "xorrecord")==0)
|
||||
xorriso->pacifier_style= 1;
|
||||
else if(strcmp(style, "mkisofs")==0 || strcmp(style, "genisofs")==0 ||
|
||||
strcmp(style, "genisoimage")==0 || strcmp(style, "xorrisofs")==0)
|
||||
xorriso->pacifier_style= 1;
|
||||
else if(strcmp(style, "cdrecord")==0 || strcmp(style, "cdrskin")==0 ||
|
||||
strcmp(style, "wodim")==0 || strcmp(style, "xorrecord")==0)
|
||||
xorriso->pacifier_style= 2;
|
||||
else {
|
||||
sprintf(xorriso->info_text, "-pacifier: unknown behavior code '%s'", style);
|
||||
|
Reference in New Issue
Block a user