New -as mkisofs options -hide, -hide-joliet, -hide-list, -hide-joliet-list

This commit is contained in:
2010-06-23 13:43:40 +00:00
parent c933076b4b
commit 558667d32a
14 changed files with 394 additions and 120 deletions

View File

@@ -77,6 +77,7 @@ int Xorriso_end_idx(struct XorrisO *xorriso,
bit6= with bit5 allow 0 matches if pattern is a constant
bit7= silently tolerate empty argument list
bit8= free the eventually allocated sub_vector
bit9= always expand wildcards
*/
int Xorriso_opt_args(struct XorrisO *xorriso, char *cmd,
int argc, char **argv, int idx,
@@ -87,9 +88,9 @@ int Xorriso_opt_args(struct XorrisO *xorriso, char *cmd,
off_t mem= 0;
if(flag&2)
do_expand= xorriso->do_disk_pattern==1 && !(flag&4);
do_expand= (xorriso->do_disk_pattern==1 && !(flag&4)) || (flag & 512);
else
do_expand= xorriso->do_iso_rr_pattern==1 && !(flag&4);
do_expand= (xorriso->do_iso_rr_pattern==1 && !(flag&4)) || (flag & 512);
if(flag&256) {
if(*optv<argv || *optv>=argv+argc)
Sfile_destroy_argv(optc, optv, 0);
@@ -1879,6 +1880,28 @@ int Xorriso_path_is_excluded(struct XorrisO *xorriso, char *path, int flag)
}
int Xorriso_path_is_hidden(struct XorrisO *xorriso, char *path, int flag)
{
int ret, hide_attrs= 0;
ret= Exclusions_match(xorriso->iso_rr_hidings, path, 0);
if(ret < 0) {
failure:;
sprintf(xorriso->info_text, "Error during disk file hiding decision");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FATAL", 0);
return(-1);
}
if(ret > 0)
hide_attrs|= 1;
ret= Exclusions_match(xorriso->joliet_hidings, path, 0);
if(ret < 0)
goto failure;
if(ret > 0)
hide_attrs|= 2;
return(hide_attrs);
}
/* Normalize ACL and sort apart "access" ACL from "default" ACL.
*/
int Xorriso_normalize_acl_text(struct XorrisO *xorriso, char *in_text,