gboolean valid;
GtkTreeIter iter;
- int j;
struct hmap count_map[SEPARATOR_CNT];
- for (j = 0; j < SEPARATOR_CNT; ++j)
+ for (int j = 0; j < SEPARATOR_CNT; ++j)
hmap_init (count_map + j);
GtkTreePath *p = gtk_tree_path_new_from_indices (first_line, -1);
gchar *line_text = NULL;
gtk_tree_model_get (GTK_TREE_MODEL (ia->text_file), &iter, 1, &line_text, -1);
- gint *counts = xzalloc (sizeof *counts * SEPARATOR_CNT);
+ gint *counts = XCALLOC (SEPARATOR_CNT, gint);
struct substring cs = ss_cstr (line_text);
for (;
if (cn == NULL)
{
- struct separator_count_node *new_cn = xzalloc (sizeof *new_cn);
+ struct separator_count_node *new_cn = XZALLOC (struct separator_count_node);
new_cn->occurance = counts[j];
new_cn->quantity = 1;
hmap_insert (&count_map[j], &new_cn->node, hash);
{
int most_frequent = -1;
int largest = 0;
- for (j = 0; j < SEPARATOR_CNT; ++j)
+ for (int j = 0; j < SEPARATOR_CNT; ++j)
{
struct separator_count_node *cn;
struct separator_count_node *next;
"preview purposes in the following screens. ",
"Only the first %zu lines of the file will be shown for "
"preview purposes in the following screens. ",
- ia->text_file->line_cnt),
- ia->text_file->line_cnt);
+ ia->text_file->n_lines),
+ ia->text_file->n_lines);
}
}
static void
on_quote_combo_change (GtkComboBox *combo, PsppireImportAssistant *ia)
{
- // revise_fields_preview (ia);
+ revise_fields_preview (ia);
}
/* Called when the user toggles the checkbox that enables
/* Called just before the separators page becomes visible in the
assistant. */
static void
-prepare_separators_page (PsppireImportAssistant *ia)
+prepare_separators_page (PsppireImportAssistant *ia, GtkWidget *new_page, enum IMPORT_ASSISTANT_DIRECTION dir)
{
+ if (dir != IMPORT_ASSISTANT_FORWARDS)
+ return;
+
gtk_tree_view_set_model (GTK_TREE_VIEW (ia->fields_tree_view),
GTK_TREE_MODEL (ia->delimiters_model));
char *xx = data_in (ss_cstr (ss),
"UTF-8",
var_get_write_format (var)->type,
+ settings_get_fmt_settings (),
v, var_get_width (var), "UTF-8");
free (xx);
static struct casereader *
textfile_create_reader (PsppireImportAssistant *ia)
{
- int n_vars = dict_get_var_cnt (ia->dict);
+ int n_vars = dict_get_n_vars (ia->dict);
int i;
PsppireImportAssistant *ia = PSPPIRE_IMPORT_ASSISTANT (data);
struct caseproto *proto = caseproto_create();
- for (int i = 0; i < dict_get_var_cnt (ia->dict); i++)
+ for (int i = 0; i < dict_get_n_vars (ia->dict); i++)
{
const struct variable *var = dict_get_var (ia->dict, i);
int width = var_get_width (var);
static void
apply_dict (const struct dictionary *dict, struct string *s)
{
- size_t var_cnt = dict_get_var_cnt (dict);
- size_t i;
+ size_t n_vars = dict_get_n_vars (dict);
- for (i = 0; i < var_cnt; i++)
+ for (size_t i = 0; i < n_vars; i++)
{
struct variable *var = dict_get_var (dict, i);
const char *name = var_get_name (var);
const struct val_labs *vls = var_get_value_labels (var);
const struct val_lab **labels = val_labs_sorted (vls);
size_t n_labels = val_labs_count (vls);
- size_t i;
syntax_gen_pspp (s, "VALUE LABELS %ss", name);
- for (i = 0; i < n_labels; i++)
+ for (size_t j = 0; j < n_labels; j++)
{
- const struct val_lab *vl = labels[i];
+ const struct val_lab *vl = labels[j];
ds_put_cstr (s, "\n ");
syntax_gen_value (s, &vl->value, width, format);
ds_put_byte (s, ' ');
static void
formats_append_syntax (const PsppireImportAssistant *ia, struct string *s)
{
- int i;
- int var_cnt;
-
g_return_if_fail (ia->dict);
ds_put_cstr (s, " /VARIABLES=\n");
- var_cnt = dict_get_var_cnt (ia->dict);
- for (i = 0; i < var_cnt; i++)
+ int n_vars = dict_get_n_vars (ia->dict);
+ for (int i = 0; i < n_vars; i++)
{
struct variable *var = dict_get_var (ia->dict, i);
char format_string[FMT_STRING_LEN_MAX + 1];
fmt_to_string (var_get_print_format (var), format_string);
ds_put_format (s, " %s %s%s\n",
var_get_name (var), format_string,
- i == var_cnt - 1 ? "." : "");
+ i == n_vars - 1 ? "." : "");
}
}