Make it possible to pull cases from the active file with a
[pspp-builds.git] / src / data / case-source.c
index 90d709b1e5add9eee3e3e5803b85b89b1a3d9247..542f3008f8f5f234538694bd59d2f39a04514d1e 100644 (file)
@@ -36,17 +36,21 @@ create_case_source (const struct case_source_class *class,
   return source;
 }
 
-/* Destroys case source SOURCE.  It is the caller's responsible to
-   call the source's destroy function, if any. */
-void
+/* Destroys case source SOURCE.
+   Returns true if successful,
+   false if the source encountered an I/O error during
+   destruction or reading cases. */
+bool
 free_case_source (struct case_source *source) 
 {
+  bool ok = true;
   if (source != NULL) 
     {
       if (source->class->destroy != NULL)
-        source->class->destroy (source);
+        ok = source->class->destroy (source);
       free (source);
     }
+  return ok;
 }
 
 /* Returns true if CLASS is the class of SOURCE. */