#include <data/case-source.h>
#include <data/case.h>
#include <data/casefile.h>
+#include <data/fastfile.h>
#include <data/procedure.h>
#include <data/settings.h>
#include <data/variable.h>
#include <language/expressions/public.h>
#include <libpspp/alloc.h>
#include <libpspp/array.h>
+#include <libpspp/assertion.h>
#include <libpspp/message.h>
#include <libpspp/message.h>
#include <libpspp/misc.h>
}
/* Sorts the active file in-place according to CRITERIA.
- Returns nonzero if successful. */
-int
+ Returns true if successful. */
+bool
sort_active_file_in_place (const struct sort_criteria *criteria)
{
struct casefile *in, *out;
prepare_to_sort_active_file ();
if (!procedure (NULL, NULL))
- return 0;
+ return false;
in = proc_capture_output ();
out = sort_execute (casefile_get_destructive_reader (in), criteria);
if (out == NULL)
- return 0;
+ return false;
proc_set_source (storage_source_create (out));
- return 1;
+ return true;
}
/* Data passed to sort_to_casefile_callback(). */
return NULL;
case_cnt = casefile_get_case_cnt (src);
- dst = casefile_create (casefile_get_value_cnt (src));
+ dst = fastfile_create (casefile_get_value_cnt (src));
if (case_cnt != 0)
{
struct indexed_case *cases = nmalloc (sizeof *cases, case_cnt);
{
bool ok = casereader_read_xfer (reader, &cases[i].c);
if (!ok)
- abort ();
+ NOT_REACHED ();
cases[i].idx = i;
}
for (i = 0; i < case_cnt; i++)
casefile_append_xfer (dst, &cases[i].c);
if (casefile_error (dst))
- abort ();
+ NOT_REACHED ();
free (cases);
}
{
irs->run++;
irs->case_cnt = 0;
- irs->casefile = casefile_create (irs->xsrt->value_cnt);
+ irs->casefile = fastfile_create (irs->xsrt->value_cnt);
casefile_to_disk (irs->casefile);
case_nullify (&irs->last_output);
}
}
/* Create output file. */
- output = casefile_create (xsrt->value_cnt);
+ output = fastfile_create (xsrt->value_cnt);
casefile_to_disk (output);
/* Merge. */