|
|
|
@ -575,7 +575,7 @@ int Xorriso_genisofs_count_args(struct XorrisO *xorriso, int argc, char **argv,
|
|
|
|
|
"--protective-msdos-label", "--boot-catalog-hide", "--no-emul-toc",
|
|
|
|
|
"--emul-toc", "-disallow_dir_id_ext", "--old-empty",
|
|
|
|
|
"--old-root-no-md5", "--old-root-devno", "--old-root-no-ino",
|
|
|
|
|
"--no_rc", "--norock"
|
|
|
|
|
"--no_rc", "--norock", "-hfsplus",
|
|
|
|
|
""
|
|
|
|
|
};
|
|
|
|
|
static char arg1_options[][41]= {
|
|
|
|
@ -583,6 +583,7 @@ int Xorriso_genisofs_count_args(struct XorrisO *xorriso, int argc, char **argv,
|
|
|
|
|
"-boot-load-size", "-C", "-c", "-check-session", "-copyright",
|
|
|
|
|
"-dir-mode", "-file-mode", "-G", "-gid", "-hide", "-hide-list",
|
|
|
|
|
"-hidden", "-hidden-list", "-hide-joliet", "-hide-joliet-list",
|
|
|
|
|
"-hide-hfsplus", "-hide-hfsplus-list",
|
|
|
|
|
"-hide-udf", "-hide-udf-list", "-input-charset", "-output-charset",
|
|
|
|
|
"-iso-level", "-jcharset", "-log-file", "-m", "-exclude-list", "-M",
|
|
|
|
|
"-dev", "-new-dir-mode", "-o", "-p", "-preparer",
|
|
|
|
@ -723,6 +724,17 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag)
|
|
|
|
|
" -hide-list FILE File with list of ISO9660/RR files to hide",
|
|
|
|
|
" -hide-joliet GLOBFILE Hide Joliet file",
|
|
|
|
|
" -hide-joliet-list FILE File with list of Joliet files to hide",
|
|
|
|
|
|
|
|
|
|
#ifdef Xorriso_with_hfspluS
|
|
|
|
|
|
|
|
|
|
/* >>> ts B20523 : To be activated when HFS+ works */
|
|
|
|
|
|
|
|
|
|
" -hide-hfsplus GLOBFILE Hide HFS+ file",
|
|
|
|
|
" -hide-hfsplus-list FILE File with list of HFS+ files to hide",
|
|
|
|
|
" -hfsplus Generate HFS+ filesystem",
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
" -input-charset CHARSET Local input charset for file name conversion",
|
|
|
|
|
" -output-charset CHARSET Output charset for file name conversion",
|
|
|
|
|
" -iso-level LEVEL Set ISO9660 conformance level (1..3) or 4 for ISO9660 version 2",
|
|
|
|
@ -860,6 +872,11 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag)
|
|
|
|
|
mkisofs pathspec would matter (e.g. "./" versus "").
|
|
|
|
|
But xorriso normalizes disk_paths before further processing. Thus
|
|
|
|
|
the literal form does not matter.
|
|
|
|
|
@param hide_attrs
|
|
|
|
|
bit0= hide in ISO/RR
|
|
|
|
|
bit1= hide in Joliet
|
|
|
|
|
bit2= hide in HFS+
|
|
|
|
|
bit3 to bit5 are reserved for future hidings
|
|
|
|
|
*/
|
|
|
|
|
int Xorriso_genisofs_hide(struct XorrisO *xorriso, char *whom,
|
|
|
|
|
char *pattern, int hide_attrs, int flag)
|
|
|
|
@ -867,14 +884,15 @@ int Xorriso_genisofs_hide(struct XorrisO *xorriso, char *whom,
|
|
|
|
|
int zero= 0, ret;
|
|
|
|
|
char *argv[1];
|
|
|
|
|
|
|
|
|
|
if((hide_attrs & 3) == 0)
|
|
|
|
|
if((hide_attrs & 63) == 0)
|
|
|
|
|
return(2);
|
|
|
|
|
|
|
|
|
|
if(strchr(pattern, '/') != NULL) {
|
|
|
|
|
argv[0]= pattern;
|
|
|
|
|
ret= Xorriso_option_not_paths(xorriso, 1, argv, &zero,
|
|
|
|
|
4 | (hide_attrs & 3));
|
|
|
|
|
4 | ((hide_attrs & 63) << 8));
|
|
|
|
|
} else {
|
|
|
|
|
ret= Xorriso_option_not_leaf(xorriso, pattern, hide_attrs & 3);
|
|
|
|
|
ret= Xorriso_option_not_leaf(xorriso, pattern, hide_attrs & 63);
|
|
|
|
|
}
|
|
|
|
|
return(ret);
|
|
|
|
|
}
|
|
|
|
@ -885,13 +903,16 @@ int Xorriso_genisofs_hide_list(struct XorrisO *xorriso, char *whom,
|
|
|
|
|
char *adr, int hide_attrs, int flag)
|
|
|
|
|
{
|
|
|
|
|
int ret, linecount= 0, argc= 0, was_failure= 0, i, fret;
|
|
|
|
|
char **argv= NULL;
|
|
|
|
|
char **argv= NULL, *id= "";
|
|
|
|
|
FILE *fp= NULL;
|
|
|
|
|
|
|
|
|
|
if(adr[0]==0) {
|
|
|
|
|
if (hide_attrs & 2)
|
|
|
|
|
id = "joliet-";
|
|
|
|
|
else if (hide_attrs & 4)
|
|
|
|
|
id = "hfsplus-";
|
|
|
|
|
sprintf(xorriso->info_text,
|
|
|
|
|
"Empty file name given with -as %s -hide-%slist",
|
|
|
|
|
whom, hide_attrs == 1 ? "" : "joliet-");
|
|
|
|
|
"Empty file name given with -as %s -hide-%slist", whom, id);
|
|
|
|
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
|
|
|
|
|
return(0);
|
|
|
|
|
}
|
|
|
|
@ -1232,7 +1253,9 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
|
|
|
|
|
} else if(strcmp(argpt, "-hide") == 0 ||
|
|
|
|
|
strcmp(argpt, "-hide-list") == 0 ||
|
|
|
|
|
strcmp(argpt, "-hide-joliet") == 0 ||
|
|
|
|
|
strcmp(argpt, "-hide-joliet-list") == 0) {
|
|
|
|
|
strcmp(argpt, "-hide-joliet-list") == 0 ||
|
|
|
|
|
strcmp(argpt, "-hide-hfsplus") == 0 ||
|
|
|
|
|
strcmp(argpt, "-hide-hfsplus-list") == 0) {
|
|
|
|
|
if(i+1>=argc)
|
|
|
|
|
goto not_enough_args;
|
|
|
|
|
i++;
|
|
|
|
@ -1244,6 +1267,10 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
|
|
|
|
|
ret= Xorriso_genisofs_hide(xorriso, whom, argv[i], 2, 0);
|
|
|
|
|
else if(strcmp(argpt, "-hide-joliet-list") == 0)
|
|
|
|
|
ret= Xorriso_genisofs_hide_list(xorriso, whom, argv[i], 2, 0);
|
|
|
|
|
else if(strcmp(argpt, "-hide-hfsplus") == 0)
|
|
|
|
|
ret= Xorriso_genisofs_hide(xorriso, whom, argv[i], 4, 0);
|
|
|
|
|
else if(strcmp(argpt, "-hide-hfsplus-list") == 0)
|
|
|
|
|
ret= Xorriso_genisofs_hide_list(xorriso, whom, argv[i], 4, 0);
|
|
|
|
|
if(ret <= 0)
|
|
|
|
|
goto problem_handler_1;
|
|
|
|
|
|
|
|
|
@ -1477,6 +1504,8 @@ illegal_c:;
|
|
|
|
|
} else if(strcmp(argpt, "-joliet-long")==0) {
|
|
|
|
|
Xorriso_relax_compliance(xorriso,
|
|
|
|
|
"joliet_long_paths:joliet_long_names", 0);
|
|
|
|
|
} else if(strcmp(argpt, "-hfsplus")==0) {
|
|
|
|
|
xorriso->do_hfsplus= 1;
|
|
|
|
|
} else if(strcmp(argpt, "-graft-points")==0) {
|
|
|
|
|
xorriso->allow_graft_points= 1;
|
|
|
|
|
} else if(strcmp(argpt, "-path-list")==0 ||
|
|
|
|
@ -1686,7 +1715,9 @@ not_enough_args:;
|
|
|
|
|
} else if(strcmp(argpt, "-hide") == 0 ||
|
|
|
|
|
strcmp(argpt, "-hide-list") == 0 ||
|
|
|
|
|
strcmp(argpt, "-hide-joliet") == 0 ||
|
|
|
|
|
strcmp(argpt, "-hide-joliet-list") == 0) {
|
|
|
|
|
strcmp(argpt, "-hide-joliet-list") == 0 ||
|
|
|
|
|
strcmp(argpt, "-hide-hfsplus") == 0 ||
|
|
|
|
|
strcmp(argpt, "-hide-hfsplus-list") == 0) {
|
|
|
|
|
if(i+1>=argc)
|
|
|
|
|
goto not_enough_args;
|
|
|
|
|
i++;
|
|
|
|
|