New command -update_lxi

This commit is contained in:
2016-12-05 14:35:04 +01:00
parent 9b75d21e2a
commit 7b12dd0dda
12 changed files with 267 additions and 94 deletions

View File

@ -631,6 +631,7 @@ int Xorriso_alloc_pattern_mem(struct XorrisO *xorriso, off_t mem,
/* @param flag bit0= a match count !=1 is a FAILURE event
bit1= with bit0 tolerate 0 matches if pattern is a constant
bit3= do not add unresolved pattern to filev
*/
int Xorriso_expand_disk_pattern(struct XorrisO *xorriso,
int num_patterns, char **patterns, int extra_filec,
@ -679,7 +680,8 @@ int Xorriso_expand_disk_pattern(struct XorrisO *xorriso,
mem, &dive_count, 1 | abs_adr);
if(ret<=0)
goto ex;
if(was_count==count && strcmp(patterns[i],"*")!=0 && (flag&3)!=1) {
if(was_count==count && strcmp(patterns[i],"*")!=0 && (flag&3)!=1 &&
!(flag & 8)) {
count++;
ret= Xorriso_eval_nonmatch(xorriso, patterns[i],
&nonconst_mismatches, mem, 0);
@ -697,7 +699,7 @@ int Xorriso_expand_disk_pattern(struct XorrisO *xorriso,
(*mem)+= extra_filec * sizeof(char *);
if(count<=0)
{ret= 0; goto ex;}
{ret= !(flag & 8); goto ex;}
ret= Xorriso_alloc_pattern_mem(xorriso, *mem, count, filev, 0);
if(ret<=0)
@ -709,7 +711,7 @@ int Xorriso_expand_disk_pattern(struct XorrisO *xorriso,
ret= Xorriso_prepare_expansion_pattern(xorriso, patterns[i], 4);
if(ret<=0)
goto ex;
if(ret == 2)
if(ret==2)
abs_adr= 4;
if(patterns[i][0]=='/' || abs_adr) {
@ -727,7 +729,8 @@ int Xorriso_expand_disk_pattern(struct XorrisO *xorriso,
if(ret<=0)
goto ex;
if(was_filec == *filec && strcmp(patterns[i],"*")!=0) {
if(was_filec == *filec && strcmp(patterns[i],"*")!=0 && (flag & 3) != 1 &&
!(flag & 8)) {
(*filev)[*filec]= strdup(patterns[i]);
if((*filev)[*filec]==NULL) {
(*mem)= strlen(patterns[i])+1;