Experimental -find action -exec set_filter with some hardcoded filter commands
This commit is contained in:
@ -2480,6 +2480,8 @@ struct FindjoB {
|
||||
24= getfacl
|
||||
25= setfacl access_acl default_acl
|
||||
26= getfattr
|
||||
27= setfattr
|
||||
28= set_filter name suffix
|
||||
*/
|
||||
int action;
|
||||
|
||||
@ -2506,8 +2508,8 @@ int Findjob_new(struct FindjoB **o, char *start_path, int flag)
|
||||
m->start_path= NULL;
|
||||
m->name_expr= NULL;
|
||||
m->file_type= 0;
|
||||
m->start_lba= -1;
|
||||
m->end_lba= -1;
|
||||
m->start_lba= 0;
|
||||
m->end_lba= 0;
|
||||
m->damage_filter= 0;
|
||||
m->commit_filter= 0;
|
||||
m->acl_filter= 0;
|
||||
@ -2611,7 +2613,10 @@ int Findjob_set_lba_range(struct FindjoB *o, int start_lba, int count,
|
||||
int flag)
|
||||
{
|
||||
o->start_lba= start_lba;
|
||||
o->end_lba= start_lba + count - 1;
|
||||
if(start_lba > 0)
|
||||
o->end_lba= start_lba + count - 1;
|
||||
else
|
||||
o->end_lba= start_lba - count + 1;
|
||||
return(1);
|
||||
}
|
||||
|
||||
@ -6955,7 +6960,8 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
||||
(*result)|= 64;
|
||||
}
|
||||
}
|
||||
if(S_ISREG(s2.st_mode) && s1.st_size != s2.st_size) {
|
||||
if((!(xorriso->do_aaip & 32)) &&
|
||||
S_ISREG(s2.st_mode) && s1.st_size != s2.st_size) {
|
||||
sprintf(respt, "%s st_size : %.f <> %.f diff= %.f\n",
|
||||
a, (double) s1.st_size, (double) s2.st_size,
|
||||
((double) s1.st_size) - (double) s2.st_size);
|
||||
@ -13696,6 +13702,15 @@ not_enough_arguments:;
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
Findjob_set_action_text_2(job, 27, argv[i - 1], argv[i], 0);
|
||||
} else if(strcmp(cpt, "set_filter")==0) {
|
||||
if(i+2>=end_idx)
|
||||
goto not_enough_arguments;
|
||||
i+= 2;
|
||||
Findjob_set_action_text_2(job, 28, argv[i - 1], argv[i], 0);
|
||||
if(!(flag&2)) {
|
||||
Xorriso_pacifier_reset(xorriso, 0);
|
||||
mem_lut= xorriso->last_update_time;
|
||||
}
|
||||
} else {
|
||||
sprintf(xorriso->info_text, "-find -exec: unknown action %s",
|
||||
Text_shellsafe(argv[i], sfe, 0));
|
||||
@ -13719,6 +13734,9 @@ ex:;
|
||||
if(deleter && !(flag&2))
|
||||
Xorriso_pacifier_callback(xorriso, "iso_rr_paths deleted",
|
||||
xorriso->pacifier_count, 0, "", 1|2);
|
||||
else if(first_job->action == 28 && !(flag&2))
|
||||
Xorriso_pacifier_callback(xorriso, "file filters processed",
|
||||
xorriso->pacifier_count, 0, "", 1 | 2);
|
||||
else if(mem_lut!=xorriso->last_update_time && mem_lut!=0.0 && !(flag&2))
|
||||
Xorriso_pacifier_callback(xorriso, "content bytes read",
|
||||
xorriso->pacifier_count, 0, "", 1);
|
||||
|
Reference in New Issue
Block a user