diff --git a/src/moodle-provider.c b/src/moodle-provider.c index 5b41b705e725e876bbbb5f72dfc4208506f5621a..e7138b442aa12a9078d4381eef4b16cab89e15a2 100644 --- a/src/moodle-provider.c +++ b/src/moodle-provider.c @@ -243,7 +243,8 @@ moodle_downloaded_file_cb (GInputStream *is, write_g_input_stream_to_file (is, real_filename ?: filename_looked_for); } - final_cb (user_data, g_strdup (filename_looked_for)); + if (final_cb) + final_cb (user_data, g_strdup (filename_looked_for)); } void @@ -346,7 +347,8 @@ got_course_content_cb (GInputStream *is, struct CourseContent content = moodle_parse_course_content (html, html_size, filename); if (should_save_to_disk) write_file_async (filename, g_steal_pointer (&html), html_size); - final_cb (user_data, &content); + if (final_cb) + final_cb (user_data, &content); } @@ -364,7 +366,8 @@ got_folder_content_cb (GInputStream *is, struct FolderContent content = moodle_parse_folder_content (html, html_size, filename); if (should_save_to_disk) write_file_async (filename, g_steal_pointer (&html), html_size); - final_cb (user_data, &content); + if (final_cb) + final_cb (user_data, &content); } void diff --git a/src/moodle-provider.h b/src/moodle-provider.h index e0e5cd9306da5610ba7355682e6299ce5d4a9569..22b3643aef5567425050a7a0b024c07ef7b49d9b 100644 --- a/src/moodle-provider.h +++ b/src/moodle-provider.h @@ -25,6 +25,7 @@ typedef void (*courses_cb) (gpointer user_data, struct Courses); typedef void (*provider_cb) (gpointer user_data, gpointer retrieved_content); // retrieved_content will be a struct Courses *, struct FolderContent * // according to the called function name. +// when giving to a function a provider_cb, you can pass NULL instead. enum moodle_error { MOODLE_ERROR_OK,