New -zisofs option by_magic=on
This commit is contained in:
parent
572dfb1584
commit
1ee9e2a16f
@ -2,7 +2,7 @@
|
|||||||
.\" First parameter, NAME, should be all caps
|
.\" First parameter, NAME, should be all caps
|
||||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||||
.\" other parameters are allowed: see man(7), man(1)
|
.\" other parameters are allowed: see man(7), man(1)
|
||||||
.TH XORRISO 1 "Apr 11, 2009"
|
.TH XORRISO 1 "Apr 13, 2009"
|
||||||
.\" Please adjust this date whenever revising the manpage.
|
.\" Please adjust this date whenever revising the manpage.
|
||||||
.\"
|
.\"
|
||||||
.\" Some roff macros, for reference:
|
.\" Some roff macros, for reference:
|
||||||
@ -1808,7 +1808,11 @@ Parameters are:
|
|||||||
.br
|
.br
|
||||||
"block_size="32k|64k|128k size of compression blocks
|
"block_size="32k|64k|128k size of compression blocks
|
||||||
.br
|
.br
|
||||||
"default" same as "level=6:block_size=32k"
|
"by_magic=on" enables an expensive test at image generation time which checks
|
||||||
|
files from disk whether they already are zisofs compressed, e.g. by program
|
||||||
|
mkzftree.
|
||||||
|
.br
|
||||||
|
"default" same as "level=6:block_size=32k:by_magic=off"
|
||||||
.TP
|
.TP
|
||||||
\fB\-speed\fR number[k|m|c|d|b]
|
\fB\-speed\fR number[k|m|c|d|b]
|
||||||
Set the burn speed. Default is 0 = maximum speed.
|
Set the burn speed. Default is 0 = maximum speed.
|
||||||
@ -2692,7 +2696,7 @@ Personality "\fBmkisofs\fR" accepts the options listed with:
|
|||||||
-as mkisofs -help --
|
-as mkisofs -help --
|
||||||
.br
|
.br
|
||||||
Among them: -R (always on), -J, -o, -M, -C, -path-list, -m, -exclude-list,
|
Among them: -R (always on), -J, -o, -M, -C, -path-list, -m, -exclude-list,
|
||||||
-f, -print-size, -pad, -no-pad, -V, -v, -version, -graft-points,
|
-f, -print-size, -pad, -no-pad, -V, -v, -version, -graft-points, -z,
|
||||||
-no-emul-boot, -b, -c, -boot-info-table, -boot-load-size, -input-charset,
|
-no-emul-boot, -b, -c, -boot-info-table, -boot-load-size, -input-charset,
|
||||||
-output-charset, pathspecs as with xorriso -add.
|
-output-charset, pathspecs as with xorriso -add.
|
||||||
A lot of options are not supported and lead to failure of the mkisofs
|
A lot of options are not supported and lead to failure of the mkisofs
|
||||||
|
@ -4124,6 +4124,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
|
|||||||
m->filter_list_closed= 0;
|
m->filter_list_closed= 0;
|
||||||
m->zlib_level_default= m->zlib_level= 6;
|
m->zlib_level_default= m->zlib_level= 6;
|
||||||
m->zisofs_block_size= m->zisofs_block_size_default= (1 << 15);
|
m->zisofs_block_size= m->zisofs_block_size_default= (1 << 15);
|
||||||
|
m->zisofs_by_magic= 0;
|
||||||
m->do_overwrite= 2;
|
m->do_overwrite= 2;
|
||||||
m->do_reassure= 0;
|
m->do_reassure= 0;
|
||||||
m->drive_blacklist= NULL;
|
m->drive_blacklist= NULL;
|
||||||
@ -9946,6 +9947,8 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
|
|||||||
" -no-emul-boot Boot image is 'no emulation' image",
|
" -no-emul-boot Boot image is 'no emulation' image",
|
||||||
" -boot-info-table Patch boot image with info table",
|
" -boot-info-table Patch boot image with info table",
|
||||||
" isolinux_mbr=on|auto|off Control eventual isohybrid MBR generation",
|
" isolinux_mbr=on|auto|off Control eventual isohybrid MBR generation",
|
||||||
|
" -z, -transparent-compression",
|
||||||
|
" Enable transparent compression of files",
|
||||||
" -v, -verbose Verbose",
|
" -v, -verbose Verbose",
|
||||||
" -version Print the current version",
|
" -version Print the current version",
|
||||||
"@End_of_helptexT@"
|
"@End_of_helptexT@"
|
||||||
@ -10094,6 +10097,9 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
|
|||||||
Xorriso_option_acl(xorriso, "on", 0);
|
Xorriso_option_acl(xorriso, "on", 0);
|
||||||
} else if(strcmp(argv[i], "--xattr")==0) {
|
} else if(strcmp(argv[i], "--xattr")==0) {
|
||||||
Xorriso_option_xattr(xorriso, "on", 0);
|
Xorriso_option_xattr(xorriso, "on", 0);
|
||||||
|
} else if(strcmp(argv[i], "-z")==0 ||
|
||||||
|
strcmp(argv[i], "-transparent-compression")==0) {
|
||||||
|
Xorriso_option_zisofs(xorriso, "by_magic=on", 0);
|
||||||
} else
|
} else
|
||||||
was_other_option= 1;
|
was_other_option= 1;
|
||||||
|
|
||||||
@ -10302,6 +10308,9 @@ not_enough_args:;
|
|||||||
/* was already handled in first argument scan */;
|
/* was already handled in first argument scan */;
|
||||||
} else if(strcmp(argv[i], "--xattr")==0) {
|
} else if(strcmp(argv[i], "--xattr")==0) {
|
||||||
/* was already handled in first argument scan */;
|
/* was already handled in first argument scan */;
|
||||||
|
} else if(strcmp(argv[i], "-z")==0 ||
|
||||||
|
strcmp(argv[i], "-transparent-compression")==0) {
|
||||||
|
/* was already handled in first argument scan */;
|
||||||
} else if(argv[i][0]=='-' && argv[i][1]!=0) {
|
} else if(argv[i][0]=='-' && argv[i][1]!=0) {
|
||||||
sprintf(xorriso->info_text, "-as %s: Unknown option %s",
|
sprintf(xorriso->info_text, "-as %s: Unknown option %s",
|
||||||
whom, Text_shellsafe(argv[i], sfe, 0));
|
whom, Text_shellsafe(argv[i], sfe, 0));
|
||||||
@ -14321,7 +14330,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
|
|||||||
"compressed content is detected with a file in the ISO image.",
|
"compressed content is detected with a file in the ISO image.",
|
||||||
" -zisofs option[:options]",
|
" -zisofs option[:options]",
|
||||||
" Set global zisofs parameters:",
|
" Set global zisofs parameters:",
|
||||||
" level=0|...|9 , block_size=32k|64k|128k",
|
" level=0|...|9 , block_size=32k|64k|128k , by_magic=on|off",
|
||||||
"",
|
"",
|
||||||
"Write-to-media options:",
|
"Write-to-media options:",
|
||||||
" -rollback Discard the manipulated ISO image and reload it.",
|
" -rollback Discard the manipulated ISO image and reload it.",
|
||||||
@ -14464,13 +14473,14 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
|
|||||||
"",
|
"",
|
||||||
"Compatibility emulation (argument list may be ended by list delimiter --):",
|
"Compatibility emulation (argument list may be ended by list delimiter --):",
|
||||||
" -as mkisofs [-help|-version|-o|-R|-J|-V|-P|-f|-m|-exclude-list|-no-pad|",
|
" -as mkisofs [-help|-version|-o|-R|-J|-V|-P|-f|-m|-exclude-list|-no-pad|",
|
||||||
" -M|-C|-graft-points|-path-list|pathspecs|",
|
" -M|-C|-graft-points|-path-list|pathspecs|-z|",
|
||||||
" -no-emul-boot|-b|-c|-boot-info-table|-boot-load-size]",
|
" -no-emul-boot|-b|-c|-boot-info-table|-boot-load-size]",
|
||||||
" Perform some mkisofs gestures, understand pathspecs as mkisofs",
|
" Perform some mkisofs gestures, understand pathspecs as mkisofs",
|
||||||
" does. Commit happens outside emulation at usual occasions.",
|
" does. Commit happens outside emulation at usual occasions.",
|
||||||
" -as cdrecord [-help|-v|dev=|speed=|blank=|fs=|-eject|-atip|padsize=|path|-]",
|
" -as cdrecord [-help|-v|dev=|speed=|blank=|fs=|-eject|-atip|padsize=|-multi]",
|
||||||
|
" path|-",
|
||||||
" Perform some cdrecord gestures, eventually write at most one",
|
" Perform some cdrecord gestures, eventually write at most one",
|
||||||
" data track to blank or overwriteable media.",
|
" data track to blank, appendable or overwriteable media.",
|
||||||
" -pacifier \"xorriso\"|\"cdrecord\"|\"mkisofs\"",
|
" -pacifier \"xorriso\"|\"cdrecord\"|\"mkisofs\"",
|
||||||
" Choose format of UPDATE pacifier during write operations.",
|
" Choose format of UPDATE pacifier during write operations.",
|
||||||
"",
|
"",
|
||||||
@ -17094,9 +17104,16 @@ int Xorriso_option_zisofs(struct XorrisO *xorriso, char *mode, int flag)
|
|||||||
}
|
}
|
||||||
xorriso->zisofs_block_size= num;
|
xorriso->zisofs_block_size= num;
|
||||||
|
|
||||||
|
} else if(strncmp(cpt, "by_magic=", 8)==0) {
|
||||||
|
if(strncmp(cpt + 9, "on", l - 9) == 0)
|
||||||
|
xorriso->zisofs_by_magic= 1;
|
||||||
|
else
|
||||||
|
xorriso->zisofs_by_magic= 0;
|
||||||
|
|
||||||
} else if(strncmp(cpt, "default", l)==0) {
|
} else if(strncmp(cpt, "default", l)==0) {
|
||||||
xorriso->zlib_level= xorriso->zlib_level_default;
|
xorriso->zlib_level= xorriso->zlib_level_default;
|
||||||
xorriso->zisofs_block_size= xorriso->zisofs_block_size_default;
|
xorriso->zisofs_block_size= xorriso->zisofs_block_size_default;
|
||||||
|
xorriso->zisofs_by_magic= 0;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
unknown_mode:;
|
unknown_mode:;
|
||||||
|
@ -134,6 +134,7 @@ struct XorrisO { /* the global context of xorriso */
|
|||||||
int zlib_level_default;
|
int zlib_level_default;
|
||||||
int zisofs_block_size;
|
int zisofs_block_size;
|
||||||
int zisofs_block_size_default;
|
int zisofs_block_size_default;
|
||||||
|
int zisofs_by_magic;
|
||||||
|
|
||||||
int do_overwrite; /* 0=off, 1=on, 2=nondir */
|
int do_overwrite; /* 0=off, 1=on, 2=nondir */
|
||||||
int do_reassure; /* 0=off, 1=on, 2=tree */
|
int do_reassure; /* 0=off, 1=on, 2=tree */
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Xorriso_timestamP "2009.04.11.172644"
|
#define Xorriso_timestamP "2009.04.14.092306"
|
||||||
|
@ -1140,7 +1140,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
|||||||
struct burn_track **tracks;
|
struct burn_track **tracks;
|
||||||
enum burn_disc_status s;
|
enum burn_disc_status s;
|
||||||
IsoImage *image= NULL;
|
IsoImage *image= NULL;
|
||||||
IsoNode *node;
|
IsoNode *node, *root_node;
|
||||||
ElToritoBootImage *bootimg;
|
ElToritoBootImage *bootimg;
|
||||||
enum eltorito_boot_media_type emul_type= ELTORITO_NO_EMUL;
|
enum eltorito_boot_media_type emul_type= ELTORITO_NO_EMUL;
|
||||||
int profile_number;
|
int profile_number;
|
||||||
@ -1403,11 +1403,36 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
|||||||
if(ret<0)
|
if(ret<0)
|
||||||
{ret= 0; goto ex;}
|
{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 */;
|
/* >>> omit iso_image_update_sizes if the image was filled up very quickly */;
|
||||||
|
|
||||||
ret= iso_image_update_sizes(image);
|
ret= iso_image_update_sizes(image);
|
||||||
if(ret < 0) {
|
if(ret < 0) {
|
||||||
Xorriso_process_msg_queues(xorriso, 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);
|
ret= Xorriso_eval_problem_status(xorriso, 1, 0);
|
||||||
if(ret<0)
|
if(ret<0)
|
||||||
{ret= 0; goto ex;}
|
{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 Xorriso_status_zisofs(struct XorrisO *xorriso, char *filter, FILE *fp,
|
||||||
int flag)
|
int flag)
|
||||||
/*
|
/*
|
||||||
|
bit0= do only report non-default settings
|
||||||
bit1= do only report to fp
|
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);
|
iso_zisofs_get_refcounts(&ziso_count, &osiz_count, 0);
|
||||||
if((flag & 1) && xorriso->zlib_level == xorriso->zlib_level_default &&
|
if((flag & 1) && xorriso->zlib_level == xorriso->zlib_level_default &&
|
||||||
xorriso->zisofs_block_size == xorriso->zisofs_block_size_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;
|
return 2;
|
||||||
sprintf(xorriso->result_line,
|
sprintf(xorriso->result_line,
|
||||||
"-zisofs level=%d:block_size=%dk:ziso_used=%.f:osiz_used=%.f\n",
|
"-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->zlib_level, xorriso->zisofs_block_size / 1024,
|
||||||
(double) ziso_count, (double) osiz_count);
|
xorriso->zisofs_by_magic ? "on" : "off",
|
||||||
|
(double) ziso_count, (double) osiz_count);
|
||||||
|
|
||||||
Xorriso_status_result(xorriso, filter, fp, flag&2);
|
Xorriso_status_result(xorriso, filter, fp, flag&2);
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user