/* 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 <language/lexer/variable-parser.h>
+#include <libpspp/alloc.h>
+#include <libpspp/assertion.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)
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. */
{
fx.spec.type = PRT_CONST;
fx.spec.fc = fx.sc - 1;
- fx.spec.u.c = xstrdup (ds_c_str (&tokstr));
+ fx.spec.u.c = ds_xstrdup (&tokstr);
lex_get ();
/* Parse the included column range. */
{
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;
}
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;
}
case PRT_SPACE:
break;
case PRT_ERROR:
- assert (0);
+ NOT_REACHED ();
}
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
break;
case PRT_ERROR:
default:
- assert (0);
- abort ();
+ NOT_REACHED ();
}
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
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);
}
break;
case PRT_ERROR:
- assert (0);
- break;
+ NOT_REACHED ();
}
if (t->writer != NULL && dfm_write_error (t->writer))
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_)
{
/* nothing to do */
break;
case PRT_ERROR:
- assert (0);
- break;
+ NOT_REACHED ();
}
n = i->next;
free (i);
if (prt->writer != NULL)
ok = dfm_close_writer (prt->writer);
free (prt->line);
- free (prt);
return ok;
}
\f