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 2d946de47c
commit 2b95f2a6ca
2 changed files with 41 additions and 15 deletions

View File

@ -2,7 +2,7 @@
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" 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.
.\"
.\" Some roff macros, for reference:
@ -1791,6 +1791,12 @@ standard output.
Personalites "\fBgenisoimage\fR" and "\fBgenisofs\fR"
are aliases for "mkisofs".
.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:
.br
@ -2109,7 +2115,7 @@ first and only session to the output drive.
.br
-commit -eject all
.SS
.B Write a ISO image into a pipe (single-session only)
.B Write a ISO image into a pipe
\fB$\fR xorriso -outdev - \\
.br
...
@ -2125,6 +2131,26 @@ or filtering.
.br
xorriso -as cdrecord -v dev=/dev/sr0 blank=fast -eject -
.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
Be quite verbous, exit 32 if severity "FAILURE" was encountered,
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)
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)