Made leafname triggered emulation more similar to -as emulation

This commit is contained in:
2008-07-08 08:25:07 +00:00
parent 2d946de47c
commit 2b95f2a6ca
2 changed files with 41 additions and 15 deletions

View File

@ -2805,7 +2805,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
if(getcwd(m->initial_wdx,sizeof(m->initial_wdx)-1)==NULL)
m->initial_wdx[0]= 0;
m->no_rc= 0;
m->permanent_emulation= 0;
m->argument_emulation= 0;
m->rc_filename_count= Xorriso_rc_nuM;
for(i=0;i<m->rc_filename_count-1;i++)
@ -2935,7 +2935,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->allow_restore= 1;
else if(strcmp(leafname, "xorrisofs")==0 || strcmp(leafname, "genisofs")==0 ||
strcmp(leafname, "mkisofs")==0 || strcmp(leafname, "genisoimage")==0) {
m->permanent_emulation= -1; /* becomeis +1 before argument interpretation */
m->argument_emulation= 1;
Xorriso_protect_stdout(*xorriso, 0);
}
ret= Exclusions_new(&(m->disk_exclusions), 0);
@ -12191,6 +12191,7 @@ return:
*/
/*
bit0= recursion
bit1= these are command line arguments (for xorriso->argument_emulation)
*/
{
int ret, was_dashed, end_ret, num1, num2;
@ -12205,14 +12206,15 @@ return:
}
next_command:;
if(xorriso->permanent_emulation==1) {
ret= Xorriso_as_genisofs(xorriso, argc, argv, idx, 0);
if(ret<=0)
goto eval_any_problems;
if((*idx)<argc)
xorriso->permanent_emulation= 0;
else
{ret= 1; goto ex;}
if(flag&2) {
if(xorriso->argument_emulation==1) {
ret= Xorriso_as_genisofs(xorriso, argc, argv, idx, 0);
xorriso->argument_emulation= 0;
if(ret<=0)
goto eval_any_problems;
if((*idx)>=argc)
{ret= 1; goto ex;}
}
}
xorriso->prepended_wd= 0;
@ -13069,9 +13071,7 @@ int Xorriso_main(int argc, char **argv)
/* Interpret program arguments */
i= 1;
if(xorriso->permanent_emulation<0)
xorriso->permanent_emulation= -xorriso->permanent_emulation;
ret= Xorriso_interpreter(xorriso,argc,argv,&i,0);
ret= Xorriso_interpreter(xorriso,argc,argv,&i,2);
if(ret==3)
goto end_sucessfully;
if(ret<=0)