New commands -x, -list_arg_sorting

This commit is contained in:
Thomas Schmitt 2012-01-31 13:04:28 +00:00
parent 3bd7d5deee
commit fdeb97fc28
12 changed files with 540 additions and 87 deletions

View File

@ -185,6 +185,7 @@ Xorriso_option_history;
Xorriso_option_iso_rr_pattern; Xorriso_option_iso_rr_pattern;
Xorriso_option_jigdo; Xorriso_option_jigdo;
Xorriso_option_joliet; Xorriso_option_joliet;
Xorriso_option_list_arg_sorting;
Xorriso_option_list_delimiter; Xorriso_option_list_delimiter;
Xorriso_option_list_extras; Xorriso_option_list_extras;
Xorriso_option_list_formats; Xorriso_option_list_formats;

View File

@ -3,7 +3,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images. /* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net> Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
@ -122,6 +122,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
for(i=0;i<m->rc_filename_count-1;i++) for(i=0;i<m->rc_filename_count-1;i++)
strcpy(m->rc_filenames[i],Xorriso_sys_rc_nameS[i]); strcpy(m->rc_filenames[i],Xorriso_sys_rc_nameS[i]);
m->rc_filenames[m->rc_filename_count-1][0]= 0; m->rc_filenames[m->rc_filename_count-1][0]= 0;
m->arrange_args= 0;
m->mkisofsrc_done= 0; m->mkisofsrc_done= 0;
m->wdi[0]= 0; m->wdi[0]= 0;

View File

@ -1423,6 +1423,11 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
"images with Rock Ridge extensions. Write targets can be drives with optical", "images with Rock Ridge extensions. Write targets can be drives with optical",
"media or local filesystem objects.", "media or local filesystem objects.",
"", "",
" -x Only in effect if given as program argument:",
" Execute commands given as program arguments in a sequence",
" that most likely makes some sense. Default is to execute",
" program arguments exactly in the sequence as given.",
"",
"Preparation options:", "Preparation options:",
"Drive addresses are either /dev/... as listed with option -devices or", "Drive addresses are either /dev/... as listed with option -devices or",
"disk files, eventually with prefix \"stdio:\" if non-CD-drive in /dev tree.", "disk files, eventually with prefix \"stdio:\" if non-CD-drive in /dev tree.",
@ -2006,6 +2011,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" Tell whether certain extra features were enabled at compile", " Tell whether certain extra features were enabled at compile",
" time. Code \"all\" lists all features and a headline. Other", " time. Code \"all\" lists all features and a headline. Other",
" codes pick a single feature. \"codes\" lists the known codes.", " codes pick a single feature. \"codes\" lists the known codes.",
" -list_arg_sorting",
" Print the sorting order of xorriso commands with option -x.",
" -version Tell program and version number", " -version Tell program and version number",
" -end End program. Commit eventual pending changes.", " -end End program. Commit eventual pending changes.",
" -rollback_end", " -rollback_end",

View File

@ -74,6 +74,16 @@ int Xorriso_option_joliet(struct XorrisO *xorriso, char *mode, int flag)
} }
/* Option -list_arg_sorting */
int Xorriso_option_list_arg_sorting(struct XorrisO *xorriso, int flag)
{
int ret;
ret= Xorriso_cmd_sorting_rank(xorriso, 0, NULL, 0, 1);
return(ret);
}
/* Option -list_delimiter */ /* Option -list_delimiter */
int Xorriso_option_list_delimiter(struct XorrisO *xorriso, char *text, int Xorriso_option_list_delimiter(struct XorrisO *xorriso, char *text,
int flag) int flag)

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images. /* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net> Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
@ -450,7 +450,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
"ban_stdio_write","close_filter_list","commit", "ban_stdio_write","close_filter_list","commit",
"device_links","devices","end", "device_links","devices","end",
"for_backup", "help", "for_backup", "help",
"list_formats","list_speeds", "list_arg_sorting","list_formats","list_speeds",
"no_rc","print_size","pvd_info","pwd","pwdi","pwdx", "no_rc","print_size","pvd_info","pwd","pwdi","pwdx",
"read_mkisofsrc","rollback","rollback_end", "read_mkisofsrc","rollback","rollback_end",
"tell_media_space","toc","version", "tell_media_space","toc","version",
@ -571,9 +571,278 @@ ex:
} }
/* @param flag bit0= list sorting order rather than looking for argv[idx]
*/
int Xorriso_cmd_sorting_rank(struct XorrisO *xorriso,
int argc, char **argv, int idx, int flag)
{
int ret, i, cmd_data_size= 2 * SfileadrL;
char *cmd, *cmd_data= NULL;
static char *commands[]= {
"* Execution order of program arguments with option -x:",
"x",
"* Support for frontend programs via stdin and stdout (1):",
"prog", "prog_help",
"* Exception processing:",
"abort_on", "return_with", "report_about", "signal_handling",
"error_behavior",
"* Scripting, dialog and program control features (1):",
"no_rc", "help", "version", "list_extras", "list_arg_sorting",
"temp_mem_limit", "backslash_codes",
"errfile_log", "session_log", "scsi_log",
"options_from_file", "list_delimiter",
"print", "print_info", "print_mark", "prompt", "sleep",
"* Drive and media related inquiry actions (1):",
"devices", "device_links",
"mount_opts", "mount_cmd", "session_string",
"* Influencing the behavior of image loading:",
"load", "displacement", "drive_class", "assert_volid", "in_charset",
"auto_charset", "hardlinks", "acl", "xattr", "md5", "for_backup",
"disk_dev_ino", "rom_toc_scan", "calm_drive", "ban_stdio_write",
"early_stdio_test",
"* Character sets:",
"charset", "local_charset",
"* Aquiring source and target drive:",
"dev", "indev", "outdev",
"* Drive and media related inquiry actions (2):",
"list_profiles", "list_formats", "list_speeds",
"toc", "pvd_info",
"* Settings for file insertion:",
"file_size_limit", "not_mgt", "not_paths", "not_leaf", "not_list",
"quoted_not_list", "follow", "pathspecs", "overwrite", "split_size",
"* Navigation in ISO image and disk filesystem (1):",
"cd", "cdx", "pwd", "pwdx",
"* Inserting files into ISO image:",
"disk_pattern", "add_plainly",
"mkdir", "add", "path_list", "quoted_path_list",
"map", "map_single", "map_l", "update", "update_r", "update_l",
"cut_out", "cpr",
"clone", "cp_clone",
"* Navigation in ISO image and disk filesystem (2):",
"ls", "lsd", "lsl", "lsdl", "lsx", "lsdx", "lslx", "lsdlx",
"getfacl", "getfacl_r", "getfattr", "getfattr_r", "du", "dus",
"dux", "dusx", "findx",
"compare", "compare_r", "compare_l", "show_stream", "show_stream_r",
"* File manipulations:",
"iso_rr_pattern",
"rm", "rm_r", "rmdir", "mv",
"chown", "chown_r", "chgrp", "chgrp_r", "chmod", "chmod_r", "setfacl",
"setfacl_r", "setfacl_list", "setfattr", "setfattr_r", "setfattr_list",
"alter_date", "alter_date_r", "hide",
"* Filters for data file content:",
"external_filter", "unregister_filter", "close_filter_list",
"set_filter", "set_filter_r",
"* Tree traversal command -find:",
"find",
"* osirrox ISO-to-disk restore options:",
"osirrox", "extract", "extract_single", "extract_l", "extract_cut",
"cpx", "cpax", "cp_rx", "cp_rax", "paste_in",
"mount",
"* Settings for result writing:",
"joliet", "compliance", "volid", "volset_id", "publisher",
"application_id", "system_id", "volume_date", "copyright_file",
"abstract_file", "biblio_file", "preparer_id", "out_charset",
"read_mkisofsrc",
"uid", "gid", "zisofs", "speed", "stream_recording", "dvd_obs",
"stdio_sync", "dummy", "fs", "close", "padding",
"grow_blindly", "pacifier", "scdbackup_tag",
"* Bootable ISO images:",
"boot_image", "append_partition",
"* Jigdo Template Extraction:",
"jigdo",
"* Command compatibility emulations:",
"as",
"* Scripting, dialog and program control features (2):",
"history", "status_history_max", "status",
"* Drive and media related inquiry actions (3):",
"print_size", "tell_media_space",
"* Writing the result, drive control:",
"format", "blank", "close_damaged",
"rollback", "commit", "commit_eject",
"eject",
"* Evaluation of readability and recovery:",
"check_media_defaults", "check_media", "check_md5", "check_md5_r",
"* Support for frontend programs via stdin and stdout (2):",
"pkt_output", "logfile", "mark",
"* Dialog mode control:",
"dialog", "page", "use_readline", "reassure",
"* Scripting, dialog and program control features (3):",
"rollback_end", "end",
""
};
if(flag & 1) {
for(i= 0; commands[i][0] !=0; i++) {
if(commands[i][0] == '*')
sprintf(xorriso->result_line, "#%s\n", commands[i] + 1);
else
sprintf(xorriso->result_line, "-%s\n", commands[i]);
Xorriso_result(xorriso, 0);
}
ret= 1; goto ex;
}
if(argc <= 0)
{ret= -1; goto ex;}
Xorriso_alloc_meM(cmd_data, char, cmd_data_size);
ret= Xorriso_normalize_command(xorriso, argv[idx], -1,
cmd_data, cmd_data_size, &cmd, 0);
if(ret < 0)
goto ex;
if(cmd[0] == '#' || cmd[0] == 0 ||
strcmp(cmd, xorriso->list_delimiter) == 0) {
/* Move to end: comment line , empty option , orphaned list delimiter */
ret= 0x7fffffff; goto ex;
}
for(i= 0; commands[i][0] !=0; i++) {
if(commands[i][0] == '*') /* headline in command list */
continue;
if(strcmp(commands[i], cmd) != 0)
continue;
ret= i + 1; goto ex;
}
ret= 1;
ex:
Xorriso_free_meM(cmd_data);
return(ret);
}
int Xorriso__cmp_cmd_rank(const void *a, const void *b)
{
int ra, rb;
ra= ((int *) a)[1];
rb= ((int *) b)[1];
if(ra < rb)
return(-1);
if(ra > rb)
return(1);
ra= ((int *) a)[2];
rb= ((int *) b)[2];
if(ra < rb)
return(-1);
if(ra > rb)
return(1);
return(0);
}
/* @param flag bit0= print command sequence rather than executing it
bit1= these are command line arguments
(for xorriso->argument_emulation)
*/
int Xorriso_exec_args_sorted(struct XorrisO *xorriso,
int argc, char **argv, int *idx, int flag)
{
int cmd_count= 0, ret, i, arg_count, *idx_rank= NULL, cmd_idx;
/* Count commands and allocate index-rank array */
for(i= *idx; i < argc; i++) {
ret= Xorriso_count_args(xorriso, argc - i, argv + i, &arg_count, 1);
if(ret <= 0)
goto ex;
if(ret != 1)
continue;
cmd_count++;
i+= arg_count;
}
if(cmd_count <= 0)
{ret= 1; goto ex;}
Xorriso_alloc_meM(idx_rank, int, 3 * cmd_count);
/* Fill index-rank array and sort */
cmd_count= 0;
for(i= *idx; i < argc; i++) {
ret= Xorriso_count_args(xorriso, argc - i, argv + i, &arg_count, 1);
if(ret <= 0)
goto ex;
if(ret != 1)
continue;
idx_rank[3 * cmd_count]= i;
ret= Xorriso_cmd_sorting_rank(xorriso, argc, argv, i, 0);
if(ret < 0)
goto ex;
idx_rank[3 * cmd_count + 1]= ret;
idx_rank[3 * cmd_count + 2]= cmd_count;
cmd_count++;
i+= arg_count;
}
qsort(idx_rank, cmd_count, 3 * sizeof(int), Xorriso__cmp_cmd_rank);
/* Execute or print indice from index-rank array */
if(flag & 1) {
sprintf(xorriso->result_line,
"Automatically determined command sequence:\n");
Xorriso_result(xorriso, 0);
xorriso->result_line[0]= 0;
}
for(i= 0; i < cmd_count; i++) {
cmd_idx= idx_rank[3 * i];
if(flag & 1) {
if(strlen(xorriso->result_line) + 1 + strlen(argv[cmd_idx]) > 78) {
strcat(xorriso->result_line, "\n");
Xorriso_result(xorriso, 0);
xorriso->result_line[0]= 0;
}
sprintf(xorriso->result_line + strlen(xorriso->result_line),
" %s", argv[cmd_idx]);
} else {
ret= Xorriso_interpreter(xorriso, argc, argv, &cmd_idx, 4 | (flag & 2));
if(ret <= 0 || ret == 3)
goto ex;
}
}
if(flag & 1) {
if(strlen(xorriso->result_line) > 0) {
strcat(xorriso->result_line, "\n");
Xorriso_result(xorriso, 0);
}
} else
*idx= argc;
ret= 1;
ex:
Xorriso_free_meM(idx_rank);
return(ret);
}
/* @param flag bit0= recursion /* @param flag bit0= recursion
bit1= these are command line arguments bit1= these are command line arguments
(for xorriso->argument_emulation) (for xorriso->argument_emulation)
bit2= Only execute the one command argv[*idx] and advance
*idx to the next command if sucessful. Then return.
*/ */
int Xorriso_interpreter(struct XorrisO *xorriso, int Xorriso_interpreter(struct XorrisO *xorriso,
int argc, char **argv, int *idx, int flag) int argc, char **argv, int *idx, int flag)
@ -610,6 +879,10 @@ next_command:;
if((*idx)>=argc) if((*idx)>=argc)
{ret= 1; goto ex;} {ret= 1; goto ex;}
} }
if((xorriso->arrange_args || (flag & 8)) && !(flag & (4 | 16))) {
ret= Xorriso_exec_args_sorted(xorriso, argc, argv, idx, 0);
goto ex;
}
} }
ret= Xorriso_count_args(xorriso, argc - *idx, argv + *idx, &arg_count, 1); ret= Xorriso_count_args(xorriso, argc - *idx, argv + *idx, &arg_count, 1);
@ -1019,6 +1292,9 @@ next_command:;
(*idx)++; (*idx)++;
ret= Xorriso_option_joliet(xorriso, arg1, 0); ret= Xorriso_option_joliet(xorriso, arg1, 0);
} else if(strcmp(cmd, "list_arg_sorting") == 0) {
ret= Xorriso_option_list_arg_sorting(xorriso, 0);
} else if(strcmp(cmd, "list_delimiter") == 0) { } else if(strcmp(cmd, "list_delimiter") == 0) {
(*idx)++; (*idx)++;
ret= Xorriso_option_list_delimiter(xorriso, arg1, 0); ret= Xorriso_option_list_delimiter(xorriso, arg1, 0);
@ -1423,6 +1699,9 @@ next_command:;
(*idx)+= 2; (*idx)+= 2;
ret= Xorriso_option_volume_date(xorriso, arg1, arg2, 0); ret= Xorriso_option_volume_date(xorriso, arg1, arg2, 0);
} else if(strcmp(cmd, "x") == 0) {
/* only in effect in Xorriso_prescan_args() */;
} else if(strcmp(cmd,"xattr")==0) { } else if(strcmp(cmd,"xattr")==0) {
(*idx)++; (*idx)++;
ret= Xorriso_option_xattr(xorriso, arg1, 0); ret= Xorriso_option_xattr(xorriso, arg1, 0);
@ -1459,7 +1738,7 @@ eval_any_problems:
if(ret<0) if(ret<0)
goto ex; goto ex;
if(*idx<argc) if(*idx < argc && !(flag & 4))
goto next_command; goto next_command;
ex:; ex:;
@ -1589,6 +1868,7 @@ int Xorriso_prescan_args(struct XorrisO *xorriso, int argc, char **argv,
int flag) int flag)
/* /*
bit0= do not interpret argv[1] bit0= do not interpret argv[1]
bit1= complain about inknown arguments
*/ */
/* /*
return: return:
@ -1750,6 +2030,9 @@ protect_stdout:;
Xorriso_option_signal_handling(xorriso, arg1, 1); /* no install */ Xorriso_option_signal_handling(xorriso, arg1, 1); /* no install */
was_signal_handling= 1; was_signal_handling= 1;
} else if(strcmp(original_cmd, "-x") == 0) {
xorriso->arrange_args= 1;
} else { } else {
ret= Xorriso_count_args(xorriso, argc - i, argv + i, &arg_count, 1); ret= Xorriso_count_args(xorriso, argc - i, argv + i, &arg_count, 1);
if(ret == 1) { if(ret == 1) {

View File

@ -88,5 +88,10 @@ int Xorriso_normalize_acl_text(struct XorrisO *xorriso, char *in_text,
int Xorriso_read_mkisofsrc(struct XorrisO *xorriso, int flag); int Xorriso_read_mkisofsrc(struct XorrisO *xorriso, int flag);
/* @param flag bit0= list sorting order rather than looking for argv[idx]
*/
int Xorriso_cmd_sorting_rank(struct XorrisO *xorriso,
int argc, char **argv, int idx, int flag);
#endif /* ! Xorriso_pvt_cmd_includeD */ #endif /* ! Xorriso_pvt_cmd_includeD */

View File

@ -9,7 +9,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 "Version 1.2.1, Jan 27, 2012" .TH XORRISO 1 "Version 1.2.1, Jan 31, 2012"
.\" 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:
@ -447,7 +447,10 @@ only on GNU/Linux and FreeBSD, where they are known as extattr.
.B Command processing: .B Command processing:
.br .br
Commands are either actions which happen immediately or settings which Commands are either actions which happen immediately or settings which
influence following actions. So their sequence does matter. influence following actions. So their sequence does matter, unless they are
given as program arguments and option
\fB\-x\fR
is among them.
.br .br
Commands consist of a command word, Commands consist of a command word,
followed by zero or more parameter words. If the list of parameter words followed by zero or more parameter words. If the list of parameter words
@ -566,6 +569,34 @@ the dashes of the emulated options are mandatory.
Normally any number of leading dashes is ignored with command words and Normally any number of leading dashes is ignored with command words and
inner dashes are interpreted as underscores. inner dashes are interpreted as underscores.
.TP .TP
.B Execution order of program arguments:
.PP
By default the program arguments of a xorriso run are interpreted as a
sequence of commands which get performed exactly in the given order.
This requires the user to write commands for desired settings before the
commands which shall be influenced by those settings.
.br
Many other programs allow to hand over options as program arguments
in an arbitrary sequence and perform settings and actions in a sequence
of their own discretion. xorriso provides an option to enable such a behavior
at the cost of losing freedom of expression.
.TP
\fB\-x\fR
Enable automatic sorting of program arguments to a sequence that most likely
makes some sense. This command may be given at any position among the commands
which are handed over as program arguments.
.br
It works only if it is given as program argument. I.e. not
in startup files. not with \-options_from_file, not in dialog mode.
.TP
\fB\-list_arg_sorting\fR
List all xorriso commands in the order which applies if option \-x is in effect.
.br
This list may also be helpful without \-x, for a user who ponders over the
sequence in which to put commands. Deviations from the sorting order may
well make sense, though.
.PP
.TP
.B Aquiring source and target drive: .B Aquiring source and target drive:
.PP .PP
The effect of aquiring a drive may depend on several options in the The effect of aquiring a drive may depend on several options in the

View File

@ -236,6 +236,8 @@ int Xorriso_destroy(struct XorrisO **xorriso, int flag);
get into effect before the libraries get initialized: get into effect before the libraries get initialized:
-abort_on , -report_about , -return_with , -list_delimiter , -abort_on , -report_about , -return_with , -list_delimiter ,
-scsi_log , -signal_handling -scsi_log , -signal_handling
This is the only occasion where command -x has an effect:
-x
Some commands get executed only if they are the only command in argv: Some commands get executed only if they are the only command in argv:
-prog_help , -help -prog_help , -help
The following is recognized only if it is the first of all arguments: The following is recognized only if it is the first of all arguments:
@ -301,6 +303,12 @@ int Xorriso_program_arg_bsl(struct XorrisO *xorriso, int argc, char ***argv,
perform own error status evaluation. See below: Options API.) perform own error status evaluation. See below: Options API.)
After the first command and its parameters there may be more commands and After the first command and its parameters there may be more commands and
parameters. All parameters must be given in the same call as their command. parameters. All parameters must be given in the same call as their command.
@since 1.2.2:
Commands may get arranged in a sequence that is most likely to make sense.
E.g. image loading settings before drive aquiration, then commands fori
adding files, then settings for writing, then writing.
This feature may be enabled by command "-x" in Xorriso_prescan_args()
or by parameter flag of this call.
@param xorriso The context object in which to perform the commands. @param xorriso The context object in which to perform the commands.
@param argc Number of arguments. @param argc Number of arguments.
@param argv The arguments. argv[0] contains the program name. @param argv The arguments. argv[0] contains the program name.
@ -308,10 +316,24 @@ int Xorriso_program_arg_bsl(struct XorrisO *xorriso, int argc, char ***argv,
@param idx Argument cursor. When this function is called, *idx must @param idx Argument cursor. When this function is called, *idx must
be at least 1, argv[*idx] must be a command. be at least 1, argv[*idx] must be a command.
*idx will iterate over commands and parameters until this *idx will iterate over commands and parameters until this
function aborts or until argc is reached. function aborts, or until argc is reached, or only once if
flag bit2 is set.
@param flag bit0= reserved. Indicates recursion. Submit 0. @param flag bit0= reserved. Indicates recursion. Submit 0.
bit1= Indicates that these are the main() program start bit1= Indicates that these are the main() program start
arguments arguments. This enables their use with emulations
which where set with Xorriso_new(), or argument
arranging.
bit2= Only execute the one command argv[*idx] and advance
*idx to the next command if sucessful. Then return.
This prevents any argument arranging.
@since 1.2.2
bit3= With bit1 and not bit2:
Enable argument arranging as with
Xorriso_prescan_args() and command "-x".
@since 1.2.2
bit4= With bit1:
Surely disable argument arranging.
@since 1.2.2
@return <=0 = error @return <=0 = error
1 = success 1 = success
2 = problem event ignored 2 = problem event ignored
@ -918,11 +940,16 @@ int Xorriso_option_jigdo(struct XorrisO *xorriso, char *aspect, char *arg,
/* Option -joliet "on"|"off" */ /* Option -joliet "on"|"off" */
int Xorriso_option_joliet(struct XorrisO *xorriso, char *mode, int flag); int Xorriso_option_joliet(struct XorrisO *xorriso, char *mode, int flag);
/* Option -list_arg_sorting */
/* @since 1.2.2 */
int Xorriso_option_list_arg_sorting(struct XorrisO *xorriso, int flag);
/* Option -list_delimiter */ /* Option -list_delimiter */
int Xorriso_option_list_delimiter(struct XorrisO *xorriso, char *text, int Xorriso_option_list_delimiter(struct XorrisO *xorriso, char *text,
int flag); int flag);
/* Option -list_extras */ /* Option -list_extras */
/* @since 1.1.6 */
int Xorriso_option_list_extras(struct XorrisO *xorriso, char *mode, int flag); int Xorriso_option_list_extras(struct XorrisO *xorriso, char *mode, int flag);
/* Option -list_formats */ /* Option -list_formats */
@ -933,6 +960,7 @@ int Xorriso_option_list_profiles(struct XorrisO *xorriso, char *which,
int flag); int flag);
/* Option -list_speeds */ /* Option -list_speeds */
/* @since 1.1.2 */
int Xorriso_option_list_speeds(struct XorrisO *xorriso, int flag); int Xorriso_option_list_speeds(struct XorrisO *xorriso, int flag);
/* Option -load session|track|sbsector value */ /* Option -load session|track|sbsector value */
@ -1174,11 +1202,13 @@ int Xorriso_option_set_filter(struct XorrisO *xorriso, char *name,
/* Option -signal_handling */ /* Option -signal_handling */
/* @param flag bit0= do not yet install the eventual handler /* @param flag bit0= do not yet install the eventual handler
@since 1.1.0
*/ */
int Xorriso_option_signal_handling(struct XorrisO *xorriso, char *mode, int Xorriso_option_signal_handling(struct XorrisO *xorriso, char *mode,
int flag); int flag);
/* Option -sleep */ /* Option -sleep */
/* @since 1.1.8 */
int Xorriso_option_sleep(struct XorrisO *xorriso, char *duration, int flag); int Xorriso_option_sleep(struct XorrisO *xorriso, char *duration, int flag);
/* Option -speed */ /* Option -speed */
@ -1248,6 +1278,11 @@ int Xorriso_option_volset_id(struct XorrisO *xorriso, char *name, int flag);
int Xorriso_option_volume_date(struct XorrisO *xorriso, int Xorriso_option_volume_date(struct XorrisO *xorriso,
char *time_type, char *timestring, int flag); char *time_type, char *timestring, int flag);
/* There is no Xorriso_option_x() because -x has an effect only in
Xorriso_prescan_args(). Use the flag bits of Xorriso_interpreter() if
you want to impose command sorting on your own.
*/
/* Option -xattr "on"|"off" */ /* Option -xattr "on"|"off" */
int Xorriso_option_xattr(struct XorrisO *xorriso, char *mode, int flag); int Xorriso_option_xattr(struct XorrisO *xorriso, char *mode, int flag);

View File

@ -392,7 +392,8 @@ File: xorriso.info, Node: Processing, Next: Dialog, Prev: Extras, Up: Top
******************** ********************
Commands are either actions which happen immediately or settings which Commands are either actions which happen immediately or settings which
influence following actions. So their sequence does matter. influence following actions. So their sequence does matter, unless they
are given as program arguments and option *-x* is among them.
Commands consist of a command word, followed by zero or more parameter Commands consist of a command word, followed by zero or more parameter
words. If the list of parameter words is of variable length (indicated words. If the list of parameter words is of variable length (indicated
by "[...]" or "[***]") then it has to be terminated by either the *list by "[...]" or "[***]") then it has to be terminated by either the *list
@ -499,6 +500,7 @@ inner dashes are interpreted as underscores.
* Menu: * Menu:
* ArgSort:: Execution order of program arguments
* AqDrive:: Aquiring source and target drive * AqDrive:: Aquiring source and target drive
* Loading:: Influencing the behavior of image loading * Loading:: Influencing the behavior of image loading
* Insert:: Inserting files into ISO image * Insert:: Inserting files into ISO image
@ -522,9 +524,39 @@ inner dashes are interpreted as underscores.
* Frontend:: Support for frontend programs via stdin and stdout * Frontend:: Support for frontend programs via stdin and stdout
 
File: xorriso.info, Node: AqDrive, Next: Loading, Prev: Options, Up: Options File: xorriso.info, Node: ArgSort, Next: AqDrive, Prev: Options, Up: Options
9.1 Aquiring source and target drive 9.1 Execution order of program arguments
========================================
By default the program arguments of a xorriso run are interpreted as a
sequence of commands which get performed exactly in the given order.
This requires the user to write commands for desired settings before the
commands which shall be influenced by those settings.
Many other programs allow to hand over options as program arguments in
an arbitrary sequence and perform settings and actions in a sequence of
their own discretion. xorriso provides an option to enable such a
behavior at the cost of losing freedom of expression.
-x
Enable automatic sorting of program arguments to a sequence that
most likely makes some sense. This command may be given at any
position among the commands which are handed over as program
arguments.
It works only if it is given as program argument. I.e. not in
startup files. not with -options_from_file, not in dialog mode.
-list_arg_sorting
List all xorriso commands in the order which applies if option -x
is in effect.
This list may also be helpful without -x, for a user who ponders
over the sequence in which to put commands. Deviations from the
sorting order may well make sense, though.

File: xorriso.info, Node: AqDrive, Next: Loading, Prev: ArgSort, Up: Options
9.2 Aquiring source and target drive
==================================== ====================================
The effect of aquiring a drive may depend on several options in the The effect of aquiring a drive may depend on several options in the
@ -584,7 +616,7 @@ commands which aquire the drive.
 
File: xorriso.info, Node: Loading, Next: Insert, Prev: AqDrive, Up: Options File: xorriso.info, Node: Loading, Next: Insert, Prev: AqDrive, Up: Options
9.2 Influencing the behavior of image loading 9.3 Influencing the behavior of image loading
============================================= =============================================
The following options should normally be performed before loading an The following options should normally be performed before loading an
@ -847,7 +879,7 @@ activate them only after image loading.
 
File: xorriso.info, Node: Insert, Next: SetInsert, Prev: Loading, Up: Options File: xorriso.info, Node: Insert, Next: SetInsert, Prev: Loading, Up: Options
9.3 Inserting files into ISO image 9.4 Inserting files into ISO image
================================== ==================================
The following commands expect file addresses of two kinds: *disk_path* The following commands expect file addresses of two kinds: *disk_path*
@ -1040,7 +1072,7 @@ filesystem.
 
File: xorriso.info, Node: SetInsert, Next: Manip, Prev: Insert, Up: Options File: xorriso.info, Node: SetInsert, Next: Manip, Prev: Insert, Up: Options
9.4 Settings for file insertion 9.5 Settings for file insertion
=============================== ===============================
-file_size_limit value [value [...]] -- -file_size_limit value [value [...]] --
@ -1209,7 +1241,7 @@ File: xorriso.info, Node: SetInsert, Next: Manip, Prev: Insert, Up: Options
 
File: xorriso.info, Node: Manip, Next: CmdFind, Prev: SetInsert, Up: Options File: xorriso.info, Node: Manip, Next: CmdFind, Prev: SetInsert, Up: Options
9.5 File manipulations 9.6 File manipulations
====================== ======================
The following commands manipulate files in the ISO image, regardless The following commands manipulate files in the ISO image, regardless
@ -1394,7 +1426,7 @@ whether they stem from the loaded image or were newly inserted.
 
File: xorriso.info, Node: CmdFind, Next: Filter, Prev: Manip, Up: Options File: xorriso.info, Node: CmdFind, Next: Filter, Prev: Manip, Up: Options
9.6 Tree traversal command -find 9.7 Tree traversal command -find
================================ ================================
-find iso_rr_path [test [op] [test ...]] [-exec action [params]] -- -find iso_rr_path [test [op] [test ...]] [-exec action [params]] --
@ -1643,7 +1675,7 @@ File: xorriso.info, Node: CmdFind, Next: Filter, Prev: Manip, Up: Options
 
File: xorriso.info, Node: Filter, Next: Writing, Prev: CmdFind, Up: Options File: xorriso.info, Node: Filter, Next: Writing, Prev: CmdFind, Up: Options
9.7 Filters for data file content 9.8 Filters for data file content
================================= =================================
*Filters* may be installed between data files in the ISO image and their *Filters* may be installed between data files in the ISO image and their
@ -1731,7 +1763,7 @@ there are many small files.
 
File: xorriso.info, Node: Writing, Next: SetWrite, Prev: Filter, Up: Options File: xorriso.info, Node: Writing, Next: SetWrite, Prev: Filter, Up: Options
9.8 Writing the result, drive control 9.9 Writing the result, drive control
===================================== =====================================
(see also paragraph about settings below) (see also paragraph about settings below)
@ -1885,8 +1917,8 @@ File: xorriso.info, Node: Writing, Next: SetWrite, Prev: Filter, Up: Options
 
File: xorriso.info, Node: SetWrite, Next: Bootable, Prev: Writing, Up: Options File: xorriso.info, Node: SetWrite, Next: Bootable, Prev: Writing, Up: Options
9.9 Settings for result writing 9.10 Settings for result writing
=============================== ================================
Rock Ridge info will be generated by the program unconditionally. ACLs Rock Ridge info will be generated by the program unconditionally. ACLs
will be written according to the setting of option -acl. will be written according to the setting of option -acl.
@ -2170,7 +2202,7 @@ will be written according to the setting of option -acl.
 
File: xorriso.info, Node: Bootable, Next: Jigdo, Prev: SetWrite, Up: Options File: xorriso.info, Node: Bootable, Next: Jigdo, Prev: SetWrite, Up: Options
9.10 Bootable ISO images 9.11 Bootable ISO images
======================== ========================
Contrary to published specifications many BIOSes will load an El Torito Contrary to published specifications many BIOSes will load an El Torito
@ -2397,7 +2429,7 @@ filesystem and announced by an MBR partition table entry.
 
File: xorriso.info, Node: Jigdo, Next: Charset, Prev: Bootable, Up: Options File: xorriso.info, Node: Jigdo, Next: Charset, Prev: Bootable, Up: Options
9.11 Jigdo Template Extraction 9.12 Jigdo Template Extraction
============================== ==============================
From man genisoimage: "Jigdo is a tool to help in the distribution of From man genisoimage: "Jigdo is a tool to help in the distribution of
@ -2476,7 +2508,7 @@ emulation, and padding will be counted as part of the ISO image.
 
File: xorriso.info, Node: Charset, Next: Exception, Prev: Jigdo, Up: Options File: xorriso.info, Node: Charset, Next: Exception, Prev: Jigdo, Up: Options
9.12 Character sets 9.13 Character sets
=================== ===================
File names are strings of non-zero bytes with 8 bit each. Unfortunately File names are strings of non-zero bytes with 8 bit each. Unfortunately
@ -2528,7 +2560,7 @@ display on your terminal.
 
File: xorriso.info, Node: Exception, Next: DialogCtl, Prev: Charset, Up: Options File: xorriso.info, Node: Exception, Next: DialogCtl, Prev: Charset, Up: Options
9.13 Exception processing 9.14 Exception processing
========================= =========================
Since the tasks of `xorriso' are manifold and prone to external Since the tasks of `xorriso' are manifold and prone to external
@ -2643,7 +2675,7 @@ failed unexpectedly.
 
File: xorriso.info, Node: DialogCtl, Next: Inquiry, Prev: Exception, Up: Options File: xorriso.info, Node: DialogCtl, Next: Inquiry, Prev: Exception, Up: Options
9.14 Dialog mode control 9.15 Dialog mode control
======================== ========================
-dialog "on"|"off"|"single_line" -dialog "on"|"off"|"single_line"
@ -2698,7 +2730,7 @@ File: xorriso.info, Node: DialogCtl, Next: Inquiry, Prev: Exception, Up: Opt
 
File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Options File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Options
9.15 Drive and media related inquiry actions 9.16 Drive and media related inquiry actions
============================================ ============================================
-devices -devices
@ -2796,7 +2828,7 @@ File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Opti
 
File: xorriso.info, Node: Navigate, Next: Verify, Prev: Inquiry, Up: Options File: xorriso.info, Node: Navigate, Next: Verify, Prev: Inquiry, Up: Options
9.16 Navigation in ISO image and disk filesystem 9.17 Navigation in ISO image and disk filesystem
================================================ ================================================
-cd iso_rr_path -cd iso_rr_path
@ -2981,7 +3013,7 @@ File: xorriso.info, Node: Navigate, Next: Verify, Prev: Inquiry, Up: Options
 
File: xorriso.info, Node: Verify, Next: Restore, Prev: Navigate, Up: Options File: xorriso.info, Node: Verify, Next: Restore, Prev: Navigate, Up: Options
9.17 Evaluation of readability and recovery 9.18 Evaluation of readability and recovery
=========================================== ===========================================
It is not uncommon that optical media produce read errors. The reasons It is not uncommon that optical media produce read errors. The reasons
@ -3147,7 +3179,7 @@ transmission errors.
 
File: xorriso.info, Node: Restore, Next: Emulation, Prev: Verify, Up: Options File: xorriso.info, Node: Restore, Next: Emulation, Prev: Verify, Up: Options
9.18 osirrox ISO-to-disk restore options 9.19 osirrox ISO-to-disk restore options
======================================== ========================================
Normally `xorriso' only writes to disk files which were given as stdio: Normally `xorriso' only writes to disk files which were given as stdio:
@ -3280,7 +3312,7 @@ The directory permissions on disk have to allow rwx.
 
File: xorriso.info, Node: Emulation, Next: Scripting, Prev: Restore, Up: Options File: xorriso.info, Node: Emulation, Next: Scripting, Prev: Restore, Up: Options
9.19 Command compatibility emulations (cdrtools) 9.20 Command compatibility emulations (cdrtools)
================================================ ================================================
Writing of ISO 9660 on CD is traditionally done by program mkisofs as Writing of ISO 9660 on CD is traditionally done by program mkisofs as
@ -3458,7 +3490,7 @@ said programs trigger comparable actions.
 
File: xorriso.info, Node: Scripting, Next: Frontend, Prev: Emulation, Up: Options File: xorriso.info, Node: Scripting, Next: Frontend, Prev: Emulation, Up: Options
9.20 Scripting, dialog and program control features 9.21 Scripting, dialog and program control features
=================================================== ===================================================
-no_rc -no_rc
@ -3624,7 +3656,7 @@ File: xorriso.info, Node: Scripting, Next: Frontend, Prev: Emulation, Up: Op
 
File: xorriso.info, Node: Frontend, Next: ExDevices, Prev: Scripting, Up: Options File: xorriso.info, Node: Frontend, Next: ExDevices, Prev: Scripting, Up: Options
9.21 Support for frontend programs via stdin and stdout 9.22 Support for frontend programs via stdin and stdout
======================================================= =======================================================
-pkt_output "on"|"off" -pkt_output "on"|"off"
@ -4355,6 +4387,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -iso_rr_pattern controls pattern expansion: Manip. (line 10) * -iso_rr_pattern controls pattern expansion: Manip. (line 10)
* -jigdo clears JTE or or adds parameter to JTE: Jigdo. (line 33) * -jigdo clears JTE or or adds parameter to JTE: Jigdo. (line 33)
* -joliet enables production of Joliet tree: SetWrite. (line 10) * -joliet enables production of Joliet tree: SetWrite. (line 10)
* -list_arg_sorting prints sorting order of -x: ArgSort. (line 24)
* -list_delimiter replaces '--': Scripting. (line 60) * -list_delimiter replaces '--': Scripting. (line 60)
* -list_extras lists compile time extra features: Scripting. * -list_extras lists compile time extra features: Scripting.
(line 26) (line 26)
@ -4460,6 +4493,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -volid sets volume id: SetWrite. (line 93) * -volid sets volume id: SetWrite. (line 93)
* -volset_id sets volume set id: SetWrite. (line 112) * -volset_id sets volume set id: SetWrite. (line 112)
* -volume_date sets volume timestamp: SetWrite. (line 139) * -volume_date sets volume timestamp: SetWrite. (line 139)
* -x enables automatic execution order of options: ArgSort. (line 16)
* -xattr controls handling of xattr (EA): Loading. (line 150) * -xattr controls handling of xattr (EA): Loading. (line 150)
* -zisofs controls zisofs production: SetWrite. (line 203) * -zisofs controls zisofs production: SetWrite. (line 203)
@ -4481,7 +4515,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* ACL, show in ISO image, -getfacl_r: Navigate. (line 77) * ACL, show in ISO image, -getfacl_r: Navigate. (line 77)
* Appendable media, _definition: Media. (line 38) * Appendable media, _definition: Media. (line 38)
* Appended Filesystem Image, -append_partition: Bootable. (line 199) * Appended Filesystem Image, -append_partition: Bootable. (line 199)
* Backslash Interpretation, _definition: Processing. (line 48) * Automatic execution order, of options, -x: ArgSort. (line 16)
* Backslash Interpretation, _definition: Processing. (line 49)
* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 189) * Backup, enable fast incremental, -disk_dev_ino: Loading. (line 189)
* Backup, enable features, -for_backup: Loading. (line 184) * Backup, enable features, -for_backup: Loading. (line 184)
* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 168) * Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 168)
@ -4593,7 +4628,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* iso_rr_path, _definition: Insert. (line 7) * iso_rr_path, _definition: Insert. (line 7)
* Jigdo Template Extraction, -jigdo: Jigdo. (line 33) * Jigdo Template Extraction, -jigdo: Jigdo. (line 33)
* Jigdo Template Extraction, _definition: Jigdo. (line 6) * Jigdo Template Extraction, _definition: Jigdo. (line 6)
* List delimiter, _definiton: Processing. (line 8) * List delimiter, _definiton: Processing. (line 9)
* MBR, _definiton: Extras. (line 26) * MBR, _definiton: Extras. (line 26)
* MBR, set, -boot_image system_area=: Bootable. (line 121) * MBR, set, -boot_image system_area=: Bootable. (line 121)
* MD5, control handling, -md5: Loading. (line 155) * MD5, control handling, -md5: Loading. (line 155)
@ -4630,7 +4665,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Partition offset, _definiton: Bootable. (line 146) * Partition offset, _definiton: Bootable. (line 146)
* Partition table, _definiton: Bootable. (line 128) * Partition table, _definiton: Bootable. (line 128)
* Pathspec, _definition: SetInsert. (line 120) * Pathspec, _definition: SetInsert. (line 120)
* Pattern expansion, _definition: Processing. (line 22) * Pattern expansion, _definition: Processing. (line 23)
* Pattern expansion, for disk paths, -disk_pattern: Insert. (line 31) * Pattern expansion, for disk paths, -disk_pattern: Insert. (line 31)
* Pattern expansion, for ISO paths, -iso_rr_pattern: Manip. (line 10) * Pattern expansion, for ISO paths, -iso_rr_pattern: Manip. (line 10)
* Permissions, in ISO image, -chmod: Manip. (line 58) * Permissions, in ISO image, -chmod: Manip. (line 58)
@ -4665,7 +4700,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Program, show current settings, -status: Scripting. (line 47) * Program, show current settings, -status: Scripting. (line 47)
* Program, status history, -status_history_max: Scripting. (line 56) * Program, status history, -status_history_max: Scripting. (line 56)
* Program, wait a time span, -sleep: Scripting. (line 114) * Program, wait a time span, -sleep: Scripting. (line 114)
* Quoted input, _definiton: Processing. (line 42) * Quoted input, _definiton: Processing. (line 43)
* Recovery, retrieve blocks, -check_media: Verify. (line 21) * Recovery, retrieve blocks, -check_media: Verify. (line 21)
* Rename, in ISO image, -mv: Manip. (line 35) * Rename, in ISO image, -mv: Manip. (line 35)
* Restore, copy file into disk file, -paste_in: Restore. (line 121) * Restore, copy file into disk file, -paste_in: Restore. (line 121)
@ -4686,6 +4721,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Session, mount command line, -mount_cmd: Inquiry. (line 41) * Session, mount command line, -mount_cmd: Inquiry. (line 41)
* Session, mount parameters, -mount_opts: Inquiry. (line 57) * Session, mount parameters, -mount_opts: Inquiry. (line 57)
* Session, select as input, -load: Loading. (line 11) * Session, select as input, -load: Loading. (line 11)
* Sorting order, for -x, -list_arg_sorting: ArgSort. (line 24)
* SUN Disk Label, production: Bootable. (line 187) * SUN Disk Label, production: Bootable. (line 187)
* SUN SPARC boot images, activation: Bootable. (line 220) * SUN SPARC boot images, activation: Bootable. (line 220)
* System area, _definiton: Bootable. (line 121) * System area, _definiton: Bootable. (line 121)
@ -4737,51 +4773,52 @@ Node: Methods8817
Node: Drives11386 Node: Drives11386
Node: Extras14699 Node: Extras14699
Node: Processing18416 Node: Processing18416
Node: Dialog21886 Node: Dialog21960
Node: Options23549 Node: Options23623
Node: AqDrive25157 Node: ArgSort25292
Node: Loading28194 Node: AqDrive26646
Node: Insert42463 Node: Loading29683
Node: SetInsert52169 Node: Insert43952
Node: Manip60737 Node: SetInsert53658
Node: CmdFind69467 Node: Manip62226
Node: Filter81572 Node: CmdFind70956
Node: Writing85910 Node: Filter83061
Node: SetWrite93911 Node: Writing87399
Node: Bootable108214 Node: SetWrite95400
Node: Jigdo121434 Node: Bootable109705
Node: Charset125680 Node: Jigdo122925
Node: Exception128439 Node: Charset127171
Node: DialogCtl134552 Node: Exception129930
Node: Inquiry137139 Node: DialogCtl136043
Node: Navigate142002 Node: Inquiry138630
Node: Verify150260 Node: Navigate143493
Node: Restore158927 Node: Verify151751
Node: Emulation165832 Node: Restore160418
Node: Scripting175637 Node: Emulation167323
Node: Frontend182802 Node: Scripting177128
Node: Examples184101 Node: Frontend184293
Node: ExDevices185278 Node: Examples185592
Node: ExCreate185937 Node: ExDevices186769
Node: ExDialog187219 Node: ExCreate187428
Node: ExGrowing188482 Node: ExDialog188710
Node: ExModifying189287 Node: ExGrowing189973
Node: ExBootable189790 Node: ExModifying190778
Node: ExCharset190342 Node: ExBootable191281
Node: ExPseudo191162 Node: ExCharset191833
Node: ExCdrecord192060 Node: ExPseudo192653
Node: ExMkisofs192377 Node: ExCdrecord193551
Node: ExGrowisofs193717 Node: ExMkisofs193868
Node: ExException194852 Node: ExGrowisofs195208
Node: ExTime195306 Node: ExException196343
Node: ExIncBackup195765 Node: ExTime196797
Node: ExRestore199751 Node: ExIncBackup197256
Node: ExRecovery200711 Node: ExRestore201242
Node: Files201281 Node: ExRecovery202202
Node: Seealso202579 Node: Files202772
Node: Bugreport203302 Node: Seealso204070
Node: Legal203883 Node: Bugreport204793
Node: CommandIdx204813 Node: Legal205374
Node: ConceptIdx219909 Node: CommandIdx206304
Node: ConceptIdx221546
 
End Tag Table End Tag Table

View File

@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps @c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection @c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
@c man .\" other parameters are allowed: see man(7), man(1) @c man .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISO 1 "Version 1.2.1, Jan 27, 2012" @c man .TH XORRISO 1 "Version 1.2.1, Jan 31, 2012"
@c man .\" Please adjust this date whenever revising the manpage. @c man .\" Please adjust this date whenever revising the manpage.
@c man .\" @c man .\"
@c man .\" Some roff macros, for reference: @c man .\" Some roff macros, for reference:
@ -591,7 +591,10 @@ only on GNU/Linux and FreeBSD, where they are known as extattr.
@c man .B Command processing: @c man .B Command processing:
@c man .br @c man .br
Commands are either actions which happen immediately or settings which Commands are either actions which happen immediately or settings which
influence following actions. So their sequence does matter. influence following actions. So their sequence does matter, unless they are
given as program arguments and option
@strong{-x}
is among them.
@* @*
@cindex List delimiter, _definiton @cindex List delimiter, _definiton
Commands consist of a command word, Commands consist of a command word,
@ -729,6 +732,7 @@ the dashes of the emulated options are mandatory.
Normally any number of leading dashes is ignored with command words and Normally any number of leading dashes is ignored with command words and
inner dashes are interpreted as underscores. inner dashes are interpreted as underscores.
@menu @menu
* ArgSort:: Execution order of program arguments
* AqDrive:: Aquiring source and target drive * AqDrive:: Aquiring source and target drive
* Loading:: Influencing the behavior of image loading * Loading:: Influencing the behavior of image loading
* Insert:: Inserting files into ISO image * Insert:: Inserting files into ISO image
@ -752,7 +756,44 @@ inner dashes are interpreted as underscores.
* Frontend:: Support for frontend programs via stdin and stdout * Frontend:: Support for frontend programs via stdin and stdout
@end menu @end menu
@c man .TP @c man .TP
@node AqDrive, Loading, Options, Options @node ArgSort, AqDrive, Options, Options
@section Execution order of program arguments
@c man .B Execution order of program arguments:
@c man .PP
By default the program arguments of a xorriso run are interpreted as a
sequence of commands which get performed exactly in the given order.
This requires the user to write commands for desired settings before the
commands which shall be influenced by those settings.
@*
Many other programs allow to hand over options as program arguments
in an arbitrary sequence and perform settings and actions in a sequence
of their own discretion. xorriso provides an option to enable such a behavior
at the cost of losing freedom of expression.
@table @asis
@sp 1
@c man .TP
@item -x
@kindex -x enables automatic execution order of options
@cindex Automatic execution order, of options, -x
Enable automatic sorting of program arguments to a sequence that most likely
makes some sense. This command may be given at any position among the commands
which are handed over as program arguments.
@*
It works only if it is given as program argument. I.e. not
in startup files. not with -options_from_file, not in dialog mode.
@c man .TP
@item -list_arg_sorting
@kindex -list_arg_sorting prints sorting order of -x
@cindex Sorting order, for -x, -list_arg_sorting
List all xorriso commands in the order which applies if option -x is in effect.
@*
This list may also be helpful without -x, for a user who ponders over the
sequence in which to put commands. Deviations from the sorting order may
well make sense, though.
@end table
@c man .PP
@c man .TP
@node AqDrive, Loading, ArgSort, Options
@section Aquiring source and target drive @section Aquiring source and target drive
@c man .B Aquiring source and target drive: @c man .B Aquiring source and target drive:
@c man .PP @c man .PP

View File

@ -2,7 +2,7 @@
/* Command line oriented batch and dialog tool which creates, loads, /* Command line oriented batch and dialog tool which creates, loads,
manipulates and burns ISO 9660 filesystem images. manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net> Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
@ -102,6 +102,8 @@ struct XorrisO { /* the global context of xorriso */
char rc_filenames[Xorriso_rc_nuM][SfileadrL]; char rc_filenames[Xorriso_rc_nuM][SfileadrL];
int rc_filename_count; int rc_filename_count;
int arrange_args;
/* Whether .mkisofsrc has already been read */ /* Whether .mkisofsrc has already been read */
int mkisofsrc_done; int mkisofsrc_done;

View File

@ -1 +1 @@
#define Xorriso_timestamP "2012.01.27.155323" #define Xorriso_timestamP "2012.01.31.130405"