New -zisofs option by_magic=on
This commit is contained in:
@ -1140,7 +1140,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
struct burn_track **tracks;
|
||||
enum burn_disc_status s;
|
||||
IsoImage *image= NULL;
|
||||
IsoNode *node;
|
||||
IsoNode *node, *root_node;
|
||||
ElToritoBootImage *bootimg;
|
||||
enum eltorito_boot_media_type emul_type= ELTORITO_NO_EMUL;
|
||||
int profile_number;
|
||||
@ -1403,11 +1403,36 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
if(ret<0)
|
||||
{ret= 0; goto ex;}
|
||||
|
||||
if(xorriso->zisofs_by_magic) {
|
||||
sprintf(xorriso->info_text,
|
||||
"Checking disk file content for zisofs compression headers.");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "UPDATE", 0);
|
||||
root_node= (IsoNode *) iso_image_get_root(image);
|
||||
ret= iso_node_zf_by_magic(root_node,
|
||||
(xorriso->out_drive_handle == xorriso->in_drive_handle) | 2 | 16);
|
||||
if(ret<0) {
|
||||
Xorriso_report_iso_error(xorriso, "", ret,
|
||||
"Error when examining file content for zisofs headers",
|
||||
0, "FAILURE", 1);
|
||||
}
|
||||
ret= Xorriso_eval_problem_status(xorriso, 1, 0);
|
||||
if(ret<0)
|
||||
{ret= 0; goto ex;}
|
||||
sprintf(xorriso->info_text,
|
||||
"Check for zisofs compression headers done.");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "UPDATE", 0);
|
||||
}
|
||||
|
||||
/* >>> omit iso_image_update_sizes if the image was filled up very quickly */;
|
||||
|
||||
ret= iso_image_update_sizes(image);
|
||||
if(ret < 0) {
|
||||
Xorriso_process_msg_queues(xorriso, 0);
|
||||
if(ret<0) {
|
||||
Xorriso_report_iso_error(xorriso, "", ret,
|
||||
"Error when updating file sizes",
|
||||
0, "FAILURE", 1);
|
||||
}
|
||||
ret= Xorriso_eval_problem_status(xorriso, 1, 0);
|
||||
if(ret<0)
|
||||
{ret= 0; goto ex;}
|
||||
@ -10364,6 +10389,7 @@ int Xorriso_set_zisofs_params(struct XorrisO *xorriso, int flag)
|
||||
int Xorriso_status_zisofs(struct XorrisO *xorriso, char *filter, FILE *fp,
|
||||
int flag)
|
||||
/*
|
||||
bit0= do only report non-default settings
|
||||
bit1= do only report to fp
|
||||
*/
|
||||
{
|
||||
@ -10372,12 +10398,16 @@ int Xorriso_status_zisofs(struct XorrisO *xorriso, char *filter, FILE *fp,
|
||||
iso_zisofs_get_refcounts(&ziso_count, &osiz_count, 0);
|
||||
if((flag & 1) && xorriso->zlib_level == xorriso->zlib_level_default &&
|
||||
xorriso->zisofs_block_size == xorriso->zisofs_block_size_default &&
|
||||
ziso_count == 0 && osiz_count == 0)
|
||||
xorriso->zisofs_by_magic == 0 &&
|
||||
ziso_count == 0 && osiz_count == 0 &&
|
||||
filter[0] == 0)
|
||||
return 2;
|
||||
sprintf(xorriso->result_line,
|
||||
"-zisofs level=%d:block_size=%dk:ziso_used=%.f:osiz_used=%.f\n",
|
||||
xorriso->zlib_level, xorriso->zisofs_block_size / 1024,
|
||||
(double) ziso_count, (double) osiz_count);
|
||||
"-zisofs level=%d:block_size=%dk:by_magic=%s:ziso_used=%.f:osiz_used=%.f\n",
|
||||
xorriso->zlib_level, xorriso->zisofs_block_size / 1024,
|
||||
xorriso->zisofs_by_magic ? "on" : "off",
|
||||
(double) ziso_count, (double) osiz_count);
|
||||
|
||||
Xorriso_status_result(xorriso, filter, fp, flag&2);
|
||||
return(1);
|
||||
}
|
||||
|
Reference in New Issue
Block a user