*** empty log message ***
[pspp] / src / output.c
index e33172e21d39c50e4bb54f309d02beb0a9faa2f2..ba620e061314f493f5138a6add50117405345ce4 100644 (file)
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA. */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA. */
 
 #include <config.h>
 #include "output.h"
@@ -25,7 +25,6 @@
 #include <errno.h>
 #include <ctype.h>
 #include "alloc.h"
-#include "devind.h"
 #include "error.h"
 #include "filename.h"
 #include "htmlP.h"
@@ -34,6 +33,9 @@
 #include "settings.h"
 #include "str.h"
 
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+
 /* FIXME? Should the output configuration format be changed to
    drivername:classname:devicetype:options, where devicetype is zero
    or more of screen, printer, listing? */
@@ -228,7 +230,6 @@ outp_init (void)
   extern struct outp_class epsf_class;
 #endif
   extern struct outp_class html_class;
-  extern struct outp_class devind_class;
 
   char def[] = "default";
 
@@ -239,7 +240,6 @@ outp_init (void)
   add_class (&epsf_class);
   add_class (&postscript_class);
 #endif
-  add_class (&devind_class);
   add_class (&ascii_class);
 
   add_name (def, &def[strlen (def)], OUTP_S_INIT_FILE);
@@ -292,8 +292,8 @@ outp_read_devices (void)
 
   if (init_fn == NULL)
     {
-      msg (IE, _("Cannot find output initialization file.  Use `-vv' to view "
-          "search path."));
+      msg (IE, _("Cannot find output initialization file.  "
+                 "Use `-vvvvv' to view search path."));
       goto exit;
     }
 
@@ -442,12 +442,27 @@ destroy_list (struct outp_driver ** dl)
 int
 outp_done (void)
 {
+  struct outp_driver_class_list *n = outp_class_list ; 
 #if GLOBAL_DEBUGGING
   if (iterating_driver_list)
     reentrancy ();
 #endif
   destroy_list (&outp_driver_list);
 
+  while (n) 
+    {
+      struct outp_driver_class_list *next = n->next;
+      free(n);
+      n = next;
+    }
+  outp_class_list = NULL;
+
+  free (outp_title);
+  outp_title = NULL;
+  
+  free (outp_subtitle);
+  outp_subtitle = NULL;
+
   return 1;
 }
 
@@ -893,7 +908,7 @@ outp_match_keyword (const char *s, struct outp_option *tab,
       *++cp = 0;
 
       info->initial = xstrdup (s);
-      info->options = xmalloc (sizeof *info->options * (cp - s));
+      info->options = xnmalloc (cp - s, sizeof *info->options);
       memcpy (info->options, ptr, sizeof *info->options * (cp - s));
     }