Patched the previous patch. Everything should be OK now both in the case
[pspp] / src / set.q
index b6bcb23f7a5aa36a5fdcb06113df5c393e4a1ae6..620961b59ca46415e50647625aa76feed43ca0b5 100644 (file)
--- a/src/set.q
+++ b/src/set.q
@@ -1054,13 +1054,15 @@ set_viewport(int sig_num UNUSED)
 void
 done_settings(void)
 {
-  free(set_pager);
-  free(set_journal);
+  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);
+  free (cmd.s_endcmd);
+  free (cmd.s_prompt);
+  free (cmd.s_cprompt);
+  free (cmd.s_dprompt);
 }
 
 
@@ -1102,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);