New command and -as mkisofs option -genisoimage_completion
This commit is contained in:
parent
5583a1c7f0
commit
1dd5dca5eb
@ -377,6 +377,7 @@ isoburn_toc_disc_get_sectors_v2;
|
|||||||
isoburn_toc_session_get_sectors_v2;
|
isoburn_toc_session_get_sectors_v2;
|
||||||
isoburn_toc_track_get_emul_v2;
|
isoburn_toc_track_get_emul_v2;
|
||||||
Xorriso_option_chattri;
|
Xorriso_option_chattri;
|
||||||
|
Xorriso_option_genisoimage_completion;
|
||||||
Xorriso_option_lfa_flags;
|
Xorriso_option_lfa_flags;
|
||||||
} LIBISOBURN1;
|
} LIBISOBURN1;
|
||||||
|
|
||||||
|
@ -121,6 +121,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
|
|||||||
m->initial_wdx[0]= 0;
|
m->initial_wdx[0]= 0;
|
||||||
m->no_rc= 0;
|
m->no_rc= 0;
|
||||||
m->argument_emulation= 0;
|
m->argument_emulation= 0;
|
||||||
|
m->genisoimage_completion= 0;
|
||||||
m->current_interpreter= 0;
|
m->current_interpreter= 0;
|
||||||
|
|
||||||
m->rc_filename_count= Xorriso_rc_nuM;
|
m->rc_filename_count= Xorriso_rc_nuM;
|
||||||
|
@ -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",
|
"-appended_part_as_gpt", "-appended_part_as_apm", "--mbr-force-bootable",
|
||||||
"--gpt-iso-bootable", "--gpt-iso-not-ro",
|
"--gpt-iso-bootable", "--gpt-iso-not-ro",
|
||||||
"-part_like_isohybrid", "--zisofs-version-2", "--zisofs2-susp-z2",
|
"-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]= {
|
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",
|
"--grub2-sparc-core", "--sort-weight-list", "--sort-weight-patterns",
|
||||||
"-hppa-hdrversion", "-file_name_limit", "--set_all_file_dates",
|
"-hppa-hdrversion", "-file_name_limit", "--set_all_file_dates",
|
||||||
"--gpt_disk_guid", "-iso_mbr_part_type", "-eltorito-platform",
|
"--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]= {
|
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)
|
/* search in genisoimage_options, ignoring leading dashes,
|
||||||
xorriso->boot_img_full_size= 1;
|
count and memorize matches */;
|
||||||
ret= Xorriso_attach_boot_image(xorriso, 0);
|
|
||||||
if(ret <= 0)
|
*found= "";
|
||||||
xorriso->boot_image_bin_path[0]= 0;
|
for(j= 0; option[j] != 0; j++)
|
||||||
return(ret);
|
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",
|
" --quoted_path_list FILE File with list of quoted pathnames to process",
|
||||||
" -print-size Print estimated filesystem size and exit",
|
" -print-size Print estimated filesystem size and exit",
|
||||||
" -quiet Run quietly",
|
" -quiet Run quietly",
|
||||||
|
" -genisoimage_completion Enable completion of genisoimage options",
|
||||||
" -gui Switch behaviour for GUI",
|
" -gui Switch behaviour for GUI",
|
||||||
" -R, -rock Generate Rock Ridge directory information",
|
" -R, -rock Generate Rock Ridge directory information",
|
||||||
" -r, -rational-rock Generate rationalized 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
|
/* Interprets a string of single-char options which have no parameters
|
||||||
@param flag bit0=check whether string is ok
|
@param flag bit0= check whether string is ok
|
||||||
bit1=this is pass 1
|
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
|
@return with flag bit0: 0=no , 1=yes, 2= with bit1: non-pass-1 options seen
|
||||||
else : 1 = ok , <= 0 indicates error
|
else : 1 = ok , <= 0 indicates error
|
||||||
*/
|
*/
|
||||||
@ -1207,6 +1329,8 @@ int Xorriso_genisofs_fused_options(struct XorrisO *xorriso, char *whom,
|
|||||||
continue;
|
continue;
|
||||||
Xorriso_option_zisofs(xorriso, "by_magic=on", 0);
|
Xorriso_option_zisofs(xorriso, "by_magic=on", 0);
|
||||||
} else {
|
} else {
|
||||||
|
if(flag & 4)
|
||||||
|
{ret= 0; goto ex;}
|
||||||
sprintf(xorriso->info_text, "-as %s: Unsupported option -%c", whom, *cpt);
|
sprintf(xorriso->info_text, "-as %s: Unsupported option -%c", whom, *cpt);
|
||||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||||
ret= 0; goto ex;
|
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 / */
|
/* Implementing mkisofs tendency to map single-path pathspecs to / */
|
||||||
int Xorriso_graftable_pathspec(struct XorrisO *xorriso, char *in_pathspec,
|
int Xorriso_graftable_pathspec(struct XorrisO *xorriso, char *in_pathspec,
|
||||||
char *pathspec, int flag)
|
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 Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
|
||||||
int argc, char **argv, int flag)
|
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 was_failure= 0, fret, lower_r= 0, zero= 0;
|
||||||
int dir_mode= -1, file_mode= -1, count, partition_number;
|
int dir_mode= -1, file_mode= -1, count, partition_number;
|
||||||
int allow_dir_id_ext= -1, mem_current_interpreter;
|
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;
|
mode_t mode_and, mode_or;
|
||||||
int with_boot_image= 0, with_cat_path= 0, with_emul_toc= 0;
|
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;
|
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 *old_root= NULL, *argpt, *hargv[1];
|
||||||
char *boot_path, partno_text[24], *iso_rr_pt, *disk_pt, *rpt, *wpt;
|
char *boot_path, partno_text[24], *iso_rr_pt, *disk_pt, *rpt, *wpt;
|
||||||
char *rm_merge_args[3], *rr_reloc_dir_pt= NULL;
|
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;
|
struct stat stbuf;
|
||||||
|
|
||||||
@ -1409,8 +1600,27 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
|
|||||||
Xorriso_alloc_meM(sort_file, char, SfileadrL);
|
Xorriso_alloc_meM(sort_file, char, SfileadrL);
|
||||||
|
|
||||||
for(i= 0; i<argc; i++) {
|
for(i= 0; i<argc; i++) {
|
||||||
if(strcmp(argv[i], "-log-file") == 0 ||
|
if(argv[i][0] != '-')
|
||||||
strcmp(argv[i], "--log-file") == 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)
|
if(i + 1 >= argc)
|
||||||
goto not_enough_args;
|
goto not_enough_args;
|
||||||
i+= 1;
|
i+= 1;
|
||||||
@ -1434,6 +1644,21 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
|
|||||||
sprintf(xorriso->info_text, "Revoked stderr message redirection");
|
sprintf(xorriso->info_text, "Revoked stderr message redirection");
|
||||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
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;
|
with_cat_path= -1;
|
||||||
adr[0]= indev[0]= msc[0]= old_root[0]= sort_file[0]= 0;
|
adr[0]= indev[0]= msc[0]= old_root[0]= sort_file[0]= 0;
|
||||||
for(i= 0; i<argc; i++) {
|
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)
|
if(ret <= 0)
|
||||||
goto ex;
|
goto ex;
|
||||||
ret= Xorriso_genisofs_ignore(xorriso, whom, argpt, &i, 1);
|
ret= Xorriso_genisofs_ignore(xorriso, whom, argpt, &i, 1);
|
||||||
@ -1463,7 +1689,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
|
|||||||
continue;
|
continue;
|
||||||
if(strcmp(argpt, "-version")==0) {
|
if(strcmp(argpt, "-version")==0) {
|
||||||
sprintf(xorriso->result_line,
|
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;
|
fd= xorriso->dev_fd_1;
|
||||||
if(fd<0)
|
if(fd<0)
|
||||||
@ -1673,7 +1899,8 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
|
|||||||
i++;
|
i++;
|
||||||
Xorriso_option_file_name_limit(xorriso, argv[i], 0);
|
Xorriso_option_file_name_limit(xorriso, argv[i], 0);
|
||||||
} else {
|
} 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,
|
ret= Xorriso_genisofs_fused_options(xorriso, whom, argv[i] + 1,
|
||||||
&option_d, &iso_level, &lower_r, ra_text, 1 | 2);
|
&option_d, &iso_level, &lower_r, ra_text, 1 | 2);
|
||||||
if(ret != 1)
|
if(ret != 1)
|
||||||
@ -1805,7 +2032,8 @@ illegal_c:;
|
|||||||
sprintf(xorriso->info_text, "-as %s: %s",
|
sprintf(xorriso->info_text, "-as %s: %s",
|
||||||
whom, Text_shellsafe(argv[i], sfe, 0));
|
whom, Text_shellsafe(argv[i], sfe, 0));
|
||||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 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)
|
if(ret <= 0)
|
||||||
goto ex;
|
goto ex;
|
||||||
ret= Xorriso_genisofs_ignore(xorriso, whom, argpt, &i, 0);
|
ret= Xorriso_genisofs_ignore(xorriso, whom, argpt, &i, 0);
|
||||||
@ -1850,8 +2078,6 @@ illegal_c:;
|
|||||||
goto not_enough_args;
|
goto not_enough_args;
|
||||||
/* Memorize command until all pathspecs are processed */
|
/* Memorize command until all pathspecs are processed */
|
||||||
delay_opt_list[delay_opt_count++]= i;
|
delay_opt_list[delay_opt_count++]= i;
|
||||||
if(argv[i] != argpt)
|
|
||||||
delay_opt_list[delay_opt_count - 1]|= 1u<<31;
|
|
||||||
i+= arg_count;
|
i+= arg_count;
|
||||||
} else if(strcmp(argpt, "-hfsplus") == 0) {
|
} else if(strcmp(argpt, "-hfsplus") == 0) {
|
||||||
/* was already handled in first argument scan */;
|
/* was already handled in first argument scan */;
|
||||||
@ -1885,7 +2111,7 @@ illegal_c:;
|
|||||||
if(i+1>=argc) {
|
if(i+1>=argc) {
|
||||||
not_enough_args:;
|
not_enough_args:;
|
||||||
sprintf(xorriso->info_text, "-as %s: Not enough arguments to option %s",
|
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);
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||||
ret= 0; goto ex;
|
ret= 0; goto ex;
|
||||||
}
|
}
|
||||||
@ -2006,8 +2232,6 @@ not_enough_args:;
|
|||||||
strcmp(argpt, "-isohybrid-apm-hfsplus")==0 ||
|
strcmp(argpt, "-isohybrid-apm-hfsplus")==0 ||
|
||||||
strcmp(argpt, "-part_like_isohybrid")==0) {
|
strcmp(argpt, "-part_like_isohybrid")==0) {
|
||||||
delay_opt_list[delay_opt_count++]= i;
|
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 ||
|
} else if(strcmp(argpt, "-b") == 0 ||
|
||||||
strcmp(argpt, "-eltorito-boot") == 0 ||
|
strcmp(argpt, "-eltorito-boot") == 0 ||
|
||||||
strcmp(argpt, "-eltorito-platform") == 0 ||
|
strcmp(argpt, "-eltorito-platform") == 0 ||
|
||||||
@ -2036,16 +2260,12 @@ not_enough_args:;
|
|||||||
if(i+1>=argc)
|
if(i+1>=argc)
|
||||||
goto not_enough_args;
|
goto not_enough_args;
|
||||||
delay_opt_list[delay_opt_count++]= i;
|
delay_opt_list[delay_opt_count++]= i;
|
||||||
if(argv[i] != argpt)
|
|
||||||
delay_opt_list[delay_opt_count - 1]|= 1u<<31;
|
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
} else if(strcmp(argpt, "-hide_iso_path") == 0) {
|
} else if(strcmp(argpt, "-hide_iso_path") == 0) {
|
||||||
if(i + 2 >= argc)
|
if(i + 2 >= argc)
|
||||||
goto not_enough_args;
|
goto not_enough_args;
|
||||||
delay_opt_list[delay_opt_count++]= i;
|
delay_opt_list[delay_opt_count++]= i;
|
||||||
if(argv[i] != argpt)
|
|
||||||
delay_opt_list[delay_opt_count - 1]|= 1u<<31;
|
|
||||||
i+= 2;
|
i+= 2;
|
||||||
|
|
||||||
} else if(strncmp(argpt, "--modification-date=", 20)==0) {
|
} else if(strncmp(argpt, "--modification-date=", 20)==0) {
|
||||||
@ -2375,9 +2595,17 @@ rr_reloc_dir:;
|
|||||||
if(ret <= 0)
|
if(ret <= 0)
|
||||||
goto problem_handler_2;
|
goto problem_handler_2;
|
||||||
|
|
||||||
} else if(argpt[0]=='-' && argpt[1]!=0) {
|
} else if(strcmp(eff_option, "-genisoimage_completion") == 0) {
|
||||||
ret= Xorriso_genisofs_fused_options(xorriso, whom, argv[i] + 1,
|
/* 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);
|
&option_d, &iso_level, &lower_r, ra_text, 1);
|
||||||
|
} else {
|
||||||
|
ret= 0;
|
||||||
|
}
|
||||||
if(ret == 1) {
|
if(ret == 1) {
|
||||||
ret= Xorriso_genisofs_fused_options(xorriso, whom, argv[i] + 1,
|
ret= Xorriso_genisofs_fused_options(xorriso, whom, argv[i] + 1,
|
||||||
&option_d, &iso_level, &lower_r, ra_text, 0);
|
&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
|
/* After all pathspecs are added: perform delayed options, mostly boot related
|
||||||
*/
|
*/
|
||||||
for(j= 0; j < delay_opt_count; j++) {
|
for(j= 0; j < delay_opt_count; j++) {
|
||||||
i= delay_opt_list[j] & ~(1u << 31);
|
i= delay_opt_list[j];
|
||||||
if(delay_opt_list[j] & (1u << 31))
|
Xorriso_genisofs_eff_opt(xorriso, whom, argv[i], &eff_option, 1);
|
||||||
argpt= argv[i] + 1;
|
ret= Xorriso_genisofs_strip_dash(xorriso, (char *) eff_option, &argpt, 0);
|
||||||
else
|
if(ret <= 0)
|
||||||
argpt= argv[i];
|
goto ex;
|
||||||
if(strcmp(argpt, "-no-emul-boot")==0) {
|
if(strcmp(argpt, "-no-emul-boot")==0) {
|
||||||
xorriso->boot_image_emul= 0;
|
xorriso->boot_image_emul= 0;
|
||||||
xorriso->boot_emul_default= 0;
|
xorriso->boot_emul_default= 0;
|
||||||
|
@ -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
|
/* Commands -getfacl alias -getfacli, -getfacl_r alias -getfacl_ri
|
||||||
-getfattr alias getfattri
|
-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.",
|
" For a list of options see -as mkisofs -help.",
|
||||||
" -read_mkisofsrc",
|
" -read_mkisofsrc",
|
||||||
" Read and interpret the .mkisofsrc configuration file.",
|
" 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]",
|
" -as cdrecord [-help|-v|dev=|speed=|blank=|fs=|-eject|-atip|padsize=|-multi]",
|
||||||
" path|-",
|
" path|-",
|
||||||
" Perform some cdrecord gestures, eventually write at most one",
|
" Perform some cdrecord gestures, eventually write at most one",
|
||||||
|
@ -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",
|
"drive_access","dummy","dvd_obs","early_stdio_test","ecma119_map","eject",
|
||||||
"extract_boot_images",
|
"extract_boot_images",
|
||||||
"iso_nowtime","iso_rr_pattern","file_name_limit","follow","format","fs",
|
"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",
|
"hfsplus","history","indev","in_charset","joliet","joliet_map",
|
||||||
"lfa_flags",
|
"lfa_flags",
|
||||||
"list_delimiter","list_extras","list_profiles","local_charset",
|
"list_delimiter","list_extras","list_profiles","local_charset",
|
||||||
@ -1449,6 +1449,10 @@ next_command:;
|
|||||||
(*idx)++;
|
(*idx)++;
|
||||||
ret= Xorriso_option_fs(xorriso, arg1, 0);
|
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) {
|
} else if(strcmp(cmd,"getfacl")==0 || strcmp(cmd,"getfacli")==0) {
|
||||||
ret= Xorriso_option_getfacli(xorriso, argc, argv, idx, 0);
|
ret= Xorriso_option_getfacli(xorriso, argc, argv, idx, 0);
|
||||||
|
|
||||||
|
@ -3931,6 +3931,12 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
|||||||
if(!(is_default && no_defaults))
|
if(!(is_default && no_defaults))
|
||||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
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;
|
is_default= 1;
|
||||||
if(xorriso->drive_blacklist != NULL || xorriso->drive_whitelist != NULL ||
|
if(xorriso->drive_blacklist != NULL || xorriso->drive_whitelist != NULL ||
|
||||||
xorriso->drive_greylist == NULL)
|
xorriso->drive_greylist == NULL)
|
||||||
|
@ -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.5.7, Aug 28, 2024"
|
.TH XORRISO 1 "Version 1.5.7, Aug 31, 2024"
|
||||||
.\" 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:
|
||||||
@ -5936,6 +5936,26 @@ VOLI (\-volid) , VOLS (\-volset_id)
|
|||||||
.br
|
.br
|
||||||
Any other lines will be silently ignored.
|
Any other lines will be silently ignored.
|
||||||
.TP
|
.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
|
\fB\-pacifier\fR behavior_code
|
||||||
Control behavior of UPDATE pacifiers during write operations.
|
Control behavior of UPDATE pacifiers during write operations.
|
||||||
The following behavior codes are defined:
|
The following behavior codes are defined:
|
||||||
|
@ -1643,6 +1643,11 @@ int Xorriso_option_follow(struct XorrisO *xorriso, char *mode, int flag);
|
|||||||
/* @since 0.1.0 */
|
/* @since 0.1.0 */
|
||||||
int Xorriso_option_fs(struct XorrisO *xorriso, char *size, int flag);
|
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
|
/* Commands -getfacl alias -getfacli, -getfacl_r alias -getfacl_ri
|
||||||
-getfattr alias getfattri
|
-getfattr alias getfattri
|
||||||
*/
|
*/
|
||||||
|
@ -4991,6 +4991,24 @@ said programs trigger comparable actions.
|
|||||||
APPI (-application_id) , PUBL (-publisher) , SYSI (-system_id) ,
|
APPI (-application_id) , PUBL (-publisher) , SYSI (-system_id) ,
|
||||||
VOLI (-volid) , VOLS (-volset_id)
|
VOLI (-volid) , VOLS (-volset_id)
|
||||||
Any other lines will be silently ignored.
|
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
|
-pacifier behavior_code
|
||||||
Control behavior of UPDATE pacifiers during write operations. The
|
Control behavior of UPDATE pacifiers during write operations. The
|
||||||
following behavior codes are defined:
|
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)
|
* -format formats media: Writing. (line 87)
|
||||||
* -for_backup acl,xattr,hardlinks,md5,lfa_flags: Loading. (line 304)
|
* -for_backup acl,xattr,hardlinks,md5,lfa_flags: Loading. (line 304)
|
||||||
* -fs sets size of fifo: SetWrite. (line 500)
|
* -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 shows ACL in ISO image: Navigate. (line 60)
|
||||||
* -getfacl_r shows ACL in ISO image: Navigate. (line 66)
|
* -getfacl_r shows ACL in ISO image: Navigate. (line 66)
|
||||||
* -getfattr shows xattr in ISO image: Navigate. (line 69)
|
* -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)
|
* -outdev acquires a drive for output: AqDrive. (line 29)
|
||||||
* -out_charset sets output character set: SetWrite. (line 306)
|
* -out_charset sets output character set: SetWrite. (line 306)
|
||||||
* -overwrite enables overwriting in ISO: SetInsert. (line 140)
|
* -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)
|
* -padding sets amount or mode of image padding: SetWrite. (line 528)
|
||||||
* -page set terminal geometry: DialogCtl. (line 18)
|
* -page set terminal geometry: DialogCtl. (line 18)
|
||||||
* -paste_in copies file into disk file: Restore. (line 142)
|
* -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)
|
* -rollback_end ends program without writing: Scripting. (line 156)
|
||||||
* -rom_toc_scan searches for sessions: Loading. (line 408)
|
* -rom_toc_scan searches for sessions: Loading. (line 408)
|
||||||
* -rr_reloc_dir sets name of relocation directory: SetWrite. (line 171)
|
* -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_dev_family choose Linux device file type: AqDrive. (line 95)
|
||||||
* -scsi_log reports SCSI commands: Scripting. (line 145)
|
* -scsi_log reports SCSI commands: Scripting. (line 145)
|
||||||
* -session_log logs written sessions: Scripting. (line 136)
|
* -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)
|
* Backslash Interpretation, _definition: Processing. (line 57)
|
||||||
* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 356)
|
* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 356)
|
||||||
* Backup, enable features, -for_backup: Loading. (line 304)
|
* 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 media, _definition: Media. (line 34)
|
||||||
* Blank, format, Immed bit, -use_immed_bit: SetWrite. (line 478)
|
* Blank, format, Immed bit, -use_immed_bit: SetWrite. (line 478)
|
||||||
* Blind growing, _definition: Methods. (line 41)
|
* 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, .mkisofsrc, -read_mkisofsrc: Emulation. (line 155)
|
||||||
* Emulation, cdrecord, -as: Emulation. (line 120)
|
* Emulation, cdrecord, -as: Emulation. (line 120)
|
||||||
* Emulation, mkisofs, -as: Emulation. (line 17)
|
* 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)
|
* Examples: Examples. (line 6)
|
||||||
* extattr, _definition: Extras. (line 66)
|
* extattr, _definition: Extras. (line 66)
|
||||||
* File content, copy, -concat: Restore. (line 148)
|
* File content, copy, -concat: Restore. (line 148)
|
||||||
@ -6612,31 +6634,31 @@ Node: Navigate230200
|
|||||||
Node: Verify241417
|
Node: Verify241417
|
||||||
Node: Restore252566
|
Node: Restore252566
|
||||||
Node: Emulation264773
|
Node: Emulation264773
|
||||||
Node: Scripting275229
|
Node: Scripting276349
|
||||||
Node: Frontend283123
|
Node: Frontend284243
|
||||||
Node: Examples292749
|
Node: Examples293869
|
||||||
Node: ExDevices293927
|
Node: ExDevices295047
|
||||||
Node: ExCreate294588
|
Node: ExCreate295708
|
||||||
Node: ExDialog295888
|
Node: ExDialog297008
|
||||||
Node: ExGrowing297159
|
Node: ExGrowing298279
|
||||||
Node: ExModifying297968
|
Node: ExModifying299088
|
||||||
Node: ExBootable298478
|
Node: ExBootable299598
|
||||||
Node: ExCharset299033
|
Node: ExCharset300153
|
||||||
Node: ExPseudo299929
|
Node: ExPseudo301049
|
||||||
Node: ExCdrecord300856
|
Node: ExCdrecord301976
|
||||||
Node: ExMkisofs301176
|
Node: ExMkisofs302296
|
||||||
Node: ExGrowisofs303073
|
Node: ExGrowisofs304193
|
||||||
Node: ExException304226
|
Node: ExException305346
|
||||||
Node: ExTime304684
|
Node: ExTime305804
|
||||||
Node: ExIncBackup305142
|
Node: ExIncBackup306262
|
||||||
Node: ExRestore309168
|
Node: ExRestore310288
|
||||||
Node: ExRecovery310114
|
Node: ExRecovery311234
|
||||||
Node: Files310686
|
Node: Files311806
|
||||||
Node: Environ312020
|
Node: Environ313140
|
||||||
Node: Seealso312768
|
Node: Seealso313888
|
||||||
Node: Bugreport313532
|
Node: Bugreport314652
|
||||||
Node: Legal314123
|
Node: Legal315243
|
||||||
Node: CommandIdx315135
|
Node: CommandIdx316255
|
||||||
Node: ConceptIdx333464
|
Node: ConceptIdx334729
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
@ -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.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 .\" 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:
|
||||||
@ -6738,6 +6738,28 @@ VOLI (-volid) , VOLS (-volset_id)
|
|||||||
@*
|
@*
|
||||||
Any other lines will be silently ignored.
|
Any other lines will be silently ignored.
|
||||||
@c man .TP
|
@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
|
@item -pacifier behavior_code
|
||||||
@kindex -pacifier controls pacifier text form
|
@kindex -pacifier controls pacifier text form
|
||||||
@cindex Emulation, pacifier form, -pacifier
|
@cindex Emulation, pacifier form, -pacifier
|
||||||
|
@ -107,6 +107,11 @@ struct XorrisO { /* the global context of xorriso */
|
|||||||
*/
|
*/
|
||||||
int argument_emulation;
|
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:
|
/* Under which interpreter the current activities are running:
|
||||||
0=xorriso mode : Xorriso_interpreter()
|
0=xorriso mode : Xorriso_interpreter()
|
||||||
1=mkisofs mode : Xorriso_genisofs()
|
1=mkisofs mode : Xorriso_genisofs()
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Xorriso_timestamP "2024.09.01.071910"
|
#define Xorriso_timestamP "2024.09.02.130343"
|
||||||
|
@ -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 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.
|
.\" Please adjust this date whenever revising the manpage.
|
||||||
.\"
|
.\"
|
||||||
.\" Some roff macros, for reference:
|
.\" Some roff macros, for reference:
|
||||||
@ -677,7 +677,7 @@ Alias of \-rr_reloc_dir "/.rr_moved"
|
|||||||
Enable all options which improve backup fidelity:
|
Enable all options which improve backup fidelity:
|
||||||
.br
|
.br
|
||||||
\-\-acl, \-\-xattr\-any, \-\-md5,
|
\-\-acl, \-\-xattr\-any, \-\-md5,
|
||||||
\-\-hardlinks, \-\-lfa_flags.
|
\-\-hardlinks, and possibly \-\-lfa_flags.
|
||||||
.br
|
.br
|
||||||
If you later restore a backup with xattr from non\-user namespaces, then make
|
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
|
sure that the target operating system and filesystem know what these attributes
|
||||||
@ -687,6 +687,10 @@ privileges and just record what is readable.
|
|||||||
.br
|
.br
|
||||||
Option \-\-xattr after option \-\-for_backup excludes
|
Option \-\-xattr after option \-\-for_backup excludes
|
||||||
non\-user attributes from being recorded.
|
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
|
.TP
|
||||||
\fB--acl\fR
|
\fB--acl\fR
|
||||||
.br
|
.br
|
||||||
@ -1717,6 +1721,25 @@ The rules for list_of_names are the same as with \-checksum_algorithm_iso.
|
|||||||
.TP
|
.TP
|
||||||
.B Miscellaneous options:
|
.B Miscellaneous options:
|
||||||
.TP
|
.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
|
\fB\-print-size\fR
|
||||||
Print to stdandard output the foreseeable number of 2048 byte blocks in
|
Print to stdandard output the foreseeable number of 2048 byte blocks in
|
||||||
the emerging ISO image. Do not produce this image.
|
the emerging ISO image. Do not produce this image.
|
||||||
|
@ -3,7 +3,7 @@ xorrisofs.texi.
|
|||||||
|
|
||||||
xorrisofs - Emulation of ISO 9660 program mkisofs by program xorriso
|
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.
|
Permission is granted to distribute this text freely.
|
||||||
INFO-DIR-SECTION Archiving
|
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"
|
Alias of -rr_reloc_dir "/.rr_moved"
|
||||||
--for_backup
|
--for_backup
|
||||||
Enable all options which improve backup fidelity:
|
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,
|
If you later restore a backup with xattr from non-user namespaces,
|
||||||
then make sure that the target operating system and filesystem know
|
then make sure that the target operating system and filesystem know
|
||||||
what these attributes mean. Possibly you will need administrator
|
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.
|
record what is readable.
|
||||||
Option --xattr after option --for_backup excludes non-user
|
Option --xattr after option --for_backup excludes non-user
|
||||||
attributes from being recorded.
|
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
|
--acl
|
||||||
|
|
||||||
Enable recording and loading of ACLs from GNU/Linux or FreeBSD (see
|
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-size
|
||||||
Print to stdandard output the foreseeable number of 2048 byte
|
Print to stdandard output the foreseeable number of 2048 byte
|
||||||
blocks in the emerging ISO image. Do not produce this image.
|
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
|
|||||||
|