New command and -as mkisofs option -genisoimage_completion

This commit is contained in:
Thomas Schmitt 2024-09-02 15:04:06 +02:00
parent 5583a1c7f0
commit 1dd5dca5eb
15 changed files with 549 additions and 149 deletions

View File

@ -377,6 +377,7 @@ isoburn_toc_disc_get_sectors_v2;
isoburn_toc_session_get_sectors_v2;
isoburn_toc_track_get_emul_v2;
Xorriso_option_chattri;
Xorriso_option_genisoimage_completion;
Xorriso_option_lfa_flags;
} LIBISOBURN1;

View File

@ -121,6 +121,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->initial_wdx[0]= 0;
m->no_rc= 0;
m->argument_emulation= 0;
m->genisoimage_completion= 0;
m->current_interpreter= 0;
m->rc_filename_count= Xorriso_rc_nuM;

View File

@ -651,7 +651,9 @@ int Xorriso_genisofs_count_args(struct XorrisO *xorriso, int argc, char **argv,
"-appended_part_as_gpt", "-appended_part_as_apm", "--mbr-force-bootable",
"--gpt-iso-bootable", "--gpt-iso-not-ro",
"-part_like_isohybrid", "--zisofs-version-2", "--zisofs2-susp-z2",
"--zisofs2-susp-zf",
"--zisofs2-susp-zf", "-dvd-audio", "-dvd-hybrid", "-long-rr-time",
"-no-long-rr-time", "-short-rr-time", "-ignore-error", "-data-change-warn",
"-genisoimage_completion",
""
};
static char arg1_options[][41]= {
@ -693,6 +695,8 @@ int Xorriso_genisofs_count_args(struct XorrisO *xorriso, int argc, char **argv,
"--grub2-sparc-core", "--sort-weight-list", "--sort-weight-patterns",
"-hppa-hdrversion", "-file_name_limit", "--set_all_file_dates",
"--gpt_disk_guid", "-iso_mbr_part_type", "-eltorito-platform",
"-modification-date", "-N", "-omit-version-number", "-new-dir-mode",
"-nobak", "-no-bak", "-no-limit-pathtables", "", "",
""
};
static char arg2_options[][41]= {
@ -785,16 +789,132 @@ no_volunteer:;
}
int Xorriso_genisofs_add_boot(struct XorrisO *xorriso, int flag)
/* Try to match unrecognized options as start piece of original
genisoimage options. But not the cdrecord or xorrisofs options which are
not supported by genisoimage. (cdrecord does no option completion.)
@param flag bit0= do not issue error messages
*/
int Xorriso_genisomage_opt_completion(struct XorrisO *xorriso, char *option,
const char **found, int flag)
{
int ret;
static char genisoimage_options[][41]= {
"-abstract", "-A", "-appid", "-allow-leading-dots", "-ldots",
"-allow-lowercase", "-allow-multidot", "-biblio", "-cache-inodes",
"-no-cache-inodes", "-b", "-eltorito-boot", "-eltorito-alt-boot",
"-B", "-sparc-boot", "-G",
"-hard-disk-boot", "-no-emul-boot", "-no-boot",
"-boot-load-seg", "-boot-load-size", "-boot-info-table", "-C",
"-cdrecord-params", "-c", "-eltorito-catalog", "-check-oldnames",
"-check-session", "-copyright", "-d", "-omit-period", "-D",
"-disable-deep-relocation", "-data-change-warn", "-debug",
"-dir-mode", "-dvd-video", "-f",
"-follow-links", "-file-mode", "-gid", "-gui", "-graft-points",
"-hide", "-hide-list", "-hidden", "-hidden-list", "-hide-joliet",
"-hide-joliet-list", "-hide-joliet-trans-tbl", "-hide-rr-moved",
"-input-charset", "-output-charset",
"-iso-level", "-J", "-joliet-long", "-jcharset", "-l",
"-full-iso9660-filenames", "-L", "-log-file", "-m",
"-exclude-list", "-max-iso9660-filenames", "-M", "-dev",
"-N", "-omit-version-number", "-new-dir-mode",
"-nobak", "-no-bak",
"-force-rr", "-no-rr", "-no-split-symlink-components",
"-no-split-symlink-fields", "-o", "-pad", "-no-pad", "-path-list", "-P",
"-publisher", "-p", "-preparer",
"-print-size", "-quiet", "-R", "-rock",
"-r", "-rational-rock", "-relaxed-filenames", "-root",
"-old-root", "-s", "-sectype", "-sort",
"-sparc-label", "-split-output", "-stream-media-size", "-stream-file-name",
"-sunx86-boot", "-sunx86-label", "-sysid", "-T", "-translation-table",
"-transparent-compression", "-table-name", "-ucs-level", "-udf",
"-uid", "-use-fileversion", "-U",
"-untranslated-filenames", "-no-iso-translate", "-V", "-volset",
"-volset-size", "-volset-seqno", "-v", "-verbose", "-x", "-XA", "-xa",
"-z", "-hfs", "-apple", "-map", "-magic",
"-hfs-creator", "-hfs-type", "-probe", "-no-desktop", "-mac-name",
"-boot-hfs-file", "-part", "-auto", "-cluster-size", "-hide-hfs",
"-hide-hfs-list", "-hfs-volid", "-icon-position", "-root-info",
"-prep-boot", "-chrp-t", "-input-hfs-charset", "-output-hfs-charset",
"-hfs-unlock", "-hfs-bless", "-hfs-parms", "--cap", "--netatalk",
"--double", "--ethershare", "--ushare", "--exchange", "--sgi", "--xinet",
"--macbin", "--single", "--dave", "--sfm", "--osx-double", "--osx-hfs",
"-alpha-boot", "-hppa-bootloader", "-hppa-cmdline", "-hppa-kernel-32",
"-hppa-kernel-64", "-hppa-ramdisk", "-mips-boot", "-mipsel-boot",
"-jigdo-jigdo", "-jigdo-template", "-jigdo-min-file-size",
"-jigdo-force-md5", "-jigdo-exclude", "-jigdo-map", "-md5-list",
"-jigdo-template-compress", "-chrp-boot", "-checksum_algorithm_template",
"-checksum_algorithm_iso",
""
};
int i, j, l, count= 0;
char *opt, *orig_opt;
if(xorriso->boot_img_size_default && xorriso->boot_image_emul == 0)
xorriso->boot_img_full_size= 1;
ret= Xorriso_attach_boot_image(xorriso, 0);
if(ret <= 0)
xorriso->boot_image_bin_path[0]= 0;
return(ret);
/* search in genisoimage_options, ignoring leading dashes,
count and memorize matches */;
*found= "";
for(j= 0; option[j] != 0; j++)
if(option[j] != '-')
break;
opt= option + j;
l= strlen(opt);
if(l == 0)
goto failure;
for(i= 0; genisoimage_options[i][0] != 0; i++) {
for(j= 0; genisoimage_options[i][j] != 0; j++)
if(genisoimage_options[i][j] != '-')
break;
orig_opt= genisoimage_options[i] + j;
if(strncmp(opt, orig_opt, l) == 0) {
count++;
*found= genisoimage_options[i];
}
}
if(count == 1) {
return(1);
} else if(count == 0) {
*found= option;
if(flag & 1)
goto failure;
sprintf(xorriso->info_text,
"No completion candidate for unrecognized option: %s", option);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
} else {
*found= option;
if(flag & 1)
goto failure;
sprintf(xorriso->info_text,
"Too many candidates for unrecognized option: %s", option);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
sprintf(xorriso->info_text, "List of genisoimage completion candidates:\n");
Xorriso_info(xorriso, 1 | 2);
/* List all candidates */
strcpy(xorriso->info_text, " ");
for(i= 0; genisoimage_options[i][0] != 0; i++) {
for(j= 0; genisoimage_options[i][j] != 0; j++)
if(genisoimage_options[i][j] != '-')
break;
orig_opt= genisoimage_options[i] + j;
if(strncmp(opt, orig_opt, l) == 0) {
if(strlen(xorriso->info_text) + strlen(genisoimage_options[i] + 3)
> 72) {
strcat(xorriso->info_text, "\n");
Xorriso_info(xorriso, 1 | 2);
strcpy(xorriso->info_text, " ");
strcat(xorriso->info_text, genisoimage_options[i]);
} else {
if(strlen(xorriso->info_text) > 4)
strcat(xorriso->info_text, " , ");
strcat(xorriso->info_text, genisoimage_options[i]);
}
}
}
strcat(xorriso->info_text, "\n");
Xorriso_info(xorriso, 1 | 2);
}
failure:;
*found= option;
return(0);
}
@ -862,6 +982,7 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag)
" --quoted_path_list FILE File with list of quoted pathnames to process",
" -print-size Print estimated filesystem size and exit",
" -quiet Run quietly",
" -genisoimage_completion Enable completion of genisoimage options",
" -gui Switch behaviour for GUI",
" -R, -rock Generate Rock Ridge directory information",
" -r, -rational-rock Generate rationalized Rock Ridge directory information",
@ -1125,8 +1246,9 @@ int Xorriso_genisofs_strip_dash(struct XorrisO *xorriso, char *arg_in,
/* Interprets a string of single-char options which have no parameters
@param flag bit0=check whether string is ok
bit1=this is pass 1
@param flag bit0= check whether string is ok
bit1= this is pass 1
bit2= do not issue error messages
@return with flag bit0: 0=no , 1=yes, 2= with bit1: non-pass-1 options seen
else : 1 = ok , <= 0 indicates error
*/
@ -1207,6 +1329,8 @@ int Xorriso_genisofs_fused_options(struct XorrisO *xorriso, char *whom,
continue;
Xorriso_option_zisofs(xorriso, "by_magic=on", 0);
} else {
if(flag & 4)
{ret= 0; goto ex;}
sprintf(xorriso->info_text, "-as %s: Unsupported option -%c", whom, *cpt);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
ret= 0; goto ex;
@ -1218,6 +1342,72 @@ ex:;
}
/*
@param flag bit0= do not issue error messages
@return <=0= error ,
1= known option , 2= fused options , 3= completed option
4= completion is not enabled
*/
int Xorriso_genisofs_eff_opt(struct XorrisO *xorriso, char *whom, char *option,
const char **found, int flag)
{
int ret, count,dummy;
char *argv[1], ra_text[80];
*found= option;
if(!xorriso->genisoimage_completion)
return(4);
/* Check whether option is known */
argv[0]= option;
ret= Xorriso_genisofs_count_args(xorriso, 1, argv, &count, 0);
if(ret > 0) {
*found= option;
return(1);
}
/* Xorriso_genisofs_fused_options() shall take over if all letters in the
unknown option are single-letter options without parameter.
genisoimage interprets known single letter options as fused,
eats further arguments if these options expect parameters,
and then tries completion with the rest.
cdrecord interprets known single letter options as fused only
if they do not expect parameters (like -m or -o). No options completion
happens.
*/
ret= Xorriso_genisofs_fused_options(xorriso, whom, option,
&dummy, &dummy, &dummy, ra_text,
((flag & 1) << 2) | 1);
if(ret > 0) {
*found= option;
return(2);
}
/* If not known: try to get it by completion of original mkisofs and
genisoimage options
*/
ret= Xorriso_genisomage_opt_completion(xorriso, option, found, flag & 1);
if(ret > 0)
return(3);
return(0);
}
int Xorriso_genisofs_add_boot(struct XorrisO *xorriso, int flag)
{
int ret;
if(xorriso->boot_img_size_default && xorriso->boot_image_emul == 0)
xorriso->boot_img_full_size= 1;
ret= Xorriso_attach_boot_image(xorriso, 0);
if(ret <= 0)
xorriso->boot_image_bin_path[0]= 0;
return(ret);
}
/* Implementing mkisofs tendency to map single-path pathspecs to / */
int Xorriso_graftable_pathspec(struct XorrisO *xorriso, char *in_pathspec,
char *pathspec, int flag)
@ -1372,7 +1562,7 @@ wrong_id:;
}
/* micro emulation of mkisofs */
/* mini emulation of mkisofs */
int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
int argc, char **argv, int flag)
{
@ -1381,7 +1571,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
int was_failure= 0, fret, lower_r= 0, zero= 0;
int dir_mode= -1, file_mode= -1, count, partition_number;
int allow_dir_id_ext= -1, mem_current_interpreter;
int root_seen= 0, do_md5_mem, option_d= 0, arg_count;
int root_seen= 0, do_md5_mem, option_d= 0, arg_count, dummy;
mode_t mode_and, mode_or;
int with_boot_image= 0, with_cat_path= 0, with_emul_toc= 0;
int old_root_md5= 1, old_root_dev= 0, old_root_ino= 1, sort_file_pattern= 0;
@ -1393,7 +1583,8 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
char *old_root= NULL, *argpt, *hargv[1];
char *boot_path, partno_text[24], *iso_rr_pt, *disk_pt, *rpt, *wpt;
char *rm_merge_args[3], *rr_reloc_dir_pt= NULL;
char *sort_weight_args[4], *bless_args[6], *sa_path;
char *sort_weight_args[4], *bless_args[6], *sa_path, dummy_text[80];
const char *eff_option;
struct stat stbuf;
@ -1409,8 +1600,27 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
Xorriso_alloc_meM(sort_file, char, SfileadrL);
for(i= 0; i<argc; i++) {
if(strcmp(argv[i], "-log-file") == 0 ||
strcmp(argv[i], "--log-file") == 0 ) {
if(argv[i][0] != '-')
continue;
ret= Xorriso_genisofs_eff_opt(xorriso, whom, argv[i], &eff_option, 0);
if(ret <= 0) {
was_failure= 1;
fret= Xorriso_eval_problem_status(xorriso, ret, 1 | 2);
if(fret < 0)
{ret= 0; goto ex;}
continue;
} else if(strcmp(argv[i], eff_option) != 0) {
sprintf(xorriso->info_text,
"-as %s option %s completed to: %s", whom, argv[i], eff_option);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0);
}
argpt= (char *) eff_option;
if(strcmp(eff_option, "-genisoimage_completion") == 0 ||
strcmp(eff_option, "--genisoimage_completion") == 0) {
xorriso->genisoimage_completion= 1;
} else if(strcmp(eff_option, "-log-file") == 0 ||
strcmp(eff_option, "--log-file") == 0) {
if(i + 1 >= argc)
goto not_enough_args;
i+= 1;
@ -1434,6 +1644,21 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
sprintf(xorriso->info_text, "Revoked stderr message redirection");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
}
} else {
if(argv[i][0] == '-') {
if(strcmp(argpt, argv[i]) == 0) {
ret= Xorriso_genisofs_fused_options(xorriso, whom, argv[i] + 1,
&dummy, &dummy, &dummy, dummy_text, 1);
} else {
ret= 0;
}
if(ret <= 0) {
hargv[0]= argv[i];
ret= Xorriso_genisofs_count_args(xorriso, 1, hargv, &count, 1);
if(ret > 0)
i+= count; /* skip eventual arguments of known option */
}
}
}
}
@ -1455,7 +1680,8 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
with_cat_path= -1;
adr[0]= indev[0]= msc[0]= old_root[0]= sort_file[0]= 0;
for(i= 0; i<argc; i++) {
ret= Xorriso_genisofs_strip_dash(xorriso, argv[i], &argpt, 0);
Xorriso_genisofs_eff_opt(xorriso, whom, argv[i], &eff_option, 1);
ret= Xorriso_genisofs_strip_dash(xorriso, (char *) eff_option, &argpt, 0);
if(ret <= 0)
goto ex;
ret= Xorriso_genisofs_ignore(xorriso, whom, argpt, &i, 1);
@ -1463,7 +1689,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
continue;
if(strcmp(argpt, "-version")==0) {
sprintf(xorriso->result_line,
"mkisofs 2.01-Emulation Copyright (C) 2019 see libburnia-project.org xorriso\n"
"mkisofs 2.01-Emulation Copyright (C) 2024 see libburnia-project.org xorriso\n"
);
fd= xorriso->dev_fd_1;
if(fd<0)
@ -1673,7 +1899,8 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
i++;
Xorriso_option_file_name_limit(xorriso, argv[i], 0);
} else {
if(argv[i][0] == '-') {
if(argv[i][0] == '-' && strcmp(argv[i], argpt) == 0) {
/* Was not an incomplete genisoimage option */
ret= Xorriso_genisofs_fused_options(xorriso, whom, argv[i] + 1,
&option_d, &iso_level, &lower_r, ra_text, 1 | 2);
if(ret != 1)
@ -1805,7 +2032,8 @@ illegal_c:;
sprintf(xorriso->info_text, "-as %s: %s",
whom, Text_shellsafe(argv[i], sfe, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0);
ret= Xorriso_genisofs_strip_dash(xorriso, argv[i], &argpt, 0);
Xorriso_genisofs_eff_opt(xorriso, whom, argv[i], &eff_option, 1);
ret= Xorriso_genisofs_strip_dash(xorriso, (char *) eff_option, &argpt, 0);
if(ret <= 0)
goto ex;
ret= Xorriso_genisofs_ignore(xorriso, whom, argpt, &i, 0);
@ -1850,8 +2078,6 @@ illegal_c:;
goto not_enough_args;
/* Memorize command until all pathspecs are processed */
delay_opt_list[delay_opt_count++]= i;
if(argv[i] != argpt)
delay_opt_list[delay_opt_count - 1]|= 1u<<31;
i+= arg_count;
} else if(strcmp(argpt, "-hfsplus") == 0) {
/* was already handled in first argument scan */;
@ -1885,7 +2111,7 @@ illegal_c:;
if(i+1>=argc) {
not_enough_args:;
sprintf(xorriso->info_text, "-as %s: Not enough arguments to option %s",
whom, argv[i]);
whom, argpt);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
ret= 0; goto ex;
}
@ -2006,8 +2232,6 @@ not_enough_args:;
strcmp(argpt, "-isohybrid-apm-hfsplus")==0 ||
strcmp(argpt, "-part_like_isohybrid")==0) {
delay_opt_list[delay_opt_count++]= i;
if(argv[i] != argpt)
delay_opt_list[delay_opt_count - 1]|= 1u<<31;
} else if(strcmp(argpt, "-b") == 0 ||
strcmp(argpt, "-eltorito-boot") == 0 ||
strcmp(argpt, "-eltorito-platform") == 0 ||
@ -2036,16 +2260,12 @@ not_enough_args:;
if(i+1>=argc)
goto not_enough_args;
delay_opt_list[delay_opt_count++]= i;
if(argv[i] != argpt)
delay_opt_list[delay_opt_count - 1]|= 1u<<31;
i++;
} else if(strcmp(argpt, "-hide_iso_path") == 0) {
if(i + 2 >= argc)
goto not_enough_args;
delay_opt_list[delay_opt_count++]= i;
if(argv[i] != argpt)
delay_opt_list[delay_opt_count - 1]|= 1u<<31;
i+= 2;
} else if(strncmp(argpt, "--modification-date=", 20)==0) {
@ -2375,9 +2595,17 @@ rr_reloc_dir:;
if(ret <= 0)
goto problem_handler_2;
} else if(argpt[0]=='-' && argpt[1]!=0) {
ret= Xorriso_genisofs_fused_options(xorriso, whom, argv[i] + 1,
} else if(strcmp(eff_option, "-genisoimage_completion") == 0) {
/* was already handled before this loop */;
} else if(argpt[0]=='-') {
if(strcmp(argpt, argv[i]) == 0) {
/* Was not an incomplete genisoimage option */
ret= Xorriso_genisofs_fused_options(xorriso, whom, argv[i] + 1,
&option_d, &iso_level, &lower_r, ra_text, 1);
} else {
ret= 0;
}
if(ret == 1) {
ret= Xorriso_genisofs_fused_options(xorriso, whom, argv[i] + 1,
&option_d, &iso_level, &lower_r, ra_text, 0);
@ -2538,11 +2766,11 @@ problem_handler_2:;
/* After all pathspecs are added: perform delayed options, mostly boot related
*/
for(j= 0; j < delay_opt_count; j++) {
i= delay_opt_list[j] & ~(1u << 31);
if(delay_opt_list[j] & (1u << 31))
argpt= argv[i] + 1;
else
argpt= argv[i];
i= delay_opt_list[j];
Xorriso_genisofs_eff_opt(xorriso, whom, argv[i], &eff_option, 1);
ret= Xorriso_genisofs_strip_dash(xorriso, (char *) eff_option, &argpt, 0);
if(ret <= 0)
goto ex;
if(strcmp(argpt, "-no-emul-boot")==0) {
xorriso->boot_image_emul= 0;
xorriso->boot_emul_default= 0;

View File

@ -1680,6 +1680,25 @@ int Xorriso_option_fs(struct XorrisO *xorriso, char *size, int flag)
}
/* Command -genisoimage_completion */
int Xorriso_option_genisoimage_completion(struct XorrisO *xorriso,
char *mode, int flag)
{
if(strcmp(mode, "on") == 0) {
xorriso->genisoimage_completion= 1;
} else if(strcmp(mode, "off") == 0) {
xorriso->genisoimage_completion= 0;
} else {
sprintf(xorriso->info_text, "-genisoimage_completion: unknown mode '%s'",
mode);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
return(0);
}
return(1);
}
/* Commands -getfacl alias -getfacli, -getfacl_r alias -getfacl_ri
-getfattr alias getfattri
*/
@ -2516,6 +2535,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" For a list of options see -as mkisofs -help.",
" -read_mkisofsrc",
" Read and interpret the .mkisofsrc configuration file.",
" -genisoimage_completion \"on\"|\"off\"",
" Enable completion of genisoimage options during -as mkisofs.",
" -as cdrecord [-help|-v|dev=|speed=|blank=|fs=|-eject|-atip|padsize=|-multi]",
" path|-",
" Perform some cdrecord gestures, eventually write at most one",

View File

@ -590,7 +590,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
"drive_access","dummy","dvd_obs","early_stdio_test","ecma119_map","eject",
"extract_boot_images",
"iso_nowtime","iso_rr_pattern","file_name_limit","follow","format","fs",
"gid","grow_blindly","hardlinks",
"genisoimage_completion", "gid", "grow_blindly", "hardlinks",
"hfsplus","history","indev","in_charset","joliet","joliet_map",
"lfa_flags",
"list_delimiter","list_extras","list_profiles","local_charset",
@ -1449,6 +1449,10 @@ next_command:;
(*idx)++;
ret= Xorriso_option_fs(xorriso, arg1, 0);
} else if(strcmp(cmd, "genisoimage_completion")==0) {
(*idx)++;
ret= Xorriso_option_genisoimage_completion(xorriso, arg1, 0);
} else if(strcmp(cmd,"getfacl")==0 || strcmp(cmd,"getfacli")==0) {
ret= Xorriso_option_getfacli(xorriso, argc, argv, idx, 0);

View File

@ -3930,6 +3930,12 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
strcat(line, "\n");
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->genisoimage_completion == 0);
sprintf(line, "-genisoimage_completion %s\n",
xorriso->genisoimage_completion ? "on" : "off");
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso, filter, fp, flag & 2);
is_default= 1;
if(xorriso->drive_blacklist != NULL || xorriso->drive_whitelist != NULL ||

View File

@ -9,7 +9,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 "Version 1.5.7, Aug 28, 2024"
.TH XORRISO 1 "Version 1.5.7, Aug 31, 2024"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -5936,6 +5936,26 @@ VOLI (\-volid) , VOLS (\-volset_id)
.br
Any other lines will be silently ignored.
.TP
\fB\-genisoimage_completion\fR "on"|"off"
Enable or disable the completion of genisoimage options during \-as mkisofs
emulation.
.br
If enabled by "on", then unrecognized option arguments which begin by
a dash '\-' get compared against the known genisoimage options, like program
genisoimage does unconditionally (and undocumentedly). If the given argument
matches the beginning of exactly one genisoimage option, then it gets replaced
by that option.
Option arguments which consist entirely of a leading dash and letters out of
"dDfJlNRrTUvz" are not matched but rather interpreted as usual, i.e. as
multiple options with leading dash and each single letter.
If no genisoimage option is found or more than one are found, then a SORRY
message is issued and the argument stays as is.
.br
If disabled by "off", no completion of options happens. Like with enabled
completion, option arguments which consist entirely of letters out of
"dDfJlNRrTUvz" are not matched but rather interpreted as multiple
arguments with leading dash and each single letter.
.TP
\fB\-pacifier\fR behavior_code
Control behavior of UPDATE pacifiers during write operations.
The following behavior codes are defined:

View File

@ -1643,6 +1643,11 @@ int Xorriso_option_follow(struct XorrisO *xorriso, char *mode, int flag);
/* @since 0.1.0 */
int Xorriso_option_fs(struct XorrisO *xorriso, char *size, int flag);
/* Command -genisoimage_completion */
/* @since 1.5.8 */
int Xorriso_option_genisoimage_completion(struct XorrisO *xorriso,
char *mode, int flag);
/* Commands -getfacl alias -getfacli, -getfacl_r alias -getfacl_ri
-getfattr alias getfattri
*/

View File

@ -4991,6 +4991,24 @@ said programs trigger comparable actions.
APPI (-application_id) , PUBL (-publisher) , SYSI (-system_id) ,
VOLI (-volid) , VOLS (-volset_id)
Any other lines will be silently ignored.
-genisoimage_completion "on"|"off"
Enable or disable the completion of genisoimage options during -as
mkisofs emulation.
If enabled by "on", then unrecognized option arguments which begin
by a dash '-' get compared against the known genisoimage options,
like program genisoimage does unconditionally (and undocumentedly).
If the given argument matches the beginning of exactly one
genisoimage option, then it gets replaced by that option. Option
arguments which consist entirely of a leading dash and letters out
of "dDfJlNRrTUvz" are not matched but rather interpreted as usual,
i.e. as multiple options with leading dash and each single letter.
If no genisoimage option is found or more than one are found, then
a SORRY message is issued and the argument stays as is.
If disabled by "off", no completion of options happens. Like with
enabled completion, option arguments which consist entirely of
letters out of "dDfJlNRrTUvz" are not matched but rather
interpreted as multiple arguments with leading dash and each single
letter.
-pacifier behavior_code
Control behavior of UPDATE pacifiers during write operations. The
following behavior codes are defined:
@ -6086,6 +6104,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -format formats media: Writing. (line 87)
* -for_backup acl,xattr,hardlinks,md5,lfa_flags: Loading. (line 304)
* -fs sets size of fifo: SetWrite. (line 500)
* -genisoimage_completion completion of genisoimage options: Emulation.
(line 166)
* -getfacl shows ACL in ISO image: Navigate. (line 60)
* -getfacl_r shows ACL in ISO image: Navigate. (line 66)
* -getfattr shows xattr in ISO image: Navigate. (line 69)
@ -6152,7 +6172,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -outdev acquires a drive for output: AqDrive. (line 29)
* -out_charset sets output character set: SetWrite. (line 306)
* -overwrite enables overwriting in ISO: SetInsert. (line 140)
* -pacifier controls pacifier text form: Emulation. (line 166)
* -pacifier controls pacifier text form: Emulation. (line 184)
* -padding sets amount or mode of image padding: SetWrite. (line 528)
* -page set terminal geometry: DialogCtl. (line 18)
* -paste_in copies file into disk file: Restore. (line 142)
@ -6191,7 +6211,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -rollback_end ends program without writing: Scripting. (line 156)
* -rom_toc_scan searches for sessions: Loading. (line 408)
* -rr_reloc_dir sets name of relocation directory: SetWrite. (line 171)
* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 179)
* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 197)
* -scsi_dev_family choose Linux device file type: AqDrive. (line 95)
* -scsi_log reports SCSI commands: Scripting. (line 145)
* -session_log logs written sessions: Scripting. (line 136)
@ -6269,7 +6289,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Backslash Interpretation, _definition: Processing. (line 57)
* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 356)
* Backup, enable features, -for_backup: Loading. (line 304)
* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 179)
* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 197)
* Blank media, _definition: Media. (line 34)
* Blank, format, Immed bit, -use_immed_bit: SetWrite. (line 478)
* Blind growing, _definition: Methods. (line 41)
@ -6328,7 +6348,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Emulation, .mkisofsrc, -read_mkisofsrc: Emulation. (line 155)
* Emulation, cdrecord, -as: Emulation. (line 120)
* Emulation, mkisofs, -as: Emulation. (line 17)
* Emulation, pacifier form, -pacifier: Emulation. (line 166)
* Emulation, options completion, -genisoimage_completion: Emulation.
(line 166)
* Emulation, pacifier form, -pacifier: Emulation. (line 184)
* Examples: Examples. (line 6)
* extattr, _definition: Extras. (line 66)
* File content, copy, -concat: Restore. (line 148)
@ -6612,31 +6634,31 @@ Node: Navigate230200
Node: Verify241417
Node: Restore252566
Node: Emulation264773
Node: Scripting275229
Node: Frontend283123
Node: Examples292749
Node: ExDevices293927
Node: ExCreate294588
Node: ExDialog295888
Node: ExGrowing297159
Node: ExModifying297968
Node: ExBootable298478
Node: ExCharset299033
Node: ExPseudo299929
Node: ExCdrecord300856
Node: ExMkisofs301176
Node: ExGrowisofs303073
Node: ExException304226
Node: ExTime304684
Node: ExIncBackup305142
Node: ExRestore309168
Node: ExRecovery310114
Node: Files310686
Node: Environ312020
Node: Seealso312768
Node: Bugreport313532
Node: Legal314123
Node: CommandIdx315135
Node: ConceptIdx333464
Node: Scripting276349
Node: Frontend284243
Node: Examples293869
Node: ExDevices295047
Node: ExCreate295708
Node: ExDialog297008
Node: ExGrowing298279
Node: ExModifying299088
Node: ExBootable299598
Node: ExCharset300153
Node: ExPseudo301049
Node: ExCdrecord301976
Node: ExMkisofs302296
Node: ExGrowisofs304193
Node: ExException305346
Node: ExTime305804
Node: ExIncBackup306262
Node: ExRestore310288
Node: ExRecovery311234
Node: Files311806
Node: Environ313140
Node: Seealso313888
Node: Bugreport314652
Node: Legal315243
Node: CommandIdx316255
Node: ConceptIdx334729

End Tag Table

View File

@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps
@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 .TH XORRISO 1 "Version 1.5.7, Aug 28, 2024"
@c man .TH XORRISO 1 "Version 1.5.7, Aug 31, 2024"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -6738,6 +6738,28 @@ VOLI (-volid) , VOLS (-volset_id)
@*
Any other lines will be silently ignored.
@c man .TP
@item -genisoimage_completion "on"|"off"
@kindex -genisoimage_completion completion of genisoimage options
@cindex Emulation, options completion, -genisoimage_completion
Enable or disable the completion of genisoimage options during -as mkisofs
emulation.
@*
If enabled by "on", then unrecognized option arguments which begin by
a dash '-' get compared against the known genisoimage options, like program
genisoimage does unconditionally (and undocumentedly). If the given argument
matches the beginning of exactly one genisoimage option, then it gets replaced
by that option.
Option arguments which consist entirely of a leading dash and letters out of
"dDfJlNRrTUvz" are not matched but rather interpreted as usual, i.e. as
multiple options with leading dash and each single letter.
If no genisoimage option is found or more than one are found, then a SORRY
message is issued and the argument stays as is.
@*
If disabled by "off", no completion of options happens. Like with enabled
completion, option arguments which consist entirely of letters out of
"dDfJlNRrTUvz" are not matched but rather interpreted as multiple
arguments with leading dash and each single letter.
@c man .TP
@item -pacifier behavior_code
@kindex -pacifier controls pacifier text form
@cindex Emulation, pacifier form, -pacifier

View File

@ -107,6 +107,11 @@ struct XorrisO { /* the global context of xorriso */
*/
int argument_emulation;
/* Whether to try completion of unrecognized options to known genisoimage
options. 0=no, 1=yes.
*/
int genisoimage_completion;
/* Under which interpreter the current activities are running:
0=xorriso mode : Xorriso_interpreter()
1=mkisofs mode : Xorriso_genisofs()

View File

@ -1 +1 @@
#define Xorriso_timestamP "2024.09.01.071910"
#define Xorriso_timestamP "2024.09.02.130343"

View File

@ -9,7 +9,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 XORRISOFS 1 "Version 1.5.7, Jul 21, 2024"
.TH XORRISOFS 1 "Version 1.5.7, Aug 30, 2024"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -677,7 +677,7 @@ Alias of \-rr_reloc_dir "/.rr_moved"
Enable all options which improve backup fidelity:
.br
\-\-acl, \-\-xattr\-any, \-\-md5,
\-\-hardlinks, \-\-lfa_flags.
\-\-hardlinks, and possibly \-\-lfa_flags.
.br
If you later restore a backup with xattr from non\-user namespaces, then make
sure that the target operating system and filesystem know what these attributes
@ -687,6 +687,10 @@ privileges and just record what is readable.
.br
Option \-\-xattr after option \-\-for_backup excludes
non\-user attributes from being recorded.
.br
Option \-\-for_backup enables \-\-lfa_flags only if
the underlying libisofs was compiled with support for Linux file attributes,
which is typically not the case on non\-Linux systems.
.TP
\fB--acl\fR
.br
@ -1717,6 +1721,25 @@ The rules for list_of_names are the same as with \-checksum_algorithm_iso.
.TP
.B Miscellaneous options:
.TP
\fB\-genisoimage_completion\fR
Match unrecognized option arguments which begin by a dash '\-' against the
known genisoimage options, like program
genisoimage does unconditionally (and undocumentedly). If the given argument
matches the beginning of exactly one genisoimage option, then it gets replaced
by that option. Options which are genuine to mkisofs or xorriso's mkisofs
emulation are not matched that way.
Option arguments which consist entirely of a leading dash and letters out of
"dDfJlNRrTUvz" are not matched but rather interpreted as usual, i.e. as
multiple options with leading dash and each single letter.
If no genisoimage option is found or more than one are found, then a SORRY
message is issued and the argument stays as is.
.br
To enable this mode by default, write the xorriso command
.br
\-genisoimage_completion on
.br
into one of the xorriso start files. See section FILES.
.TP
\fB\-print-size\fR
Print to stdandard output the foreseeable number of 2048 byte blocks in
the emerging ISO image. Do not produce this image.

View File

@ -3,7 +3,7 @@ xorrisofs.texi.
xorrisofs - Emulation of ISO 9660 program mkisofs by program xorriso
Copyright (C) 2011 - 2023 Thomas Schmitt
Copyright (C) 2011 - 2024 Thomas Schmitt
Permission is granted to distribute this text freely.
INFO-DIR-SECTION Archiving
@ -614,7 +614,7 @@ File: xorrisofs.info, Node: SetExtras, Next: SetHide, Prev: SetCompl, Up: Op
Alias of -rr_reloc_dir "/.rr_moved"
--for_backup
Enable all options which improve backup fidelity:
--acl, --xattr-any, --md5, --hardlinks, --lfa_flags.
--acl, --xattr-any, --md5, --hardlinks, and possibly --lfa_flags.
If you later restore a backup with xattr from non-user namespaces,
then make sure that the target operating system and filesystem know
what these attributes mean. Possibly you will need administrator
@ -623,6 +623,9 @@ File: xorrisofs.info, Node: SetExtras, Next: SetHide, Prev: SetCompl, Up: Op
record what is readable.
Option --xattr after option --for_backup excludes non-user
attributes from being recorded.
Option --for_backup enables --lfa_flags only if the underlying
libisofs was compiled with support for Linux file attributes, which
is typically not the case on non-Linux systems.
--acl
Enable recording and loading of ACLs from GNU/Linux or FreeBSD (see
@ -1497,6 +1500,21 @@ File: xorrisofs.info, Node: Miscellaneous, Next: ExSimple, Prev: Jigdo, Up:
==========================
-genisoimage_completion
Match unrecognized option arguments which begin by a dash '-'
against the known genisoimage options, like program genisoimage
does unconditionally (and undocumentedly). If the given argument
matches the beginning of exactly one genisoimage option, then it
gets replaced by that option. Options which are genuine to mkisofs
or xorriso's mkisofs emulation are not matched that way. Option
arguments which consist entirely of a leading dash and letters out
of "dDfJlNRrTUvz" are not matched but rather interpreted as usual,
i.e. as multiple options with leading dash and each single letter.
If no genisoimage option is found or more than one are found, then
a SORRY message is issued and the argument stays as is.
To enable this mode by default, write the xorriso command
-genisoimage_completion on
into one of the xorriso start files. See section FILES.
-print-size
Print to stdandard output the foreseeable number of 2048 byte
blocks in the emerging ISO image. Do not produce this image.
@ -2047,7 +2065,7 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
[index]
* Menu:
* --acl Recording of ACLs: SetExtras. (line 103)
* --acl Recording of ACLs: SetExtras. (line 106)
* --application_use set Application Use field: ImageId. (line 79)
* --boot-catalog-hide Hide El Torito boot catalog: Bootable. (line 121)
* --efi-boot El Torito EFI boot image: Bootable. (line 59)
@ -2061,15 +2079,15 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* --grub2-boot-info Patch El Torito boot image: Bootable. (line 109)
* --grub2-mbr Install modern GRUB2 MBR: SystemArea. (line 81)
* --grub2-sparc-core SUN SPARC core file: SystemArea. (line 325)
* --hardlinks Recording of hardlink relations: SetExtras. (line 139)
* --lfa_flags Recording of Linux file attributes: SetExtras. (line 122)
* --hardlinks Recording of hardlink relations: SetExtras. (line 142)
* --lfa_flags Recording of Linux file attributes: SetExtras. (line 125)
* --mbr-force-bootable Enforce MBR bootable/active flag: SystemArea.
(line 148)
* --md5 Recording of MD5 checksums: SetExtras. (line 131)
* --md5 Recording of MD5 checksums: SetExtras. (line 134)
* --modification-date set ISO image timestamps: ImageId. (line 70)
* --no-emul-toc no table-of-content emulation: SetProduct. (line 41)
* --norock disable Rock Ridge production: SetExtras. (line 28)
* --no_rc do not execute startup files: Miscellaneous. (line 18)
* --no_rc do not execute startup files: Miscellaneous. (line 33)
* --old-empty old block addresses for empty files: SetProduct.
(line 105)
* --old-root-devno enable disk idevno with -old-root: SetInsert.
@ -2081,7 +2099,7 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
(line 143)
* --quoted_path_list read pathspecs from disk file: SetInsert.
(line 12)
* --scdbackup_tag Recording of MD5 checksum: SetExtras. (line 147)
* --scdbackup_tag Recording of MD5 checksum: SetExtras. (line 150)
* --set_all_file_dates set all file timestamps: SetExtras. (line 35)
* --sort-weight set block address sorting weight: SetProduct. (line 45)
* --sort-weight-list set block address sorting weight: SetProduct.
@ -2090,8 +2108,8 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
(line 76)
* --stdio_sync control forced output to disk files: SetProduct.
(line 23)
* --xattr Recording of any xattr: SetExtras. (line 116)
* --xattr Recording of user xattr: SetExtras. (line 109)
* --xattr Recording of any xattr: SetExtras. (line 119)
* --xattr Recording of user xattr: SetExtras. (line 112)
* --zisofs-version-2 enable recognition of zisofs2 files: SetInsert.
(line 65)
* --zisofs2-susp-z2 produce Z2 for version 2 instead of ZF: SetInsert.
@ -2153,21 +2171,23 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
(line 59)
* -G Fill System Area e.g. by MBR: SystemArea. (line 68)
* -generic-boot Fill System Area e.g. by MBR: SystemArea. (line 77)
* -genisoimage_completion completion of genisoimage options: Miscellaneous.
(line 8)
* -gid group assignment for all files: SetProduct. (line 83)
* -graft-points enable target=source pathspecs: SetInsert. (line 38)
* -gui increase frequency of pacifier messages: Miscellaneous.
(line 29)
(line 44)
* -hard-disk-boot El Torito boot image emulation: Bootable. (line 83)
* -help list supported options: Miscellaneous. (line 21)
* -hfs-bless HFS+ blessing ppc_bootdir: SetExtras. (line 230)
* -hfs-bless-by HFS+ blessing: SetExtras. (line 220)
* -hfsplus enable production of HFS+ partition: SetExtras. (line 173)
* -hfsplus-block-size set APM block size: SetExtras. (line 210)
* -help list supported options: Miscellaneous. (line 36)
* -hfs-bless HFS+ blessing ppc_bootdir: SetExtras. (line 233)
* -hfs-bless-by HFS+ blessing: SetExtras. (line 223)
* -hfsplus enable production of HFS+ partition: SetExtras. (line 176)
* -hfsplus-block-size set APM block size: SetExtras. (line 213)
* -hfsplus-block-size set HFS+ allocation block size: SetExtras.
(line 206)
(line 209)
* -hfsplus-file-creator-type HFS+ creator-type attribute: SetExtras.
(line 217)
* -hfsplus-serial-no set HFS+ serial number: SetExtras. (line 202)
(line 220)
* -hfsplus-serial-no set HFS+ serial number: SetExtras. (line 205)
* -hide keep matching files invisible in ISO tree: SetHide. (line 8)
* -hide-hfsplus keep matching files invisible in HFS+ tree: SetHide.
(line 25)
@ -2198,7 +2218,7 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -isohybrid-mbr Install ISOLINUX isohybrid MBR: SystemArea. (line 87)
* -iso_mbr_part_type Set type of ISO MBR partition: SystemArea.
(line 129)
* -J enable production of Joliet directory tree: SetExtras. (line 156)
* -J enable production of Joliet directory tree: SetExtras. (line 159)
* -jigdo-checksum-algorithm set data file checksum algorithm: Jigdo.
(line 42)
* -jigdo-exclude add exclusion pattern for checksum file: Jigdo.
@ -2214,11 +2234,11 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -jigdo-template-compress choose compression algorithm: Jigdo.
(line 83)
* -joliet enable production of Joliet directory tree: SetExtras.
(line 160)
* -joliet-long allow longer Joliet names: SetExtras. (line 162)
* -joliet-utf16 use UTF-16 with Joliet names: SetExtras. (line 168)
(line 163)
* -joliet-long allow longer Joliet names: SetExtras. (line 165)
* -joliet-utf16 use UTF-16 with Joliet names: SetExtras. (line 171)
* -l allow 31 characters in ISO file names: SetCompl. (line 56)
* -log-file redirect stderr messages: Miscellaneous. (line 33)
* -log-file redirect stderr messages: Miscellaneous. (line 48)
* -m exclude disk files from inserting: SetInsert. (line 41)
* -M set path for loading existing ISO image: Loading. (line 11)
* -max-iso9660-filenames allow 37 characters in ISO file names: SetCompl.
@ -2253,9 +2273,9 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -preparer set Preparer Id: ImageId. (line 55)
* -prev-session set path for loading existing ISO image: Loading.
(line 21)
* -print-size predict ISO image size: Miscellaneous. (line 8)
* -print-size predict ISO image size: Miscellaneous. (line 23)
* -publisher set Publisher Id: ImageId. (line 32)
* -quiet suppress most messages: Miscellaneous. (line 25)
* -quiet suppress most messages: Miscellaneous. (line 40)
* -R Rock Ridge (is enabled by default): SetExtras. (line 8)
* -r Rock Ridge with altered owner and permission: SetExtras. (line 16)
* -rational-rock Rock Ridge with altered owner and permission: SetExtras.
@ -2276,10 +2296,10 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -untranslated-filenames very relaxed filename rules: SetCompl.
(line 34)
* -untranslated_name_len untranslated file names: SetCompl. (line 36)
* -v enable verbose messages: Miscellaneous. (line 38)
* -v enable verbose messages: Miscellaneous. (line 53)
* -V set Volume Id: ImageId. (line 13)
* -verbose enable verbose messages: Miscellaneous. (line 41)
* -version report program version: Miscellaneous. (line 43)
* -verbose enable verbose messages: Miscellaneous. (line 56)
* -version report program version: Miscellaneous. (line 58)
* -volid set Volume Id: ImageId. (line 23)
* -volset set Volume Set Id: ImageId. (line 25)
* -x exclude disk files from inserting: SetInsert. (line 49)
@ -2295,7 +2315,7 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Menu:
* Abstract File, set path, -abstract: ImageId. (line 57)
* ACL, record and load, --acl: SetExtras. (line 103)
* ACL, record and load, --acl: SetExtras. (line 106)
* APM, mark appended partitions, -appended_part_as_apm: SystemArea.
(line 253)
* APM, _definition: SystemArea. (line 16)
@ -2398,14 +2418,14 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
(line 238)
* GPT, _definition: SystemArea. (line 13)
* Group, for all files, -gid: SetProduct. (line 83)
* HFS+, enables production: SetExtras. (line 173)
* HFS+, issue blessing ppc_bootdir, -hfs-bless: SetExtras. (line 230)
* HFS+, issue blessing, -hfs-bless-by: SetExtras. (line 220)
* HFS+, set allocation block size: SetExtras. (line 206)
* HFS+, set APM block size: SetExtras. (line 210)
* HFS+, enables production: SetExtras. (line 176)
* HFS+, issue blessing ppc_bootdir, -hfs-bless: SetExtras. (line 233)
* HFS+, issue blessing, -hfs-bless-by: SetExtras. (line 223)
* HFS+, set allocation block size: SetExtras. (line 209)
* HFS+, set APM block size: SetExtras. (line 213)
* HFS+, set creator and type of file, -hfsplus-file-creator-type: SetExtras.
(line 217)
* HFS+, set serial number: SetExtras. (line 202)
(line 220)
* HFS+, set serial number: SetExtras. (line 205)
* HFS+, _definition: Standards. (line 32)
* Hiding, by ISO RR path, -hide_iso_path: SetHide. (line 31)
* Hiding, from HFS+, -hide-hfsplus: SetHide. (line 25)
@ -2442,7 +2462,7 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
(line 36)
* ISO file names, very relaxed rules, -U, -untranslated-filenames: SetCompl.
(line 27)
* ISO image size, predict, -print-size: Miscellaneous. (line 8)
* ISO image size, predict, -print-size: Miscellaneous. (line 23)
* ISO image, set Application Use field, --application_use: ImageId.
(line 79)
* ISO image, set timestamps, --modification-date=: ImageId. (line 70)
@ -2468,24 +2488,25 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Jigdo Template Extraction, -jigdo-template-compress: Jigdo. (line 83)
* Jigdo Template Extraction, -md5-list: Jigdo. (line 81)
* Jigdo Template Extraction, _definition: Jigdo. (line 6)
* Joliet, allows longer names, -joliet-long: SetExtras. (line 162)
* Joliet, enable, -J, -joliet: SetExtras. (line 156)
* Joliet, allows longer names, -joliet-long: SetExtras. (line 165)
* Joliet, enable, -J, -joliet: SetExtras. (line 159)
* Joliet, _definition: Standards. (line 21)
* Links, follow on disk, -f, -follow-links: SetInsert. (line 32)
* Links, record and load hard links, --hardlinks: SetExtras. (line 139)
* Links, record and load hard links, --hardlinks: SetExtras. (line 142)
* Linux file attributes, record and load, --lfa_flags: SetExtras.
(line 122)
(line 125)
* MBR, GPT, append partition, -append_partition: SystemArea. (line 208)
* MBR, sectors per head, -partition_sec_hd: SystemArea. (line 180)
* MBR, sectors per head, -partition_sec_hd <1>: SystemArea. (line 183)
* MBR, _definition: SystemArea. (line 9)
* MD5, record and load, --md5: SetExtras. (line 131)
* Message output, increase frequency, -gui: Miscellaneous. (line 29)
* Message output, redirect stderr, -log-file: Miscellaneous. (line 33)
* Message output, suppress, -quiet: Miscellaneous. (line 25)
* MD5, record and load, --md5: SetExtras. (line 134)
* Message output, increase frequency, -gui: Miscellaneous. (line 44)
* Message output, redirect stderr, -log-file: Miscellaneous. (line 48)
* Message output, suppress, -quiet: Miscellaneous. (line 40)
* Mountability, by non-trivial partition 1, -partition_offset: SystemArea.
(line 169)
* Options, list, -help: Miscellaneous. (line 21)
* Options completion, -genisoimage_completion: Miscellaneous. (line 8)
* Options, list, -help: Miscellaneous. (line 36)
* Output file, set address, -o, -output: SetProduct. (line 8)
* Ownership, for all files, -uid: SetProduct. (line 79)
* Padding, 300 KiB, -pad: SetProduct. (line 94)
@ -2499,28 +2520,28 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Permissions, for all directories, -dir-mode: SetProduct. (line 87)
* Preparer Id, set, -p: ImageId. (line 47)
* Problems, reporting: Bugreport. (line 6)
* Program version, report, -version: Miscellaneous. (line 43)
* Program version, report, -version: Miscellaneous. (line 58)
* Publisher Id, set, -P, -publisher: ImageId. (line 28)
* Rock Ridge, (enabled by default), -R, -rock: SetExtras. (line 8)
* Rock Ridge, altered owner and permission, -r, -rational-rock: SetExtras.
(line 16)
* Rock Ridge, disable production, --norock: SetExtras. (line 28)
* Rock Ridge, _definition: Standards. (line 14)
* scdbackup, record checksum tag, --scdbackup_tag: SetExtras. (line 147)
* scdbackup, record checksum tag, --scdbackup_tag: SetExtras. (line 150)
* Session, select path, -M, -prev-session, -dev: Loading. (line 11)
* Session, set load and write address, -C, -cdrecord-params: Loading.
(line 25)
* Startup files, suppress, --no_rc: Miscellaneous. (line 18)
* Startup files, suppress, --no_rc: Miscellaneous. (line 33)
* System Area, _definition: SystemArea. (line 6)
* System Id, set, -sysid: ImageId. (line 43)
* Table-of-content, emulation off, --no-emul-toc: SetProduct. (line 41)
* Table-of-content, emulation, --emul-toc: SetProduct. (line 33)
* UTF-16, for Joliet paths, -joliet-utf16: SetExtras. (line 168)
* Verbosity, high, -v, -verbose: Miscellaneous. (line 38)
* UTF-16, for Joliet paths, -joliet-utf16: SetExtras. (line 171)
* Verbosity, high, -v, -verbose: Miscellaneous. (line 53)
* Volume Id, set, -V, -volid: ImageId. (line 13)
* Volume Set Id, set, -volset: ImageId. (line 25)
* xattr, record and load, --xattr: SetExtras. (line 109)
* xattr, record and load, --xattr-any: SetExtras. (line 116)
* xattr, record and load, --xattr: SetExtras. (line 112)
* xattr, record and load, --xattr-any: SetExtras. (line 119)
* xorriso, mkisofs emulation: Xorriso. (line 6)
* xorriso, options: Options. (line 6)
* Z2 instead of ZF for version 2, -zisofs2-susp-z2: SetInsert.
@ -2546,27 +2567,27 @@ Node: SetInsert9530
Node: SetProduct15465
Node: SetCompl21037
Node: SetExtras23629
Node: SetHide35680
Node: ImageId37679
Node: Bootable41961
Node: SystemArea48247
Node: Charset67975
Node: Jigdo69000
Node: Miscellaneous73970
Node: Examples75615
Node: ExSimple76109
Node: ExGraft76592
Node: ExMkisofs77892
Node: ExGrowisofs79700
Node: ExIncBackup80890
Node: ExIncBckAcc84066
Node: ExBootable85771
Node: Files89953
Node: Environ91048
Node: Seealso91921
Node: Bugreport92598
Node: Legal93191
Node: CommandIdx94088
Node: ConceptIdx111299
Node: SetHide35887
Node: ImageId37886
Node: Bootable42168
Node: SystemArea48454
Node: Charset68182
Node: Jigdo69207
Node: Miscellaneous74177
Node: Examples76773
Node: ExSimple77267
Node: ExGraft77750
Node: ExMkisofs79050
Node: ExGrowisofs80858
Node: ExIncBackup82048
Node: ExIncBckAcc85224
Node: ExBootable86929
Node: Files91111
Node: Environ92206
Node: Seealso93079
Node: Bugreport93756
Node: Legal94349
Node: CommandIdx95246
Node: ConceptIdx112606

End Tag Table

View File

@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps
@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 .TH XORRISOFS 1 "Version 1.5.7, Jul 23, 2024"
@c man .TH XORRISOFS 1 "Version 1.5.7, Aug 30, 2024"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -2245,6 +2245,27 @@ The rules for list_of_names are the same as with -checksum_algorithm_iso.
@table @asis
@sp 1
@c man .TP
@item -genisoimage_completion
@kindex -genisoimage_completion completion of genisoimage options
@cindex Options completion, -genisoimage_completion
Match unrecognized option arguments which begin by a dash '-' against the
known genisoimage options, like program
genisoimage does unconditionally (and undocumentedly). If the given argument
matches the beginning of exactly one genisoimage option, then it gets replaced
by that option. Options which are genuine to mkisofs or xorriso's mkisofs
emulation are not matched that way.
Option arguments which consist entirely of a leading dash and letters out of
"dDfJlNRrTUvz" are not matched but rather interpreted as usual, i.e. as
multiple options with leading dash and each single letter.
If no genisoimage option is found or more than one are found, then a SORRY
message is issued and the argument stays as is.
@*
To enable this mode by default, write the xorriso command
@*
-genisoimage_completion on
@*
into one of the xorriso start files. See section FILES.
@c man .TP
@item -print-size
@kindex -print-size predict ISO image size
@cindex ISO image size, predict, -print-size