Plugged memory leaks in GUI, and converted most of the strings to UTF8, so that
[pspp-builds.git] / src / language / data-io / print.c
index f5e857e305b4cfebbd198654a593c9c699b6ced7..b96ee13be3a4a11105aaef959b9c8a621a850a2e 100644 (file)
 /* FIXME: seems like a lot of code duplication with data-list.c. */
 
 #include <config.h>
-#include "message.h"
+
 #include <stdlib.h>
-#include "alloc.h"
-#include "case.h"
-#include "command.h"
-#include "data-writer.h"
-#include "message.h"
-#include "expressions/public.h"
-#include "file-handle.h"
-#include "lexer.h"
-#include "misc.h"
-#include "manager.h"
-#include "table.h"
-#include "variable.h"
+
+#include <data/case.h>
+#include <data/procedure.h>
+#include <data/transformations.h>
+#include <data/variable.h>
+#include <language/command.h>
+#include <language/data-io/data-writer.h>
+#include <language/data-io/file-handle.h>
+#include <language/expressions/public.h>
+#include <language/lexer/lexer.h>
+#include <libpspp/alloc.h>
+#include <libpspp/compiler.h>
+#include <libpspp/message.h>
+#include <libpspp/message.h>
+#include <libpspp/misc.h>
+#include <output/manager.h>
+#include <output/table.h>
 
 #include "gettext.h"
 #define _(msgid) gettext (msgid)
@@ -136,7 +141,7 @@ static int
 internal_cmd_print (int f)
 {
   int table = 0;                /* Print table? */
-  struct print_trns *trns;      /* malloc()'d transformation. */
+  struct print_trns *trns = NULL; /* malloc()'d transformation. */
   struct file_handle *fh = NULL;
 
   /* Fill in prt to facilitate error-handling. */
@@ -809,12 +814,12 @@ dump_table (const struct file_handle *fh)
        {
          int len = strlen (spec->u.c);
          nspec++;
-         tab_text (t, 0, nspec, TAB_LEFT | TAT_FIX | TAT_PRINTF,
+         tab_text (t, 0, nspec, TAB_LEFT | TAB_FIX | TAT_PRINTF,
                        "\"%s\"", spec->u.c);
          tab_text (t, 1, nspec, TAT_PRINTF, "%d", recno + 1);
          tab_text (t, 2, nspec, TAT_PRINTF, "%3d-%3d",
                        spec->fc + 1, spec->fc + len);
-         tab_text (t, 3, nspec, TAB_LEFT | TAT_FIX | TAT_PRINTF,
+         tab_text (t, 3, nspec, TAB_LEFT | TAB_FIX | TAT_PRINTF,
                        "A%d", len);
          break;
        }
@@ -825,7 +830,7 @@ dump_table (const struct file_handle *fh)
          tab_text (t, 1, nspec, TAT_PRINTF, "%d", recno + 1);
          tab_text (t, 2, nspec, TAT_PRINTF, "%3d-%3d",
                        spec->fc + 1, spec->fc + spec->u.v.f.w);
-         tab_text (t, 3, nspec, TAB_LEFT | TAT_FIX,
+         tab_text (t, 3, nspec, TAB_LEFT | TAB_FIX,
                        fmt_to_string (&spec->u.v.f));
          break;
        }
@@ -836,22 +841,15 @@ dump_table (const struct file_handle *fh)
       }
 
   if (fh != NULL)
-    tab_title (t, 1, ngettext ("Writing %d record to %s.",
-                               "Writing %d records to %s.", recno),
+    tab_title (t, ngettext ("Writing %d record to %s.",
+                            "Writing %d records to %s.", recno),
                recno, fh_get_name (fh));
   else
-    tab_title (t, 1, ngettext ("Writing %d record.",
-                               "Writing %d records.", recno), recno);
+    tab_title (t, ngettext ("Writing %d record.",
+                            "Writing %d records.", recno), recno);
   tab_submit (t);
 }
 
-/* PORTME: The number of characters in a line terminator. */
-#ifdef __MSDOS__ 
-#define LINE_END_WIDTH 2       /* \r\n */
-#else
-#define LINE_END_WIDTH 1       /* \n */
-#endif
-
 /* Calculates the maximum possible line width and allocates a buffer
    big enough to contain it */
 static void
@@ -890,7 +888,7 @@ alloc_line (void)
       if (pot_w > w)
        w = pot_w;
     }
-  prt.max_width = w + LINE_END_WIDTH + 1;
+  prt.max_width = w + 2;
   prt.line = xmalloc (prt.max_width);
 }
 \f
@@ -926,19 +924,13 @@ print_trns_proc (void *trns_, struct ccase *c, int case_num UNUSED)
        if (t->writer == NULL)
          {
            buf[len] = 0;
-           tab_output_text (TAT_FIX | TAT_NOWRAP, buf);
+           tab_output_text (TAB_FIX | TAT_NOWRAP, buf);
          }
        else
          {
            if ((t->options & PRT_CMD_MASK) == PRT_PRINT
                 || !(t->options & PRT_BINARY))
-             {
-               /* PORTME: Line ends. */
-#ifdef __MSDOS__
-               buf[len++] = '\r';
-#endif
-               buf[len++] = '\n';
-             }
+              buf[len++] = '\n';
 
            dfm_put_record (t->writer, buf, len);
          }
@@ -974,7 +966,7 @@ print_trns_proc (void *trns_, struct ccase *c, int case_num UNUSED)
   return TRNS_CONTINUE;
 }
 
-/* Frees all the data inside print_trns T.  Does not free T. */
+/* Frees all the data inside print_trns PRT.  Does not free PRT. */
 static bool
 print_trns_free (void *prt_)
 {
@@ -1004,7 +996,6 @@ print_trns_free (void *prt_)
   if (prt->writer != NULL)
     ok = dfm_close_writer (prt->writer);
   free (prt->line);
-  free (prt);
   return ok;
 }
 \f