New -osirrox option sparse= controls extraction into sparse files
This commit is contained in:
@ -1746,6 +1746,7 @@ int Xorriso_option_osirrox(struct XorrisO *xorriso, char *mode, int flag)
|
||||
{
|
||||
int l, allow_restore;
|
||||
char *npt, *cpt;
|
||||
double num= 0.0;
|
||||
|
||||
allow_restore= xorriso->allow_restore;
|
||||
|
||||
@ -1799,6 +1800,21 @@ int Xorriso_option_osirrox(struct XorrisO *xorriso, char *mode, int flag)
|
||||
xorriso->do_md5|= 3 << 6;
|
||||
} else if(strncmp(cpt, "check_md5_off", l)==0 && l >= 13) {
|
||||
xorriso->do_md5&= ~(3 << 6);
|
||||
} else if(strncmp(cpt, "sparse=", 7) == 0 && l >= 7) {
|
||||
if(strncmp(cpt + 7, "off", 3) == 0 && l == 10) {
|
||||
num= 0.0;
|
||||
} else {
|
||||
Xorriso__parse_size_param(cpt, 7, l, &num);
|
||||
if(num < 1.0)
|
||||
num= 0.0;
|
||||
if(num > 1.0 * 1024.0 * 1024.0 * 1024.0) {
|
||||
strcpy(xorriso->info_text,
|
||||
"osirrox sparse= too large (allowed: off, 1 to 1g)");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
xorriso->sparse_min_gap= num;
|
||||
} else {
|
||||
unknown_mode:;
|
||||
sprintf(xorriso->info_text, "-osirrox: unknown mode '%s'", cpt);
|
||||
|
Reference in New Issue
Block a user