New API options isoburn_ropt_noino and isoburn_igopt_hardlinks
This commit is contained in:
parent
b445427d0f
commit
3c2d2dd3e1
@ -408,6 +408,16 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
|
||||
iso_write_opts_set_rockridge(wopts, opts->rockridge);
|
||||
iso_write_opts_set_joliet(wopts, opts->joliet);
|
||||
iso_write_opts_set_iso1999(wopts, opts->iso1999);
|
||||
|
||||
/* <<< #ifdef shall be removed when libisofs-0.6.20 is released */
|
||||
#ifdef Libisofs_hardlink_prooF
|
||||
|
||||
iso_write_opts_set_hardlinks(wopts, opts->hardlinks);
|
||||
if(opts->hardlinks)
|
||||
iso_write_opts_set_rrip_1_10_px_ino(wopts, 1);
|
||||
|
||||
#endif
|
||||
|
||||
iso_write_opts_set_aaip(wopts, opts->aaip);
|
||||
iso_write_opts_set_omit_version_numbers(wopts, opts->omit_version_numbers);
|
||||
iso_write_opts_set_allow_deep_paths(wopts, opts->allow_deep_paths);
|
||||
@ -643,6 +653,7 @@ int isoburn_ropt_new(struct isoburn_read_opts **new_o, int flag)
|
||||
o->noaaip= 1;
|
||||
o->noacl= 1;
|
||||
o->noea= 1;
|
||||
o->noino= 1;
|
||||
o->preferjoliet= 0;
|
||||
o->uid= geteuid();
|
||||
o->gid= getegid();
|
||||
@ -679,6 +690,7 @@ int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext)
|
||||
o->noaaip= !!(ext & 32);
|
||||
o->noacl= !!(ext & 64);
|
||||
o->noea= !!(ext & 128);
|
||||
o->noino= !!(ext & 256);
|
||||
return(1);
|
||||
}
|
||||
|
||||
@ -687,7 +699,8 @@ int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext)
|
||||
{
|
||||
*ext= (!!o->norock) | ((!!o->nojoliet)<<1) | ((!!o->noiso1999)<<2) |
|
||||
((!!o->preferjoliet)<<3) | ((!!o->pretend_blank)<<4) |
|
||||
((!!o->noaaip) << 5) | ((!!o->noacl) << 6) | ((!!o->noea) << 7);
|
||||
((!!o->noaaip) << 5) | ((!!o->noacl) << 6) | ((!!o->noea) << 7) |
|
||||
((!!o->noino) << 8);
|
||||
return(1);
|
||||
}
|
||||
|
||||
@ -800,6 +813,8 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag)
|
||||
o->rockridge= 1;
|
||||
o->joliet= 0;
|
||||
o->iso1999= 0;
|
||||
o->hardlinks= 0;
|
||||
o->aaip = 0;
|
||||
o->omit_version_numbers= 0;
|
||||
o->allow_deep_paths= 1;
|
||||
o->allow_longer_paths= 0;
|
||||
@ -858,6 +873,7 @@ int isoburn_igopt_set_extensions(struct isoburn_imgen_opts *o, int ext)
|
||||
o->rockridge= !!(ext&1);
|
||||
o->joliet= !!(ext&2);
|
||||
o->iso1999= !!(ext&4);
|
||||
o->hardlinks= !!(ext & 8);
|
||||
o->aaip= !!(ext & 32);
|
||||
return(1);
|
||||
}
|
||||
@ -866,7 +882,7 @@ int isoburn_igopt_set_extensions(struct isoburn_imgen_opts *o, int ext)
|
||||
int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext)
|
||||
{
|
||||
*ext= (!!o->rockridge) | ((!!o->joliet)<<1) | ((!!o->iso1999)<<2) |
|
||||
((!!o->aaip) << 5);
|
||||
((!!o->hardlinks) << 3) | ((!!o->aaip) << 5);
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
@ -258,6 +258,9 @@ struct isoburn_read_opts {
|
||||
unsigned int noacl:1; /* Do not read ACL from external file objects */
|
||||
unsigned int noea:1; /* Do not read XFS-style EA from externals */
|
||||
|
||||
/* ts A90508 */
|
||||
unsigned int noino:1; /* Discard eventual PX inode numbers */
|
||||
|
||||
unsigned int preferjoliet:1;
|
||||
/*< When both Joliet and RR extensions are present, the RR
|
||||
* tree is used. If you prefer using Joliet, set this to 1. */
|
||||
@ -319,8 +322,11 @@ struct isoburn_imgen_opts {
|
||||
unsigned int joliet :1;
|
||||
unsigned int iso1999 :1;
|
||||
|
||||
/* ts A90121 */
|
||||
unsigned int aaip:1; /* Write eventual AAIP info containing ACL and EA */
|
||||
/* Whether to mark suitable IsoNode as hardlinks in RRIP PX */
|
||||
unsigned int hardlinks :1;
|
||||
|
||||
/* Write eventual AAIP info containing ACL and EA */
|
||||
unsigned int aaip :1;
|
||||
|
||||
/* relaxed constraints */
|
||||
|
||||
|
@ -27,8 +27,6 @@
|
||||
|
||||
#endif /* Xorriso_standalonE */
|
||||
|
||||
#define Libisoburn_with_aaiP yes
|
||||
|
||||
#include "isoburn.h"
|
||||
#include "libisoburn.h"
|
||||
|
||||
@ -202,10 +200,14 @@ create_blank_image:;
|
||||
/* Important: do not return until iso_read_opts_free() */
|
||||
iso_read_opts_set_start_block(ropts, ms_block);
|
||||
iso_read_opts_set_no_rockridge(ropts, read_opts->norock);
|
||||
|
||||
#ifdef Libisoburn_with_aaiP
|
||||
iso_read_opts_set_no_aaip(ropts, read_opts->noaaip);
|
||||
#endif /* Libisoburn_with_aaiP */
|
||||
|
||||
/* <<< #ifdef shall be removed when libisofs-0.6.20 is released */
|
||||
#ifdef Libisofs_hardlink_prooF
|
||||
|
||||
iso_read_opts_set_new_inos(ropts, read_opts->noino);
|
||||
|
||||
#endif /* Libisofs_hardlink_prooF */
|
||||
|
||||
iso_read_opts_set_no_joliet(ropts, read_opts->nojoliet);
|
||||
iso_read_opts_set_no_iso1999(ropts, read_opts->noiso1999);
|
||||
|
@ -730,6 +730,15 @@ int isoburn_ropt_destroy(struct isoburn_read_opts **o, int flag);
|
||||
@since 0.3.4
|
||||
Do not obtain XFS-style Extended Attributes from external
|
||||
filesystem objects (e.g. local filesystem files).
|
||||
bit8= noino
|
||||
@since 0.4.0
|
||||
Do not load eventual inode numbers from RRIP entry PX,
|
||||
but generate a new unique inode number for each imported
|
||||
IsoNode object.
|
||||
PX inode numbers allow to mark families of hardlinks by
|
||||
giving all family members the same inode number. libisofs
|
||||
keeps the PX inode numbers unaltered when IsoNode objects
|
||||
get written into an ISO image.
|
||||
@return 1 success, <=0 failure
|
||||
*/
|
||||
#define isoburn_ropt_norock 1
|
||||
@ -740,6 +749,7 @@ int isoburn_ropt_destroy(struct isoburn_read_opts **o, int flag);
|
||||
#define isoburn_ropt_noaaip 32
|
||||
#define isoburn_ropt_noacl 64
|
||||
#define isoburn_ropt_noea 128
|
||||
#define isoburn_ropt_noino 256
|
||||
|
||||
int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext);
|
||||
int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext);
|
||||
@ -904,6 +914,13 @@ int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level);
|
||||
Weaker than RockRidge, but also readable with Linux.
|
||||
bit2= iso1999
|
||||
This is rather exotic. Better do not surprise the readers.
|
||||
bit3= hardlinks
|
||||
Enable hardlink consolidation. IsoNodes which refer to the
|
||||
same source object and have the same properties will get
|
||||
the same ISO image inode numbers.
|
||||
If combined with isoburn_igopt_rrip_version_1_10 below,
|
||||
then the PX entry layout of RRIP-1.12 will be used within
|
||||
RRIP-1.10 (mkisofs does this without causing visible trouble).
|
||||
bit5= aaip
|
||||
The libisofs specific SUSP based extension of ECMA-119 which
|
||||
can encode ACL and XFS-style Extended Attributes.
|
||||
@ -912,7 +929,7 @@ int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level);
|
||||
#define isoburn_igopt_rockridge 1
|
||||
#define isoburn_igopt_joliet 2
|
||||
#define isoburn_igopt_iso1999 4
|
||||
/* ts A90122 */
|
||||
#define isoburn_igopt_hardlinks 8
|
||||
#define isoburn_igopt_aaip 32
|
||||
int isoburn_igopt_set_extensions(struct isoburn_imgen_opts *o, int ext);
|
||||
int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);
|
||||
|
@ -1 +1 @@
|
||||
#define Xorriso_timestamP "2009.05.08.073642"
|
||||
#define Xorriso_timestamP "2009.05.09.201241"
|
||||
|
Loading…
Reference in New Issue
Block a user