Fixed a whole lot more memory leaks.
[pspp-builds.git] / src / glob.c
index 61c70b46c2e5efbc34e7cce5e62b1a2b6472af72..9cbcc0c6761602a86316f6d538b901b3248e876a 100644 (file)
@@ -19,7 +19,7 @@
 
 #include <config.h>
 #include "glob.h"
-#include <assert.h>
+#include "error.h"
 #include <stdlib.h>
 #include <stdio.h>
 
@@ -70,6 +70,7 @@ extern void stifle_history ();
 
 #include "alloc.h"
 #include "command.h"
+#include "dictionary.h"
 #include "do-ifP.h"
 #include "error.h"
 #include "expr.h"
@@ -126,6 +127,7 @@ init_glob (int argc UNUSED, char **argv)
 #endif /* ENABLE_NLS */
 
   fn_init ();
+  fh_init ();
   getl_initialize ();
 
   /* PORTME: If your system/OS has the nasty tendency to halt with a
@@ -151,7 +153,7 @@ init_glob (int argc UNUSED, char **argv)
   last_vfm_invocation = time (NULL);
 
   /* lexer.h */
-  ds_init (NULL, &tokstr, 64);
+  ds_init (&tokstr, 64);
 
   /* common.h */
   {
@@ -176,12 +178,21 @@ init_glob (int argc UNUSED, char **argv)
   logfn = xstrdup ("pspp.log");
   logfile = NULL;
 
-  /* file-handle.h */
-  fh_init_files ();
-  
   get_date ();
 }
 
+void
+done_glob(void)
+{
+  cancel_transformations ();
+  dict_destroy (default_dict);
+  free (logfn);
+  done_settings ();
+  ds_destroy (&tokstr);
+
+  fh_done();
+}
+
 static void
 get_date (void)
 {