New find actions get_md5, get_any_xattr, test -has_any_xattr

This commit is contained in:
2009-08-10 12:30:49 +00:00
parent 6de5c8d9d4
commit d1490aa95e
4 changed files with 90 additions and 13 deletions

View File

@ -3307,12 +3307,13 @@ int Findjob_set_acl_filter(struct FindjoB *o, int value, int flag)
/* @param value -1= files without xattr, 1= only files with xattr
@param flag bit0=-has_any_xattr rather than -has_xattr
*/
int Findjob_set_xattr_filter(struct FindjoB *o, int value, int flag)
{
int ret;
ret= Findjob_set_prop_filter(o, 6, value, 0);
ret= Findjob_set_prop_filter(o, (flag & 1 ? 14 : 6), value, 0);
return(ret);
}
@ -15239,6 +15240,8 @@ not_enough_arguments:;
Findjob_set_acl_filter(job, -1, 0);
} else if(strcmp(argv[i], "-has_xattr")==0) {
Findjob_set_xattr_filter(job, 1, 0);
} else if(strcmp(argv[i], "-has_any_xattr")==0) {
Findjob_set_xattr_filter(job, 1, 1);
} else if(strcmp(argv[i], "-has_no_xattr")==0) {
Findjob_set_xattr_filter(job, -1, 0);
} else if(strcmp(argv[i], "-has_aaip")==0) {
@ -15475,6 +15478,10 @@ not_enough_exec_arguments:;
}
} else if(strcmp(cpt, "show_stream")==0) {
Findjob_set_action_target(job, 29, NULL, 0);
} else if(strcmp(cpt, "get_any_xattr")==0) {
Findjob_set_action_target(job, 33, NULL, 0);
} else if(strcmp(cpt, "get_md5")==0) {
Findjob_set_action_target(job, 34, NULL, 0);
} else {
sprintf(xorriso->info_text, "-find -exec: unknown action %s",
Text_shellsafe(argv[i], sfe, 0));
@ -15616,6 +15623,7 @@ int Xorriso_option_fs(struct XorrisO *xorriso, char *size, int flag)
*/
/* @param flag bit0= recursive -getfacl_r
bit1= getfattr rather than getfacl
bit3= with bit1: do not ignore eventual non-user attributes
*/
int Xorriso_option_getfacli(struct XorrisO *xorriso,
int argc, char **argv, int *idx, int flag)
@ -15646,7 +15654,7 @@ int Xorriso_option_getfacli(struct XorrisO *xorriso,
Findjob_destroy(&job, 0);
} else {
if(flag & 2)
ret= Xorriso_getfattr(xorriso, NULL, optv[i], NULL, 0);
ret= Xorriso_getfattr(xorriso, NULL, optv[i], NULL, flag & 8);
else
ret= Xorriso_getfacl(xorriso, NULL, optv[i], NULL, 0);
}