#include <language/command.h>
#include <language/dictionary/split-file.h>
#include <language/lexer/lexer.h>
-#include <libpspp/alloc.h>
#include <libpspp/array.h>
#include <libpspp/bit-vector.h>
#include <libpspp/compiler.h>
#include "freq.h"
#include "minmax.h"
+#include "xalloc.h"
#include "gettext.h"
#define _(msgid) gettext (msgid)
struct ccase c;
size_t i;
- if (!casereader_peek (input, 0, &c))
- return;
- output_split_file_values (ds, &c);
- case_destroy (&c);
+ if (casereader_peek (input, 0, &c))
+ {
+ output_split_file_values (ds, &c);
+ case_destroy (&c);
+ }
pool_destroy (data_pool);
data_pool = pool_create ();
}
/* Returns the comparison function that should be used for
- sorting a frequency table by FRQ_SORT using VAR_TYPE
- variables. */
+ sorting a frequency table by FRQ_SORT using VAL_TYPE
+ values. */
static hsh_compare_func *
-get_freq_comparator (int frq_sort, enum var_type var_type)
+get_freq_comparator (int frq_sort, enum val_type val_type)
{
- bool is_numeric = var_type == VAR_NUMERIC;
+ bool is_numeric = val_type == VAL_NUMERIC;
switch (frq_sort)
{
case FRQ_AVALUE:
vf->groups = NULL;
vf->width = var_get_width (v);
vf->print = *var_get_print_format (v);
- if (vf->width > MAX_SHORT_STRING && get_algorithm () == COMPATIBLE)
+ if (vf->width > MAX_SHORT_STRING && settings_get_algorithm () == COMPATIBLE)
{
enum fmt_type type = var_get_print_format (v)->type;
vf->width = MAX_SHORT_STRING;
double tp;
if ( percentiles[i].flag2 ) continue ;
- if ( get_algorithm() != COMPATIBLE )
+ if ( settings_get_algorithm () != COMPATIBLE )
tp =
(ft->valid_cases - 1) * percentiles[i].p;
else
double s;
double dummy;
- if ( get_algorithm() != COMPATIBLE )
+ if ( settings_get_algorithm () != COMPATIBLE )
{
s = modf((ft->valid_cases - 1) * percentiles[i].p , &dummy);
}
{
const struct freq *frq = &frq_tab->valid[i];
- slices[i].label = var_get_value_name (var, frq->value);
+ var_append_value_name (var, frq->value, &slices[i].label);
slices[i].magnetude = frq->count;
}
do_piechart(const struct variable *var, const struct freq_tab *frq_tab)
{
struct slice *slices;
- int n_slices;
+ int n_slices, i;
slices = freq_tab_to_slice_array(frq_tab, var, &n_slices);
piechart_plot(var_to_string(var), slices, n_slices);
+ for (i = 0 ; i < n_slices ; ++i )
+ {
+ ds_destroy (&slices[i].label);
+ }
+
free(slices);
}