Made leafname triggered emulation more similar to -as emulation

This commit is contained in:
Thomas Schmitt 2008-07-08 08:25:07 +00:00
parent e5ba798b14
commit 4ea0e15acb
2 changed files with 41 additions and 15 deletions

View File

@ -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 "Jun, 21, 2008" .TH XORRISO 1 "Jul, 08, 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:
@ -1791,6 +1791,12 @@ standard output.
Personalites "\fBgenisoimage\fR" and "\fBgenisofs\fR" Personalites "\fBgenisoimage\fR" and "\fBgenisofs\fR"
are aliases for "mkisofs". are aliases for "mkisofs".
.br .br
If xorriso is started with one of the leafnames "xorrisofs", "genisofs",
"mkisofs", or "genisoimage", then it automatically prepends -as "mkisofs"
to the command line arguments. I.e. all arguments will be interpreted mkisofs
style until "--" is encountered. From then on, options are interpreted
as xorriso options.
.br
Personality "\fBcdrecord\fR" accepts the options listed with: Personality "\fBcdrecord\fR" accepts the options listed with:
.br .br
@ -2109,7 +2115,7 @@ first and only session to the output drive.
.br .br
-commit -eject all -commit -eject all
.SS .SS
.B Write a ISO image into a pipe (single-session only) .B Write a ISO image into a pipe
\fB$\fR xorriso -outdev - \\ \fB$\fR xorriso -outdev - \\
.br .br
... ...
@ -2125,6 +2131,26 @@ or filtering.
.br .br
xorriso -as cdrecord -v dev=/dev/sr0 blank=fast -eject - xorriso -as cdrecord -v dev=/dev/sr0 blank=fast -eject -
.SS .SS
.B Let xorriso work underneath growisofs
growisofs expects an ISO formatter program which understands options -o, -C,
-M. If xorriso gets started by name "xorrisofs" then it is suitable for that.
.br
\fB$\fR export MKISOFS="xorrisofs"
.br
\fB$\fR growisofs -Z /dev/dvd -R -J /some/files
.br
\fB$\fR growisofs -M /dev/dvd -R -J /more/files
.br
If no "xorrisofs" is available on your system, then you will have to create
a link pointing to the xorriso binary and tell growisofs to use it. E.g. by:
.br
\fB$\fR ln -s $(which xorriso) "$HOME/xorrisofs"
.br
\fB$\fR export MKISOFS="$HOME/xorrisofs"
.br
growisofs has excellent burn capabilities with DVD and BD.
It does not emulate session history on overwriteable media, though.
.SS
.B Adjust thresholds for verbosity, exit value and program abort .B Adjust thresholds for verbosity, exit value and program abort
Be quite verbous, exit 32 if severity "FAILURE" was encountered, Be quite verbous, exit 32 if severity "FAILURE" was encountered,
do not abort prematurely but forcibly go on until the end of commands. do not abort prematurely but forcibly go on until the end of commands.

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