From 1ae0bb9febf25c5d40da61fd2db288aee72155da Mon Sep 17 00:00:00 2001 From: John Darrington Date: Mon, 22 May 2017 03:52:22 +0200 Subject: [PATCH] Import Assistant: Allow separators to be unicode characters --- src/ui/gui/psppire-import-assistant.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/ui/gui/psppire-import-assistant.c b/src/ui/gui/psppire-import-assistant.c index f6d1b1cdba..3659db45df 100644 --- a/src/ui/gui/psppire-import-assistant.c +++ b/src/ui/gui/psppire-import-assistant.c @@ -232,8 +232,6 @@ choose_likely_separators (PsppireImportAssistant *ia) gboolean valid; GtkTreeIter iter; - int i = 0; - int j; struct hmap count_map[SEPARATOR_CNT]; @@ -246,23 +244,27 @@ choose_likely_separators (PsppireImportAssistant *ia) valid; valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (ia->text_file), &iter)) { - int j; - 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); - for (j = 0; j < strlen (line_text); ++j) + + struct substring cs = ss_cstr (line_text); + for (; + UINT32_MAX != ss_first_mb (cs); + ss_get_mb (&cs)) { + ucs4_t character = ss_first_mb (cs); + int s; for (s = 0; s < SEPARATOR_CNT; ++s) { - // FIXME do this in UTF8 encoding - if (line_text[j] == separators[s].c) + if (character == separators[s].c) counts[s]++; } } + int j; for (j = 0; j < SEPARATOR_CNT; ++j) { if (counts[j] > 0) -- 2.30.2