New find action -hide, new find test -hidden
This commit is contained in:
@ -1743,7 +1743,7 @@ int Xorriso_findi_action(struct XorrisO *xorriso, struct FindjoB *job,
|
||||
char *abs_path, char *show_path,
|
||||
IsoNode *node, int depth, int flag)
|
||||
{
|
||||
int ret= 0, type, action= 0, hflag, deleted= 0, no_dive= 0;
|
||||
int ret= 0, type, action= 0, hflag, deleted= 0, no_dive= 0, hide_attrs;
|
||||
uid_t user= 0;
|
||||
gid_t group= 0;
|
||||
time_t date= 0;
|
||||
@ -1860,10 +1860,16 @@ int Xorriso_findi_action(struct XorrisO *xorriso, struct FindjoB *job,
|
||||
ret= Xorriso_mkisofs_lower_r(xorriso, node, 0);
|
||||
} else if(action == 38) { /* sort_weight */
|
||||
iso_node_set_sort_weight(node, type);
|
||||
} else if(action == 38) { /* hide */
|
||||
|
||||
/* >>> iso_node_set_hidden */;
|
||||
|
||||
} else if(action == 39) { /* hide */
|
||||
hide_attrs= 0;
|
||||
if(type) {
|
||||
hide_attrs|= LIBISO_HIDE_BUT_WRITE;
|
||||
if(type & 1)
|
||||
hide_attrs|= LIBISO_HIDE_ON_RR;
|
||||
if(type & 2)
|
||||
hide_attrs|= LIBISO_HIDE_ON_JOLIET;
|
||||
}
|
||||
iso_node_set_hidden(node, hide_attrs);
|
||||
} else { /* includes : 15 in_iso */
|
||||
sprintf(xorriso->result_line, "%s\n", Text_shellsafe(show_path, sfe, 0));
|
||||
Xorriso_result(xorriso, 0);
|
||||
@ -1915,7 +1921,7 @@ return:
|
||||
*/
|
||||
{
|
||||
int value=0, ret, start_lba, end_lba;
|
||||
int lba_count, *file_end_lbas= NULL, *file_start_lbas= NULL, i;
|
||||
int lba_count, *file_end_lbas= NULL, *file_start_lbas= NULL, i, mask;
|
||||
void *arg1, *arg2;
|
||||
char ft, *decision, md5[16];
|
||||
regmatch_t name_match;
|
||||
@ -2091,6 +2097,20 @@ return:
|
||||
break; case 16: /* -disk_name *arg1 (regex in *arg2) */
|
||||
value= !! Exprtest_match_disk_name(xorriso, ftest, node, 0);
|
||||
|
||||
break; case 17: /* -hidden int *arg1 */
|
||||
value= 0;
|
||||
ret= iso_node_get_hidden(node);
|
||||
mask= *((int *) arg1) & 3;
|
||||
if(mask == 0 && !(ret & (LIBISO_HIDE_ON_RR | LIBISO_HIDE_ON_JOLIET)))
|
||||
value= 1;
|
||||
else if(mask == 1 && (ret & LIBISO_HIDE_ON_RR))
|
||||
value= 1;
|
||||
else if(mask == 2 && (ret & LIBISO_HIDE_ON_JOLIET))
|
||||
value= 1;
|
||||
else if(mask == 3 && (ret & LIBISO_HIDE_ON_RR) &&
|
||||
(ret & LIBISO_HIDE_ON_JOLIET))
|
||||
value= 1;
|
||||
|
||||
break; default:
|
||||
|
||||
/* >>> complain about unknown test type */;
|
||||
|
Reference in New Issue
Block a user