New -find pseudo tests -use_pattern , -or_use_pattern
This commit is contained in:
@ -720,6 +720,7 @@ int Xorriso_option_find(struct XorrisO *xorriso, int argc, char **argv,
|
||||
if(!(flag&2))
|
||||
xorriso->find_compare_result= 1;
|
||||
for(i= *idx+1; i<end_idx; i++) {
|
||||
ret= 1;
|
||||
if(strcmp(argv[i], "-name")==0) {
|
||||
if(i+1>=end_idx) {
|
||||
not_enough_arguments:;
|
||||
@ -863,41 +864,86 @@ not_enough_arguments:;
|
||||
}
|
||||
} else if(strcmp(argv[i], "-true") == 0) {
|
||||
ret= Findjob_set_false(job, -1, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
} else if(strcmp(argv[i], "-false") == 0) {
|
||||
ret= Findjob_set_false(job, 1, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
} else if(strcmp(argv[i], "-decision") == 0) {
|
||||
if(i+1>=end_idx)
|
||||
goto not_enough_arguments;
|
||||
i++;
|
||||
ret= Findjob_set_decision(job, argv[i], 0);
|
||||
ret= Findjob_set_arg1(job, 11, argv[i], 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
} else if(strcmp(argv[i], "-prune") == 0) {
|
||||
ret= Findjob_set_prune(job, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
} else if(strcmp(argv[i], "-sub") == 0 || strcmp(argv[i], "(") == 0) {
|
||||
ret= Findjob_open_bracket(job, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
} else if(strcmp(argv[i], "-subend") == 0 || strcmp(argv[i], ")") == 0) {
|
||||
ret= Findjob_close_bracket(job, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
} else if(strcmp(argv[i], "-not") == 0 || strcmp(argv[i], "!") == 0) {
|
||||
ret= Findjob_not(job, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
} else if(strcmp(argv[i], "-and") == 0 || strcmp(argv[i], "-a") == 0) {
|
||||
ret= Findjob_and(job, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
} else if(strcmp(argv[i], "-or") == 0 || strcmp(argv[i], "-o") == 0) {
|
||||
ret= Findjob_or(job, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
} else if(strcmp(argv[i], "-if") == 0) {
|
||||
ret= Findjob_if(job, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
} else if(strcmp(argv[i], "-then") == 0) {
|
||||
ret= Findjob_then(job, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
} else if(strcmp(argv[i], "-else") == 0) {
|
||||
ret= Findjob_else(job, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
} else if(strcmp(argv[i], "-elseif") == 0) {
|
||||
ret= Findjob_elseif(job, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
} else if(strcmp(argv[i], "-endif") == 0) {
|
||||
ret= Findjob_endif(job, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
} else if(strcmp(argv[i], "-sort_lba") == 0) {
|
||||
flag|= 8;
|
||||
/* If an operator is open: insert a -true test, else do nothing */
|
||||
ret= Findjob_set_false(job, -1, 1);
|
||||
if(ret == 2)
|
||||
ret= 1;
|
||||
} else if(strcmp(argv[i], "-use_pattern") == 0 ||
|
||||
strcmp(argv[i], "-or_use_pattern") == 0) {
|
||||
if(i + 1 >= end_idx)
|
||||
goto not_enough_arguments;
|
||||
i++;
|
||||
ret= Findjob_set_arg1(job,
|
||||
22 + (strcmp(argv[i], "-or_use_pattern") == 0),
|
||||
argv[i], 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
} else if(strcmp(argv[i], "-or_use_pattern") == 0) {
|
||||
if(i + 1 >= end_idx)
|
||||
goto not_enough_arguments;
|
||||
i++;
|
||||
ret= Findjob_set_arg1(job, 23, argv[i], 1);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
} else if(strcmp(argv[i], "-exec")==0) {
|
||||
if(i+1>=end_idx) {
|
||||
not_enough_exec_arguments:;
|
||||
|
Reference in New Issue
Block a user