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_rockridge(wopts, opts->rockridge);
|
||||||
iso_write_opts_set_joliet(wopts, opts->joliet);
|
iso_write_opts_set_joliet(wopts, opts->joliet);
|
||||||
iso_write_opts_set_iso1999(wopts, opts->iso1999);
|
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_aaip(wopts, opts->aaip);
|
||||||
iso_write_opts_set_omit_version_numbers(wopts, opts->omit_version_numbers);
|
iso_write_opts_set_omit_version_numbers(wopts, opts->omit_version_numbers);
|
||||||
iso_write_opts_set_allow_deep_paths(wopts, opts->allow_deep_paths);
|
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->noaaip= 1;
|
||||||
o->noacl= 1;
|
o->noacl= 1;
|
||||||
o->noea= 1;
|
o->noea= 1;
|
||||||
|
o->noino= 1;
|
||||||
o->preferjoliet= 0;
|
o->preferjoliet= 0;
|
||||||
o->uid= geteuid();
|
o->uid= geteuid();
|
||||||
o->gid= getegid();
|
o->gid= getegid();
|
||||||
@ -679,6 +690,7 @@ int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext)
|
|||||||
o->noaaip= !!(ext & 32);
|
o->noaaip= !!(ext & 32);
|
||||||
o->noacl= !!(ext & 64);
|
o->noacl= !!(ext & 64);
|
||||||
o->noea= !!(ext & 128);
|
o->noea= !!(ext & 128);
|
||||||
|
o->noino= !!(ext & 256);
|
||||||
return(1);
|
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) |
|
*ext= (!!o->norock) | ((!!o->nojoliet)<<1) | ((!!o->noiso1999)<<2) |
|
||||||
((!!o->preferjoliet)<<3) | ((!!o->pretend_blank)<<4) |
|
((!!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);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -800,6 +813,8 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag)
|
|||||||
o->rockridge= 1;
|
o->rockridge= 1;
|
||||||
o->joliet= 0;
|
o->joliet= 0;
|
||||||
o->iso1999= 0;
|
o->iso1999= 0;
|
||||||
|
o->hardlinks= 0;
|
||||||
|
o->aaip = 0;
|
||||||
o->omit_version_numbers= 0;
|
o->omit_version_numbers= 0;
|
||||||
o->allow_deep_paths= 1;
|
o->allow_deep_paths= 1;
|
||||||
o->allow_longer_paths= 0;
|
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->rockridge= !!(ext&1);
|
||||||
o->joliet= !!(ext&2);
|
o->joliet= !!(ext&2);
|
||||||
o->iso1999= !!(ext&4);
|
o->iso1999= !!(ext&4);
|
||||||
|
o->hardlinks= !!(ext & 8);
|
||||||
o->aaip= !!(ext & 32);
|
o->aaip= !!(ext & 32);
|
||||||
return(1);
|
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)
|
int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext)
|
||||||
{
|
{
|
||||||
*ext= (!!o->rockridge) | ((!!o->joliet)<<1) | ((!!o->iso1999)<<2) |
|
*ext= (!!o->rockridge) | ((!!o->joliet)<<1) | ((!!o->iso1999)<<2) |
|
||||||
((!!o->aaip) << 5);
|
((!!o->hardlinks) << 3) | ((!!o->aaip) << 5);
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -258,6 +258,9 @@ struct isoburn_read_opts {
|
|||||||
unsigned int noacl:1; /* Do not read ACL from external file objects */
|
unsigned int noacl:1; /* Do not read ACL from external file objects */
|
||||||
unsigned int noea:1; /* Do not read XFS-style EA from externals */
|
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;
|
unsigned int preferjoliet:1;
|
||||||
/*< When both Joliet and RR extensions are present, the RR
|
/*< When both Joliet and RR extensions are present, the RR
|
||||||
* tree is used. If you prefer using Joliet, set this to 1. */
|
* 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 joliet :1;
|
||||||
unsigned int iso1999 :1;
|
unsigned int iso1999 :1;
|
||||||
|
|
||||||
/* ts A90121 */
|
/* Whether to mark suitable IsoNode as hardlinks in RRIP PX */
|
||||||
unsigned int aaip:1; /* Write eventual AAIP info containing ACL and EA */
|
unsigned int hardlinks :1;
|
||||||
|
|
||||||
|
/* Write eventual AAIP info containing ACL and EA */
|
||||||
|
unsigned int aaip :1;
|
||||||
|
|
||||||
/* relaxed constraints */
|
/* relaxed constraints */
|
||||||
|
|
||||||
|
@ -27,8 +27,6 @@
|
|||||||
|
|
||||||
#endif /* Xorriso_standalonE */
|
#endif /* Xorriso_standalonE */
|
||||||
|
|
||||||
#define Libisoburn_with_aaiP yes
|
|
||||||
|
|
||||||
#include "isoburn.h"
|
#include "isoburn.h"
|
||||||
#include "libisoburn.h"
|
#include "libisoburn.h"
|
||||||
|
|
||||||
@ -202,10 +200,14 @@ create_blank_image:;
|
|||||||
/* Important: do not return until iso_read_opts_free() */
|
/* Important: do not return until iso_read_opts_free() */
|
||||||
iso_read_opts_set_start_block(ropts, ms_block);
|
iso_read_opts_set_start_block(ropts, ms_block);
|
||||||
iso_read_opts_set_no_rockridge(ropts, read_opts->norock);
|
iso_read_opts_set_no_rockridge(ropts, read_opts->norock);
|
||||||
|
|
||||||
#ifdef Libisoburn_with_aaiP
|
|
||||||
iso_read_opts_set_no_aaip(ropts, read_opts->noaaip);
|
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_joliet(ropts, read_opts->nojoliet);
|
||||||
iso_read_opts_set_no_iso1999(ropts, read_opts->noiso1999);
|
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
|
@since 0.3.4
|
||||||
Do not obtain XFS-style Extended Attributes from external
|
Do not obtain XFS-style Extended Attributes from external
|
||||||
filesystem objects (e.g. local filesystem files).
|
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
|
@return 1 success, <=0 failure
|
||||||
*/
|
*/
|
||||||
#define isoburn_ropt_norock 1
|
#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_noaaip 32
|
||||||
#define isoburn_ropt_noacl 64
|
#define isoburn_ropt_noacl 64
|
||||||
#define isoburn_ropt_noea 128
|
#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_set_extensions(struct isoburn_read_opts *o, int ext);
|
||||||
int isoburn_ropt_get_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.
|
Weaker than RockRidge, but also readable with Linux.
|
||||||
bit2= iso1999
|
bit2= iso1999
|
||||||
This is rather exotic. Better do not surprise the readers.
|
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
|
bit5= aaip
|
||||||
The libisofs specific SUSP based extension of ECMA-119 which
|
The libisofs specific SUSP based extension of ECMA-119 which
|
||||||
can encode ACL and XFS-style Extended Attributes.
|
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_rockridge 1
|
||||||
#define isoburn_igopt_joliet 2
|
#define isoburn_igopt_joliet 2
|
||||||
#define isoburn_igopt_iso1999 4
|
#define isoburn_igopt_iso1999 4
|
||||||
/* ts A90122 */
|
#define isoburn_igopt_hardlinks 8
|
||||||
#define isoburn_igopt_aaip 32
|
#define isoburn_igopt_aaip 32
|
||||||
int isoburn_igopt_set_extensions(struct isoburn_imgen_opts *o, int ext);
|
int isoburn_igopt_set_extensions(struct isoburn_imgen_opts *o, int ext);
|
||||||
int isoburn_igopt_get_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