New -lfa_flags mode "restore_single"

This commit is contained in:
2024-09-08 12:22:27 +02:00
parent 66a7440b0c
commit b2ae46a4cf
9 changed files with 188 additions and 90 deletions

View File

@ -217,7 +217,7 @@ int Xorriso_option_lfa_flags(struct XorrisO *xorriso, char *mode, int flag)
}
}
} else if(l >= 14 && strncmp(cpt, "restore_error=", 14) == 0) {
Xorriso__to_upper(cpt + 14, severity, (int) (int) sizeof(severity), 0);
Xorriso__to_upper(cpt + 14, severity, (int) sizeof(severity), 0);
if(strcmp(severity, "SILENT") != 0) {
ret= Xorriso__text_to_sev(severity, &sev, 0);
if(ret<=0) {
@ -239,6 +239,12 @@ int Xorriso_option_lfa_flags(struct XorrisO *xorriso, char *mode, int flag)
Xorriso__to_lower(severity, xorriso->lfa_restore_err_sev,
sizeof(xorriso->lfa_restore_err_sev), 0);
} else if(l >= 14 && strncmp(cpt, "restore_single", 14) == 0) {
xorriso->lfa_flags_setting|= 1 << 16;
} else if(l >= 14 && strncmp(cpt, "no_restore_single", 14) == 0) {
xorriso->lfa_flags_setting&= ~(1 << 16);
} else if(l == 7 && strncmp(cpt, "default", l) == 0) {
xorriso->lfa_flags_setting= xorriso->lfa_flags_default;
xorriso->lfa_restore_mask= ~((uint64_t) 0);
@ -258,7 +264,7 @@ int Xorriso_option_lfa_flags(struct XorrisO *xorriso, char *mode, int flag)
}
xorriso->do_aaip&= ~(31 << 11);
if(xorriso->lfa_flags_setting & 1)
xorriso->do_aaip|= xorriso->lfa_flags_setting & (31 << 11);
xorriso->do_aaip|= xorriso->lfa_flags_setting & (63 << 11);
ret= Xorriso_set_ignore_aclea(xorriso, 0);
if(ret <= 0)
goto ex;