|
|
|
@ -90,6 +90,7 @@ void isoburn_disc_erase(struct burn_drive *drive, int fast);
|
|
|
|
|
struct isoburn_read_opts { |
|
|
|
|
unsigned int norock:1; /*< Do not read Rock Ridge extensions */ |
|
|
|
|
unsigned int nojoliet:1; /*< Do not read Joliet extensions */ |
|
|
|
|
unsigned int noiso1999:1; /*< Do not read ISO 9660:1999 enhanced tree */ |
|
|
|
|
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. */ |
|
|
|
@ -107,6 +108,16 @@ struct isoburn_read_opts {
|
|
|
|
|
to 0 if not. */ |
|
|
|
|
unsigned int hasJoliet:1; /*< It will be set to 1 if Joliet extensions are
|
|
|
|
|
present, to 0 if not. */ |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* It will be set to 1 if the image is an ISO 9660:1999, i.e. it has |
|
|
|
|
* a version 2 Enhanced Volume Descriptor. |
|
|
|
|
*/ |
|
|
|
|
unsigned int hasIso1999:1; |
|
|
|
|
|
|
|
|
|
/** It will be set to 1 if El-Torito boot record is present, to 0 if not.*/ |
|
|
|
|
unsigned int hasElTorito:1; |
|
|
|
|
|
|
|
|
|
uint32_t size; /**< Will be filled with the size (in 2048 byte block) of
|
|
|
|
|
* the image, as reported in the PVM. */ |
|
|
|
|
unsigned int pretend_blank:1; /* always create empty image */ |
|
|
|
@ -120,34 +131,70 @@ struct isoburn_source_opts {
|
|
|
|
|
/* Options for image generation */ |
|
|
|
|
|
|
|
|
|
int level; /**< ISO level to write at. */ |
|
|
|
|
int flags; /**< Which extensions to support. */ |
|
|
|
|
int relaxed_constraints; /**< see ecma119_relaxed_constraints_flag */ |
|
|
|
|
|
|
|
|
|
/** Which extensions to support. */ |
|
|
|
|
unsigned int rockridge :1; |
|
|
|
|
unsigned int joliet :1; |
|
|
|
|
unsigned int iso1999 :1; |
|
|
|
|
|
|
|
|
|
/* relaxed constraints */ |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Relaxed constraints. Setting any of these to 1 break the specifications, |
|
|
|
|
* but it is supposed to work on most moderns systems. Use with caution. |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Omit the version number (";1") at the end of the ISO-9660 identifiers. |
|
|
|
|
* Version numbers are usually not used. |
|
|
|
|
*/ |
|
|
|
|
unsigned int omit_version_numbers :1; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Allow ISO-9660 directory hierarchy to be deeper than 8 levels. |
|
|
|
|
*/ |
|
|
|
|
unsigned int allow_deep_paths :1; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Allow path in the ISO-9660 tree to have more than 255 characters. |
|
|
|
|
*/ |
|
|
|
|
unsigned int allow_longer_paths :1; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Allow a single file or directory hierarchy to have up to 37 characters. |
|
|
|
|
* This is larger than the 31 characters allowed by ISO level 2, and the |
|
|
|
|
* extra space is taken from the version number, so this also forces |
|
|
|
|
* omit_version_numbers. |
|
|
|
|
*/ |
|
|
|
|
unsigned int max_37_char_filenames :1; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* ISO-9660 forces filenames to have a ".", that separates file name from |
|
|
|
|
* extension. libisofs adds it if original filename doesn't has one. Set |
|
|
|
|
* this to 1 to prevent this behavior |
|
|
|
|
*/ |
|
|
|
|
unsigned int no_force_dots :1; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Allow lowercase characters in ISO-9660 filenames. By default, only |
|
|
|
|
* uppercase characters, numbers and a few other characters are allowed. |
|
|
|
|
*/ |
|
|
|
|
unsigned int allow_lowercase :1; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Allow all ASCII characters to be appear on an ISO-9660 filename. Note |
|
|
|
|
* that "/" and "\0" characters are never allowed, even in RR names. |
|
|
|
|
*/ |
|
|
|
|
unsigned int allow_full_ascii :1; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Allow paths in the Joliet tree to have more than 240 characters. |
|
|
|
|
*/ |
|
|
|
|
unsigned int joliet_longer_paths :1; |
|
|
|
|
|
|
|
|
|
unsigned int sort_files:1; |
|
|
|
|
/**< If files should be sorted based on their weight. */ |
|
|
|
|
|
|
|
|
|
unsigned int copy_eltorito:1; |
|
|
|
|
/**<
|
|
|
|
|
* In multisession discs, select whether to copy el-torito catalog |
|
|
|
|
* and boot image. Copy is needed for isolinux images, that need to |
|
|
|
|
* be patched. However, it can lead to problems when the image is
|
|
|
|
|
* not present in the iso filesystem, because we can't figure out |
|
|
|
|
* its size. In those cases, we only copy 1 block of data. |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The following options set the default values for files and directory |
|
|
|
|
* permissions, gid and uid. All these take one of three values: 0, 1 or 2. |
|
|
|
|