Changed struct isoburn_read_opts to opaque handle
This commit is contained in:
@ -408,12 +408,137 @@ int isoburn_prepare_new_image(struct burn_drive *d, struct burn_disc **disc,
|
||||
|
||||
void isoburn_version(int *major, int *minor, int *micro)
|
||||
{
|
||||
*major = ISOBURN_MAJOR_VERSION;
|
||||
*minor = ISOBURN_MINOR_VERSION;
|
||||
*micro = ISOBURN_MICRO_VERSION;
|
||||
*major = ISOBURN_MAJOR_VERSION;
|
||||
*minor = ISOBURN_MINOR_VERSION;
|
||||
*micro = ISOBURN_MICRO_VERSION;
|
||||
}
|
||||
|
||||
|
||||
int isoburn_is_compatible(int major, int minor, int micro, int flag)
|
||||
{
|
||||
int own_major, own_minor, own_micro;
|
||||
|
||||
isoburn_version(&own_major, &own_minor, &own_micro);
|
||||
return(own_major > major ||
|
||||
(own_major == major && (own_minor > minor ||
|
||||
(own_minor == minor && own_micro >= micro))));
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------- */
|
||||
/*
|
||||
Options for image reading.
|
||||
*/
|
||||
/* ----------------------------------------------------------------------- */
|
||||
|
||||
|
||||
int isoburn_ropt_new(struct isoburn_read_opts **new_o, int flag)
|
||||
{
|
||||
struct isoburn_read_opts *o;
|
||||
|
||||
o= (*new_o)= calloc(1, sizeof(struct isoburn_read_opts));
|
||||
if(o==NULL)
|
||||
return(-1);
|
||||
o->norock= 0;
|
||||
o->nojoliet= 0;
|
||||
o->noiso1999= 1;
|
||||
o->preferjoliet= 0;
|
||||
o->uid= geteuid();
|
||||
o->gid= getegid();
|
||||
o->mode= 0444; /* >>> would need 0555 for directories */
|
||||
o->input_charset= NULL;
|
||||
o->hasRR= 0;
|
||||
o->hasJoliet= 0;
|
||||
o->hasIso1999= 0;
|
||||
o->hasElTorito= 0;
|
||||
o->size= 0;
|
||||
o->pretend_blank= 1;
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
int isoburn_ropt_destroy(struct isoburn_read_opts **o, int flag)
|
||||
{
|
||||
if(*o==NULL)
|
||||
return(0);
|
||||
free(*o);
|
||||
*o= NULL;
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext)
|
||||
{
|
||||
o->norock= !!(ext&1);
|
||||
o->nojoliet= !!(ext&2);
|
||||
o->noiso1999= !!(ext&4);
|
||||
o->preferjoliet= !!(ext&8);
|
||||
o->pretend_blank= !!(ext&16);
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
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);
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
int isoburn_ropt_set_default_perms(struct isoburn_read_opts *o,
|
||||
uid_t uid, gid_t gid, mode_t mode)
|
||||
{
|
||||
o->uid= uid;
|
||||
o->gid= gid;
|
||||
o->mode= mode;
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
int isoburn_ropt_get_default_perms(struct isoburn_read_opts *o,
|
||||
uid_t *uid, gid_t *gid, mode_t *mode)
|
||||
{
|
||||
*uid= o->uid;
|
||||
*gid= o->gid;
|
||||
*mode= o->mode;
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
int isoburn_ropt_set_input_charset(struct isoburn_read_opts *o,
|
||||
char *input_charset)
|
||||
{
|
||||
o->input_charset= input_charset;
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
int isoburn_igopt_get_in_charset(struct isoburn_read_opts *o,
|
||||
char **input_charset)
|
||||
{
|
||||
*input_charset= o->input_charset;
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
int isoburn_ropt_get_size_what(struct isoburn_read_opts *o,
|
||||
uint32_t *size, int *has_what)
|
||||
{
|
||||
*size= o->size;
|
||||
*has_what= (!!o->hasRR) | ((!!o->hasJoliet)<<1) |
|
||||
((!!o->hasIso1999)<<2) | ((!!o->hasElTorito)<<3);
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------- */
|
||||
/*
|
||||
Options for image generation by libisofs and image transport to libburn.
|
||||
*/
|
||||
/* ----------------------------------------------------------------------- */
|
||||
|
||||
|
||||
int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag)
|
||||
{
|
||||
struct isoburn_imgen_opts *o;
|
||||
|
Reference in New Issue
Block a user