From f5424adeef6bcd35f2f8b39487bb52b7cead5560 Mon Sep 17 00:00:00 2001
From: Antoine Fontaine <antoine.fontaine@epfl.ch>
Date: Sun, 30 Jun 2019 15:37:02 +0200
Subject: [PATCH] Make moodle-provider.c accept NULL callbacks

---
 src/moodle-provider.c | 9 ++++++---
 src/moodle-provider.h | 1 +
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/moodle-provider.c b/src/moodle-provider.c
index 5b41b70..e7138b4 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 e0e5cd9..22b3643 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,
-- 
GitLab