New flag bit 12 "do not ignore XFS-style project ids" with isoburn_drive_aquire(). New isoburn_read_opts extension isoburn_ropt_projid.

This commit is contained in:
Thomas Schmitt 2024-11-03 19:24:28 +01:00
parent f42884bb2b
commit 923bfa0be9
6 changed files with 28 additions and 7 deletions

View File

@ -346,6 +346,7 @@ int isoburn_is_intermediate_dvd_rw(struct burn_drive *d, int flag)
bit10= if not bit6: accept all xattr namespaces from external
filesystems, not only "user.".
bit11= load lfa_flags (chattr) from external filesystems
bit12= load XFS-style project ids from external filesystems
bit15= ignore non-settable lfa_flags when importing files from
disk and do not record "isofs.fa" if the other flags
are all zero
@ -395,6 +396,7 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
iso_image_set_ignore_aclea((*o)->image,
((flag >> 5 ) & 3) | ((!!(flag & 1024)) << 3) |
((!!(flag & (1 << 11))) << 2) |
((!!(flag & (1 << 12))) << 6) |
((!!(flag & (1 << 15))) << 5));
#ifdef Hardcoded_cd_rW
@ -548,6 +550,7 @@ ex:
bit10= if not bit6: accept all xattr namespaces from external
filesystems, not only "user.".
bit11= load lfa_flags (chattr) from external filesystems
bit12= load XFS-style project ids from external filesystems
bit15= ignore non-settable lfa_flags when importing files from
disk and do not record "isofs.fa" if the other flags
are all zero
@ -577,8 +580,8 @@ int isoburn_drive_aquire(struct burn_drive_info *drive_infos[],
goto ex;
drive_grabbed= 1;
ret= isoburn_welcome_media(&o, (*drive_infos)[0].drive,
(flag & (8 | 16 | 32 | 64 | 128 | 512 | 1024 | (1 << 11) | ( 1 << 15))) |
!!(flag & 2));
(flag & (8 | 16 | 32 | 64 | 128 | 512 | 1024 | (1 << 11) | (1 << 12) |
(1 << 15))) | !!(flag & 2));
if(ret<=0)
goto ex;

View File

@ -7,7 +7,7 @@
Class core of libisoburn.
Copyright 2007 - 2009 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
Copyright 2007 - 2023 Thomas Schmitt <scdbackup@gmx.net>
Copyright 2007 - 2024 Thomas Schmitt <scdbackup@gmx.net>
Provided under GPL version 2 or later.
*/
@ -883,6 +883,7 @@ int isoburn_ropt_new(struct isoburn_read_opts **new_o, int flag)
o->noacl= 1;
o->noea= 1;
o->lfa_flags= 0;
o->projid= 0;
o->noino= 1;
o->nomd5= 1;
o->preferjoliet= 0;
@ -986,6 +987,7 @@ int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext)
o->joliet_map_mode= !!(ext & 32768);
o->lfa_flags= !!(ext & (1 << 16));
o->lfa_only_settable= !!(ext & (1 << 17));
o->projid= !!(ext & (1 << 18));
return(1);
}

View File

@ -340,7 +340,11 @@ struct isoburn_read_opts {
*/
/* ts C40826 */
unsigned int lfa_only_settable:1; /* Ignore non-settable flags from
from external filesystem objects
external filesystem objects
*/
/* ts C41010 */
unsigned int projid:1; /* Read XFS-style project ids from
external filesystem objects
*/
/* ts A90508 */
unsigned int noino:1; /* Discard eventual PX inode numbers */

View File

@ -355,7 +355,8 @@ create_blank_image:;
}
iso_image_set_ignore_aclea(o->image, read_opts->noacl | (read_opts->noea << 1)
| (read_opts->lfa_flags << 2)
| (read_opts->lfa_only_settable << 5));
| (read_opts->lfa_only_settable << 5)
| (read_opts->projid << 6));
/* Important: do not return until iso_read_opts_free() */

View File

@ -462,6 +462,11 @@ int isoburn_drive_scan_and_grab(struct burn_drive_info *drive_infos[],
This can later be overriden by isoburn_read_image()
according to its isoburn_read_opts.
@since 1.5.8
bit12= do not ignore XFS-style project ids from external
filesystems.
This can later be overriden by isoburn_read_image()
according to its isoburn_read_opts.
@since 1.5.8
bit15= ignore non-settable lfa_flags when importing files from
disk and do not record "isofs.fa" if the other flags
are all zero
@ -1011,7 +1016,12 @@ int isoburn_ropt_get_data_cache(struct isoburn_read_opts *o,
This overrides the setting by isoburn_drive_aquire().
@since 1.5.8
bit17= lfa_only_settable
gnore non-settable lfa_flags when importing files from
Ignore non-settable lfa_flags when importing files from
external filesystem objects (e.g. local filesystem files).
This overrides the setting by isoburn_drive_aquire().
@since 1.5.8
bit18= projid
Obtain XFS-style project ids from
external filesystem objects (e.g. local filesystem files).
This overrides the setting by isoburn_drive_aquire().
@since 1.5.8
@ -1036,6 +1046,7 @@ int isoburn_ropt_get_data_cache(struct isoburn_read_opts *o,
#define isoburn_ropt_joliet_stripped ( 16384 | 32768)
#define isoburn_ropt_lfa_flags (1 << 16)
#define isoburn_ropt_lfa_only_settable (1 << 17)
#define isoburn_ropt_projid (1 << 18)
int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext);
int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext);

View File

@ -1 +1 @@
#define Xorriso_timestamP "2024.10.26.220214"
#define Xorriso_timestamP "2024.11.03.182329"