diff --git a/xorriso/xorriso.1 b/xorriso/xorriso.1 index 443ae0c7..9e142fb1 100644 --- a/xorriso/xorriso.1 +++ b/xorriso/xorriso.1 @@ -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. diff --git a/xorriso/xorriso.c b/xorriso/xorriso.c index a4d14a55..313dee37 100644 --- a/xorriso/xorriso.c +++ b/xorriso/xorriso.c @@ -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;irc_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)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)