Expose report callback.
This commit is contained in:
parent
75ae7fdebc
commit
a282a7581e
@ -39,6 +39,14 @@ void help()
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int callback(IsoFileSource *src)
|
||||||
|
{
|
||||||
|
char *path = iso_file_source_get_path(src);
|
||||||
|
printf("CALLBACK: %s\n", path);
|
||||||
|
free(path);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int result;
|
int result;
|
||||||
@ -145,6 +153,7 @@ int main(int argc, char **argv)
|
|||||||
iso_tree_set_ignore_hidden(image, 0);
|
iso_tree_set_ignore_hidden(image, 0);
|
||||||
iso_tree_set_ignore_special(image, 0);
|
iso_tree_set_ignore_special(image, 0);
|
||||||
iso_set_abort_severity("SORRY");
|
iso_set_abort_severity("SORRY");
|
||||||
|
iso_tree_set_report_callback(image, callback);
|
||||||
|
|
||||||
result = iso_tree_add_dir_rec(image, iso_image_get_root(image), argv[optind]);
|
result = iso_tree_add_dir_rec(image, iso_image_get_root(image), argv[optind]);
|
||||||
if (result < 0) {
|
if (result < 0) {
|
||||||
|
@ -1540,6 +1540,22 @@ void iso_tree_set_ignore_special(IsoImage *image, int skip);
|
|||||||
*/
|
*/
|
||||||
int iso_tree_get_ignore_special(IsoImage *image);
|
int iso_tree_get_ignore_special(IsoImage *image);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set a callback function that libisofs will call for each file that is
|
||||||
|
* added to the given image by a recursive addition function. This includes
|
||||||
|
* image import.
|
||||||
|
*
|
||||||
|
* @param report
|
||||||
|
* pointer to a function that will be called just before a file will be
|
||||||
|
* added to the image. You can control whether the file will be in fact
|
||||||
|
* added or ignored.
|
||||||
|
* This function should return 1 to add the file, 0 to ignore it and
|
||||||
|
* continue, < 0 to abort the process
|
||||||
|
* NULL is allowed if you don't want any callback.
|
||||||
|
*/
|
||||||
|
void iso_tree_set_report_callback(IsoImage *image,
|
||||||
|
int (*report)(IsoFileSource *src));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a new node to the image tree, from an existing file.
|
* Add a new node to the image tree, from an existing file.
|
||||||
*
|
*
|
||||||
|
19
src/tree.c
19
src/tree.c
@ -362,6 +362,25 @@ int iso_tree_get_ignore_special(IsoImage *image)
|
|||||||
return image->recOpts.ignore_special;
|
return image->recOpts.ignore_special;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set a callback function that libisofs will call for each file that is
|
||||||
|
* added to the given image by a recursive addition function. This includes
|
||||||
|
* image import.
|
||||||
|
*
|
||||||
|
* @param report
|
||||||
|
* pointer to a function that will be called just before a file will be
|
||||||
|
* added to the image. You can control whether the file will be in fact
|
||||||
|
* added or ignored.
|
||||||
|
* This function should return 1 to add the file, 0 to ignore it and
|
||||||
|
* continue, < 0 to abort the process
|
||||||
|
* NULL is allowed if you don't want any callback.
|
||||||
|
*/
|
||||||
|
void iso_tree_set_report_callback(IsoImage *image,
|
||||||
|
int (*report)(IsoFileSource *src))
|
||||||
|
{
|
||||||
|
image->recOpts.report = report;
|
||||||
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
int iso_tree_add_node_builder(IsoImage *image, IsoDir *parent,
|
int iso_tree_add_node_builder(IsoImage *image, IsoDir *parent,
|
||||||
IsoFileSource *src, IsoNodeBuilder *builder,
|
IsoFileSource *src, IsoNodeBuilder *builder,
|
||||||
|
Loading…
Reference in New Issue
Block a user