Fixed a bug which caused a crash when reading non-existent files.
[pspp] / src / set.q
index c291c1a87946575f20c37320fc7f49b240da723b..620961b59ca46415e50647625aa76feed43ca0b5 100644 (file)
--- a/src/set.q
+++ b/src/set.q
@@ -1051,6 +1051,22 @@ set_viewport(int sig_num UNUSED)
 
 /* Public functions */
 
+void
+done_settings(void)
+{
+  if ( rng ) 
+    gsl_rng_free (rng);
+  free (set_pager);
+  free (set_journal);
+
+  free (cmd.s_endcmd);
+  free (cmd.s_prompt);
+  free (cmd.s_cprompt);
+  free (cmd.s_dprompt);
+}
+
+
+
 void
 init_settings(void)
 {
@@ -1088,10 +1104,18 @@ init_settings(void)
 
 #if !USE_INTERNAL_PAGER
   {
-    char *pager;
+    const char *pager = getenv ("STAT_PAGER");
 
-    pager = getenv ("STAT_PAGER");
-    if (!pager)  set_pager = getenv ("PAGER");
+    if (!pager) 
+      {
+       const char *p = getenv ("PAGER");
+       
+       if ( p != NULL ) 
+         set_pager = xstrdup (p);
+       else
+         set_pager = 0;
+      }
+    
 
     if (pager)  
       set_pager = xstrdup (pager);