|
|
|
@ -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++; |
|
|
|
|