gnucash maint: Multiple changes pushed
Geert Janssens
gjanssens at code.gnucash.org
Fri Sep 26 10:32:23 EDT 2014
Updated via https://github.com/Gnucash/gnucash/commit/c652455e (commit)
via https://github.com/Gnucash/gnucash/commit/595e3593 (commit)
via https://github.com/Gnucash/gnucash/commit/32193a47 (commit)
via https://github.com/Gnucash/gnucash/commit/0c31c627 (commit)
via https://github.com/Gnucash/gnucash/commit/ea033016 (commit)
via https://github.com/Gnucash/gnucash/commit/ba1f8cb1 (commit)
via https://github.com/Gnucash/gnucash/commit/2b6a6d89 (commit)
via https://github.com/Gnucash/gnucash/commit/b13f3dab (commit)
from https://github.com/Gnucash/gnucash/commit/32105585 (commit)
commit c652455ebb0878c4346d7f0cd47d0a149a440546
Author: Geert Janssens <janssens-geert at telenet.be>
Date: Fri Sep 26 16:48:06 2014 +0200
Rework assistant csv import regex code to eliminate the mandatory dummy field (#eol).
This consists of a couple of changes that are heavily interdependent:
- read the csv file entirely in one string
- tweak the regex so it knows the difference between the end of line and a newline in one of the fields
- leverage the g_regex code to iterate over the full string directly
diff --git a/src/import-export/csv-exp/csv-tree-export.c b/src/import-export/csv-exp/csv-tree-export.c
index 22d5ae5..147ef5e 100644
--- a/src/import-export/csv-exp/csv-tree-export.c
+++ b/src/import-export/csv-exp/csv-tree-export.c
@@ -155,8 +155,7 @@ void csv_tree_export (CsvExportInfo *info)
header = g_strconcat (end_sep, _("type"), mid_sep, _("full_name"), mid_sep, _("name"), mid_sep,
_("code"), mid_sep, _("description"), mid_sep, _("color"), mid_sep,
_("notes"), mid_sep, _("commoditym"), mid_sep, _("commodityn"), mid_sep,
- _("hidden"), mid_sep, _("tax"), mid_sep, _("place_holder"), mid_sep, _("#eol"),
- end_sep, EOLSTR, NULL);
+ _("hidden"), mid_sep, _("tax"), mid_sep, _("place_holder"), end_sep, EOLSTR, NULL);
DEBUG("Header String: %s", header);
/* Write header line */
@@ -236,7 +235,7 @@ void csv_tree_export (CsvExportInfo *info)
g_free (part2);
/* Place Holder / end of line marker */
currentSel = xaccAccountGetPlaceholder (acc) ? "T" : "F" ;
- part2 = g_strconcat (part1, currentSel, mid_sep, _("#eol"), end_sep, EOLSTR, NULL);
+ part2 = g_strconcat (part1, currentSel, end_sep, EOLSTR, NULL);
g_free (part1);
DEBUG("Account String: %s", part2);
diff --git a/src/import-export/csv-imp/assistant-csv-account-import.c b/src/import-export/csv-imp/assistant-csv-account-import.c
index aae2d4c..7c8c95d 100644
--- a/src/import-export/csv-imp/assistant-csv-account-import.c
+++ b/src/import-export/csv-imp/assistant-csv-account-import.c
@@ -113,17 +113,25 @@ static gchar *mnemonic_escape (const gchar *source)
}
static
-void create_regex (GString regex_str, const gchar *sep)
+void create_regex (GString *regex_str, const gchar *sep)
{
if (!sep) return;
g_string_printf (regex_str,
- "^(?<type>[^%s]*)%s?(?<full_name>\"(?:[^\"]|\"\")*\"|[^%s]*)%s?(?<name>\"(?:[^\"]|\"\")*\"|[^%s]*)%s\
- ?(?<code>\"(?:[^\"]|\"\")*\"|[^%s]*)%s?(?<description>\"(?:[^\"]|\"\")*\"|[^%s]*)%s?(?<color>[^%s]*)%s\
- ?(?<notes>\"(?:[^\"]|\"\")*\"|[^%s]*)%s?(?<commoditym>\"(?:[^\"]|\"\")*\"|[^%s]*)%s?(?<commodityn>\"(?:[^\"]|\"\")*\"|[^%s]*)%s\
- ?(?<hidden>[^%s]*)%s?(?<tax>[^%s]*)%s?(?<place_holder>[^%s]*)%s(?<endofline>[^%s]*)$",
- sep, sep, sep, sep, sep, sep, sep, sep, sep, sep, sep, sep, sep,
- sep, sep, sep, sep, sep, sep, sep, sep, sep, sep, sep, sep);
+ "\\G(?<type>[^%s]*)%s"
+ "(?<full_name>\"(?:[^\"]|\"\")*\"|[^%s]*)%s"
+ "(?<name>\"(?:[^\"]|\"\")*\"|[^%s]*)%s"
+ "(?<code>\"(?:[^\"]|\"\")*\"|[^%s]*)%s?"
+ "(?<description>\"(?:[^\"]|\"\")*\"|[^%s]*)%s"
+ "(?<color>[^%s]*)%s"
+ "(?<notes>\"(?:[^\"]|\"\")*\"|[^%s]*)%s"
+ "(?<commoditym>\"(?:[^\"]|\"\")*\"|[^%s]*)%s"
+ "(?<commodityn>\"(?:[^\"]|\"\")*\"|[^%s]*)%s"
+ "(?<hidden>[^%s]*)%s"
+ "(?<tax>[^%s]*)%s"
+ "(?<place_holder>[^%s[:cntrl:]]*)(?:\\R*)",
+ sep, sep, sep, sep, sep, sep, sep, sep, sep, sep, sep, sep,
+ sep, sep, sep, sep, sep, sep, sep, sep, sep, sep, sep);
}
@@ -622,6 +630,7 @@ csv_import_assistant_create (CsvImportInfo *info)
info->tree_view = GTK_WIDGET(gtk_builder_get_object (builder, "treeview"));
/* Comma Separated file default */
+ info->regexp = g_string_new ("");
create_regex (info->regexp, ",");
/* create model and bind to view */
diff --git a/src/import-export/csv-imp/csv-account-import.c b/src/import-export/csv-imp/csv-account-import.c
index 10a02f0..2f5b6c5 100644
--- a/src/import-export/csv-imp/csv-account-import.c
+++ b/src/import-export/csv-imp/csv-account-import.c
@@ -81,30 +81,29 @@ csv_import_result
csv_import_read_file (const gchar *filename, const gchar *parser_regexp,
GtkListStore *store, guint max_rows)
{
- FILE *f;
- char *line;
- gchar *line_utf8;
- gchar *end1, *end2;
- GMatchInfo *match_info;
+ gchar *locale_cont, *contents;
+ GMatchInfo *match_info = NULL;
+ GRegex *regexpat = NULL;
GError *err;
- GRegex *regexpat;
- int row = 0;
- gboolean match_found = FALSE;
+ gint row = 0;
+ gboolean match_found = FALSE;
// model
GtkTreeIter iter;
- f = g_fopen (filename, "rt");
- if (!f)
+ if (!g_file_get_contents (filename, &locale_cont, NULL, NULL))
{
//gnc_error_dialog( 0, _("File %s cannot be opened."), filename );
return RESULT_OPEN_FAILED;
}
+ contents = g_locale_to_utf8 (locale_cont, -1, NULL, NULL, NULL);
+ g_free (locale_cont);
+
// compile the regular expression and check for errors
err = NULL;
regexpat =
- g_regex_new (parser_regexp, G_REGEX_EXTENDED | G_REGEX_OPTIMIZE | G_REGEX_DUPNAMES, 0, &err);
+ g_regex_new (parser_regexp, G_REGEX_OPTIMIZE, 0, &err);
if (err != NULL)
{
GtkWidget *dialog;
@@ -113,7 +112,6 @@ csv_import_read_file (const gchar *filename, const gchar *parser_regexp,
errmsg = g_strdup_printf (_("Error in regular expression '%s':\n%s"),
parser_regexp, err->message);
g_error_free (err);
- err = NULL;
dialog = gtk_message_dialog_new (NULL,
GTK_DIALOG_MODAL,
@@ -122,100 +120,47 @@ csv_import_read_file (const gchar *filename, const gchar *parser_regexp,
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
g_free (errmsg);
- errmsg = 0;
+ g_free (contents);
- fclose (f);
return RESULT_ERROR_IN_REGEXP;
}
- /* Setup the two different line endings */
-#ifdef G_OS_WIN32
- end1 = g_strconcat (_("#eol"),"\"\n", NULL);
- end2 = g_strconcat (_("#eol"),"\n", NULL);
-#else
- end1 = g_strconcat (_("#eol"),"\"\r\n", NULL);
- end2 = g_strconcat (_("#eol"),"\r\n", NULL);
-#endif
-
- // start the import
-#define buffer_size 1000
- line = g_malloc0 (buffer_size);
- while (!feof (f))
+ g_regex_match (regexpat, contents, 0, &match_info);
+ while (g_match_info_matches (match_info))
{
- gchar *currentline = NULL;
- int l;
+ match_found = TRUE;
+ // fill in the values
+ gtk_list_store_append (store, &iter);
+ fill_model_with_match (match_info, "type", store, &iter, TYPE);
+ fill_model_with_match (match_info, "full_name", store, &iter, FULL_NAME);
+ fill_model_with_match (match_info, "name", store, &iter, NAME);
+ fill_model_with_match (match_info, "code", store, &iter, CODE);
+ fill_model_with_match (match_info, "description", store, &iter, DESCRIPTION);
+ fill_model_with_match (match_info, "color", store, &iter, COLOR);
+ fill_model_with_match (match_info, "notes", store, &iter, NOTES);
+ fill_model_with_match (match_info, "commoditym", store, &iter, COMMODITYM);
+ fill_model_with_match (match_info, "commodityn", store, &iter, COMMODITYN);
+ fill_model_with_match (match_info, "hidden", store, &iter, HIDDEN);
+ fill_model_with_match (match_info, "tax", store, &iter, TAX);
+ fill_model_with_match (match_info, "place_holder", store, &iter, PLACE_HOLDER);
+ gtk_list_store_set (store, &iter, ROW_COLOR, NULL, -1);
+
row++;
if (row == max_rows)
break;
+ g_match_info_next (match_info, &err);
+ }
- // read one line
- if (!fgets (line, buffer_size, f))
- break; // eof
-
- currentline = g_strdup (line);
-
- while (!(g_str_has_suffix (line, end1) || g_str_has_suffix (line, end2)))
- {
- // read next line
- if (fgets (line, buffer_size, f))
- {
- gchar *temp_str = NULL;
- temp_str = g_strconcat (currentline, line, NULL);
- g_free (currentline);
- currentline = g_strdup (temp_str);
- g_free (temp_str);
- }
- else
- break; // eof
- }
-
- // now strip the '\r\n' from the end of the line
- l = strlen (currentline);
- if ((l > 0) && (currentline[l - 1] == '\n'))
- currentline[l - 1] = 0;
-
- if ((l > 0) && (currentline[l - 2] == '\r'))
- currentline[l - 2] = 0;
-
- // convert line from locale into utf8
- line_utf8 = g_locale_to_utf8 (currentline, -1, NULL, NULL, NULL);
-
- // parse the line
- match_info = NULL; // it seems, that in contrast to documentation, match_info is not always set -> g_match_info_free will segfault
- if (g_regex_match (regexpat, line_utf8, 0, &match_info))
- {
- match_found = TRUE;
- // fill in the values
- gtk_list_store_append (store, &iter);
- fill_model_with_match (match_info, "type", store, &iter, TYPE);
- fill_model_with_match (match_info, "full_name", store, &iter, FULL_NAME);
- fill_model_with_match (match_info, "name", store, &iter, NAME);
- fill_model_with_match (match_info, "code", store, &iter, CODE);
- fill_model_with_match (match_info, "description", store, &iter, DESCRIPTION);
- fill_model_with_match (match_info, "color", store, &iter, COLOR);
- fill_model_with_match (match_info, "notes", store, &iter, NOTES);
- fill_model_with_match (match_info, "commoditym", store, &iter, COMMODITYM);
- fill_model_with_match (match_info, "commodityn", store, &iter, COMMODITYN);
- fill_model_with_match (match_info, "hidden", store, &iter, HIDDEN);
- fill_model_with_match (match_info, "tax", store, &iter, TAX);
- fill_model_with_match (match_info, "place_holder", store, &iter, PLACE_HOLDER);
- gtk_list_store_set (store, &iter, ROW_COLOR, NULL, -1);
- }
+ g_match_info_free (match_info);
+ g_regex_unref (regexpat);
+ g_free (contents);
- g_free (currentline);
- g_match_info_free (match_info);
- match_info = 0;
- g_free (line_utf8);
- line_utf8 = 0;
+ if (err != NULL)
+ {
+ g_printerr ("Error while matching: %s\n", err->message);
+ g_error_free (err);
}
- g_free (end1);
- g_free (end2);
- g_free (line);
- line = 0;
- g_regex_unref (regexpat);
- regexpat = 0;
- fclose (f);
if (match_found == TRUE)
return MATCH_FOUND;
else
commit 595e359301199fde13e293f6dea5be9bd6168edb
Author: Geert Janssens <janssens-geert at telenet.be>
Date: Fri Sep 26 16:38:30 2014 +0200
CSV Import transform macro into function
A complex macro is difficult to debug, particularly if it uses
variables that were defined outside of the macro.
diff --git a/src/import-export/csv-imp/csv-account-import.c b/src/import-export/csv-imp/csv-account-import.c
index 1d200ef..10a02f0 100644
--- a/src/import-export/csv-imp/csv-account-import.c
+++ b/src/import-export/csv-imp/csv-account-import.c
@@ -39,27 +39,38 @@
/* This static indicates the debugging module that this .o belongs to. */
static QofLogModule log_module = GNC_MOD_ASSISTANT;
-/* This helper macro takes a regexp match and fills the model */
-#define FILL_IN_HELPER(match_name,column) \
- temp = g_match_info_fetch_named (match_info, match_name); \
- if (temp) \
- { \
- g_strstrip (temp); \
- if (g_str_has_prefix (temp, "\""))\
- { \
- if (strlen (temp) >= 2) \
- { \
- toptail = g_strndup (temp + 1, strlen (temp)-2); \
- parts = g_strsplit (toptail, "\"\"", -1); \
- temp = g_strjoinv ("\"", parts); \
- g_strfreev (parts); \
- g_free (toptail); \
- } \
- } \
- gtk_list_store_set (store, &iter, column, temp, -1); \
- g_free (temp); \
- }
+/* This helper function takes a regexp match and fills the model */
+static void
+fill_model_with_match(GMatchInfo *match_info,
+ const gchar *match_name,
+ GtkListStore *store,
+ GtkTreeIter *iterptr,
+ gint column)
+{
+ gchar *temp;
+
+ if (!match_info || !match_name)
+ return;
+ temp = g_match_info_fetch_named (match_info, match_name);
+ if (temp)
+ {
+ g_strstrip (temp);
+ if (g_str_has_prefix (temp, "\""))
+ {
+ if (strlen (temp) >= 2)
+ {
+ gchar *toptail = g_strndup (temp + 1, strlen (temp)-2);
+ gchar **parts = g_strsplit (toptail, "\"\"", -1);
+ temp = g_strjoinv ("\"", parts);
+ g_strfreev (parts);
+ g_free (toptail);
+ }
+ }
+ gtk_list_store_set (store, iterptr, column, temp, -1);
+ g_free (temp);
+ }
+}
/*******************************************************
* csv_import_read_file
@@ -72,8 +83,7 @@ csv_import_read_file (const gchar *filename, const gchar *parser_regexp,
{
FILE *f;
char *line;
- gchar *line_utf8, *temp, *toptail;
- gchar **parts;
+ gchar *line_utf8;
gchar *end1, *end2;
GMatchInfo *match_info;
GError *err;
@@ -177,18 +187,18 @@ csv_import_read_file (const gchar *filename, const gchar *parser_regexp,
match_found = TRUE;
// fill in the values
gtk_list_store_append (store, &iter);
- FILL_IN_HELPER ("type", TYPE);
- FILL_IN_HELPER ("full_name", FULL_NAME);
- FILL_IN_HELPER ("name", NAME);
- FILL_IN_HELPER ("code", CODE);
- FILL_IN_HELPER ("description", DESCRIPTION);
- FILL_IN_HELPER ("color", COLOR);
- FILL_IN_HELPER ("notes", NOTES);
- FILL_IN_HELPER ("commoditym", COMMODITYM);
- FILL_IN_HELPER ("commodityn", COMMODITYN);
- FILL_IN_HELPER ("hidden", HIDDEN);
- FILL_IN_HELPER ("tax", TAX);
- FILL_IN_HELPER ("place_holder", PLACE_HOLDER);
+ fill_model_with_match (match_info, "type", store, &iter, TYPE);
+ fill_model_with_match (match_info, "full_name", store, &iter, FULL_NAME);
+ fill_model_with_match (match_info, "name", store, &iter, NAME);
+ fill_model_with_match (match_info, "code", store, &iter, CODE);
+ fill_model_with_match (match_info, "description", store, &iter, DESCRIPTION);
+ fill_model_with_match (match_info, "color", store, &iter, COLOR);
+ fill_model_with_match (match_info, "notes", store, &iter, NOTES);
+ fill_model_with_match (match_info, "commoditym", store, &iter, COMMODITYM);
+ fill_model_with_match (match_info, "commodityn", store, &iter, COMMODITYN);
+ fill_model_with_match (match_info, "hidden", store, &iter, HIDDEN);
+ fill_model_with_match (match_info, "tax", store, &iter, TAX);
+ fill_model_with_match (match_info, "place_holder", store, &iter, PLACE_HOLDER);
gtk_list_store_set (store, &iter, ROW_COLOR, NULL, -1);
}
commit 32193a47130fc78a5966d6ba4de64f0e0342835d
Author: Geert Janssens <janssens-geert at telenet.be>
Date: Fri Sep 26 16:26:58 2014 +0200
CSV Export: factor out function to generate regular expression
diff --git a/src/import-export/csv-imp/assistant-csv-account-import.c b/src/import-export/csv-imp/assistant-csv-account-import.c
index 30b1d53..aae2d4c 100644
--- a/src/import-export/csv-imp/assistant-csv-account-import.c
+++ b/src/import-export/csv-imp/assistant-csv-account-import.c
@@ -112,6 +112,21 @@ static gchar *mnemonic_escape (const gchar *source)
return dest;
}
+static
+void create_regex (GString regex_str, const gchar *sep)
+{
+ if (!sep) return;
+
+ g_string_printf (regex_str,
+ "^(?<type>[^%s]*)%s?(?<full_name>\"(?:[^\"]|\"\")*\"|[^%s]*)%s?(?<name>\"(?:[^\"]|\"\")*\"|[^%s]*)%s\
+ ?(?<code>\"(?:[^\"]|\"\")*\"|[^%s]*)%s?(?<description>\"(?:[^\"]|\"\")*\"|[^%s]*)%s?(?<color>[^%s]*)%s\
+ ?(?<notes>\"(?:[^\"]|\"\")*\"|[^%s]*)%s?(?<commoditym>\"(?:[^\"]|\"\")*\"|[^%s]*)%s?(?<commodityn>\"(?:[^\"]|\"\")*\"|[^%s]*)%s\
+ ?(?<hidden>[^%s]*)%s?(?<tax>[^%s]*)%s?(?<place_holder>[^%s]*)%s(?<endofline>[^%s]*)$",
+ sep, sep, sep, sep, sep, sep, sep, sep, sep, sep, sep, sep, sep,
+ sep, sep, sep, sep, sep, sep, sep, sep, sep, sep, sep, sep);
+
+}
+
/*************************************************************************/
/**************************************************
@@ -216,6 +231,7 @@ void csv_import_sep_cb (GtkWidget *radio, gpointer user_data)
CsvImportInfo *info = user_data;
const gchar *name;
gchar *temp;
+ gchar *sep = NULL;
if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(radio)))
{
@@ -224,24 +240,14 @@ void csv_import_sep_cb (GtkWidget *radio, gpointer user_data)
}
name = gtk_buildable_get_name (GTK_BUILDABLE(radio));
-
if (g_strcmp0 (name, "radio_semi") == 0)
- g_string_assign (info->regexp, "^(?<type>[^;]*);?(?<full_name>\"(?:[^\"]|\"\")*\"|[^;]*);?(?<name>\"(?:[^\"]|\"\")*\"|[^;]*);\
- ?(?<code>\"(?:[^\"]|\"\")*\"|[^;]*);?(?<description>\"(?:[^\"]|\"\")*\"|[^;]*);?(?<color>[^;]*);\
- ?(?<notes>\"(?:[^\"]|\"\")*\"|[^;]*);?(?<commoditym>\"(?:[^\"]|\"\")*\"|[^;]*);?(?<commodityn>\"(?:[^\"]|\"\")*\"|[^;]*);\
- ?(?<hidden>[^;]*);?(?<tax>[^;]*);?(?<place_holder>[^;]*);(?<endofline>[^;]*)$");
-
- if (g_strcmp0 (name, "radio_colon") == 0)
- g_string_assign (info->regexp, "^(?<type>[^:]*):?(?<full_name>\"(?:[^\"]|\"\")*\"|[^:]*):?(?<name>\"(?:[^\"]|\"\")*\"|[^:]*):\
- ?(?<code>\"(?:[^\"]|\"\")*\"|[^:]*):?(?<description>\"(?:[^\"]|\"\")*\"|[^:]*):?(?<color>[^:]*):\
- ?(?<notes>\"(?:[^\"]|\"\")*\"|[^:]*):?(?<commoditym>\"(?:[^\"]|\"\")*\"|[^:]*):?(?<commodityn>\"(?:[^\"]|\"\")*\"|[^:]*):\
- ?(?<hidden>[^:]*):?(?<tax>[^:]*):?(?<place_holder>[^:]*):(?<endofline>[^:]*)$");
-
- if (g_strcmp0 (name, "radio_comma") == 0)
- g_string_assign (info->regexp, "^(?<type>[^,]*),?(?<full_name>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<name>\"(?:[^\"]|\"\")*\"|[^,]*),\
- ?(?<code>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<description>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<color>[^,]*),\
- ?(?<notes>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<commoditym>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<commodityn>\"(?:[^\"]|\"\")*\"|[^,]*),\
- ?(?<hidden>[^,]*),?(?<tax>[^,]*),?(?<place_holder>[^,]*),(?<endofline>[^,]*)$");
+ sep = ";";
+ else if (g_strcmp0 (name, "radio_colon") == 0)
+ sep = ":";
+ else
+ sep = ","; /* Use as default as well */
+
+ create_regex (info->regexp, sep);
if (g_strcmp0 (name, "radio_custom") == 0)
{
@@ -616,10 +622,7 @@ csv_import_assistant_create (CsvImportInfo *info)
info->tree_view = GTK_WIDGET(gtk_builder_get_object (builder, "treeview"));
/* Comma Separated file default */
- info->regexp = g_string_new ( "^(?<type>[^,]*),?(?<full_name>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<name>\"(?:[^\"]|\"\")*\"|[^,]*),\
- ?(?<code>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<description>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<color>[^,]*),\
- ?(?<notes>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<commoditym>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<commodityn>\"(?:[^\"]|\"\")*\"|[^,]*),\
- ?(?<hidden>[^,]*),?(?<tax>[^,]*),?(?<place_holder>[^,]*),(?<endofline>[^,]*)$");
+ create_regex (info->regexp, ",");
/* create model and bind to view */
info->store = gtk_list_store_new (N_COLUMNS,
commit 0c31c6275380a04464cb8dca09f497225781f377
Author: Geert Janssens <janssens-geert at telenet.be>
Date: Thu Sep 25 21:17:19 2014 +0200
Refactor OS-specific ifdef to reduce code duplication
Which results in reduced risk on typos in either branch
diff --git a/src/import-export/csv-exp/csv-transactions-export.c b/src/import-export/csv-exp/csv-transactions-export.c
index 360c581..78cd294 100644
--- a/src/import-export/csv-exp/csv-transactions-export.c
+++ b/src/import-export/csv-exp/csv-transactions-export.c
@@ -42,6 +42,15 @@
/* This static indicates the debugging module that this .o belongs to. */
static QofLogModule log_module = GNC_MOD_ASSISTANT;
+/* CSV spec requires CRLF line endings. Tweak the end-of-line string so this
+ * true for each platform */
+#ifdef G_OS_WIN32
+# define EOLSTR "\n"
+#else
+# define EOLSTR "\r\n"
+#endif
+
+
/*******************************************************************/
/*******************************************************
@@ -256,11 +265,7 @@ void account_splits (CsvExportInfo *info, Account *acc, FILE *fh )
g_free (part1);
/* From Number Only */
-#ifdef G_OS_WIN32
- part1 = g_strconcat (part2, "", mid_sep, "", mid_sep, "", end_sep, "\n", NULL);
-#else
- part1 = g_strconcat (part2, "", mid_sep, "", mid_sep, "", end_sep, "\r\n", NULL);
-#endif
+ part1 = g_strconcat (part2, "", mid_sep, "", mid_sep, "", end_sep, EOLSTR, NULL);
g_free (part2);
/* Write to file */
@@ -350,17 +355,9 @@ void account_splits (CsvExportInfo *info, Account *acc, FILE *fh )
split_amount = xaccPrintAmount (xaccSplitGetSharePrice (t_split), gnc_split_amount_print_info (t_split, FALSE));
str_temp = csv_txn_test_field_string (info, split_amount);
if (xaccSplitGetAccount (t_split) == acc)
-#ifdef G_OS_WIN32
- part2 = g_strconcat (part1, str_temp, mid_sep, end_sep, "\n", NULL);
-#else
- part2 = g_strconcat (part1, str_temp, mid_sep, end_sep, "\r\n", NULL);
-#endif
+ part2 = g_strconcat (part1, str_temp, mid_sep, end_sep, EOLSTR, NULL);
else
-#ifdef G_OS_WIN32
- part2 = g_strconcat (part1, mid_sep, str_temp, end_sep, "\n", NULL);
-#else
- part2 = g_strconcat (part1, mid_sep, str_temp, end_sep, "\r\n", NULL);
-#endif
+ part2 = g_strconcat (part1, mid_sep, str_temp, end_sep, EOLSTR, NULL);
g_free (str_temp);
g_free (part1);
@@ -427,11 +424,7 @@ void csv_transactions_export (CsvExportInfo *info)
_("To With Sym"), mid_sep, _("From With Sym"), mid_sep,
_("To Num."), mid_sep, _("From Num."), mid_sep,
_("To Rate/Price"), mid_sep, _("From Rate/Price"),
-#ifdef G_OS_WIN32
- end_sep, "\n", NULL);
-#else
- end_sep, "\r\n", NULL);
-#endif
+ end_sep, EOLSTR, NULL);
DEBUG("Header String: %s", header);
/* Write header line */
diff --git a/src/import-export/csv-exp/csv-tree-export.c b/src/import-export/csv-exp/csv-tree-export.c
index 61c4cd3..22d5ae5 100644
--- a/src/import-export/csv-exp/csv-tree-export.c
+++ b/src/import-export/csv-exp/csv-tree-export.c
@@ -38,6 +38,14 @@
/* This static indicates the debugging module that this .o belongs to. */
static QofLogModule log_module = GNC_MOD_ASSISTANT;
+/* CSV spec requires CRLF line endings. Tweak the end-of-line string so this
+ * true for each platform */
+#ifdef G_OS_WIN32
+# define EOLSTR "\n"
+#else
+# define EOLSTR "\r\n"
+#endif
+
/******************************************************************/
/*******************************************************
@@ -144,19 +152,11 @@ void csv_tree_export (CsvExportInfo *info)
}
/* Header string, 'eol = end of line marker' */
-#ifdef G_OS_WIN32
- header = g_strconcat (end_sep, _("type"), mid_sep, _("full_name"), mid_sep, _("name"), mid_sep,
- _("code"), mid_sep, _("description"), mid_sep, _("color"), mid_sep,
- _("notes"), mid_sep, _("commoditym"), mid_sep, _("commodityn"), mid_sep,
- _("hidden"), mid_sep, _("tax"), mid_sep, _("place_holder"), mid_sep, _("#eol"),
- end_sep, "\n", NULL);
-#else
header = g_strconcat (end_sep, _("type"), mid_sep, _("full_name"), mid_sep, _("name"), mid_sep,
_("code"), mid_sep, _("description"), mid_sep, _("color"), mid_sep,
_("notes"), mid_sep, _("commoditym"), mid_sep, _("commodityn"), mid_sep,
_("hidden"), mid_sep, _("tax"), mid_sep, _("place_holder"), mid_sep, _("#eol"),
- end_sep, "\r\n", NULL);
-#endif
+ end_sep, EOLSTR, NULL);
DEBUG("Header String: %s", header);
/* Write header line */
@@ -236,11 +236,7 @@ void csv_tree_export (CsvExportInfo *info)
g_free (part2);
/* Place Holder / end of line marker */
currentSel = xaccAccountGetPlaceholder (acc) ? "T" : "F" ;
-#ifdef G_OS_WIN32
- part2 = g_strconcat (part1, currentSel, mid_sep, _("#eol"), end_sep, "\n", NULL);
-#else
- part2 = g_strconcat (part1, currentSel, mid_sep, _("#eol"), end_sep, "\r\n", NULL);
-#endif
+ part2 = g_strconcat (part1, currentSel, mid_sep, _("#eol"), end_sep, EOLSTR, NULL);
g_free (part1);
DEBUG("Account String: %s", part2);
commit ea0330165198a01a102420ab783345fac4aa55d0
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Fri Sep 19 16:30:28 2014 +0100
This patch just changes the white space to be of a consistent format.
diff --git a/src/import-export/csv-exp/assistant-csv-export.c b/src/import-export/csv-exp/assistant-csv-export.c
index b4ddb05..db9aba2 100644
--- a/src/import-export/csv-exp/assistant-csv-export.c
+++ b/src/import-export/csv-exp/assistant-csv-export.c
@@ -65,9 +65,9 @@ void csv_export_assistant_file_page_prepare (GtkAssistant *assistant, gpointer u
void csv_export_assistant_finish_page_prepare (GtkAssistant *assistant, gpointer user_data);
void csv_export_assistant_summary_page_prepare (GtkAssistant *assistant, gpointer user_data);
-void csv_export_quote_cb (GtkToggleButton *button, gpointer user_data );
-void csv_export_sep_cb (GtkWidget *radio, gpointer user_data );
-void csv_export_custom_entry_cb (GtkWidget *widget, gpointer user_data );
+void csv_export_quote_cb (GtkToggleButton *button, gpointer user_data);
+void csv_export_sep_cb (GtkWidget *radio, gpointer user_data);
+void csv_export_custom_entry_cb (GtkWidget *widget, gpointer user_data);
void csv_export_show_range_cb (GtkRadioButton *button, gpointer user_data);
void csv_export_start_date_cb (GtkWidget *radio, gpointer user_data);
@@ -115,11 +115,11 @@ csv_export_file_chooser_confirm_cb (GtkWidget *button, CsvExportInfo *info)
gtk_assistant_set_page_complete (assistant, page, FALSE);
- file_name = gtk_file_chooser_get_filename ( GTK_FILE_CHOOSER(info->file_chooser ));
+ file_name = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(info->file_chooser));
if (file_name)
{
- if (g_file_test(file_name, G_FILE_TEST_EXISTS ))
+ if (g_file_test (file_name, G_FILE_TEST_EXISTS))
{
const char *format = _("The file %s already exists. "
"Are you sure you want to overwrite it?");
@@ -129,25 +129,25 @@ csv_export_file_chooser_confirm_cb (GtkWidget *button, CsvExportInfo *info)
return;
}
- info->file_name = g_strdup(file_name);
+ info->file_name = g_strdup (file_name);
gtk_assistant_set_page_complete (assistant, page, TRUE);
}
if (file_name)
{
- gchar *filepath = gnc_uri_get_path ( file_name );
- gchar *filedir = g_path_get_dirname( filepath );
- info->starting_dir = g_strdup(filedir);
- g_free ( filedir );
- g_free ( filepath );
+ gchar *filepath = gnc_uri_get_path (file_name);
+ gchar *filedir = g_path_get_dirname (filepath);
+ info->starting_dir = g_strdup (filedir);
+ g_free (filedir);
+ g_free (filepath);
}
- g_free(file_name);
+ g_free (file_name);
DEBUG("file_name selected is %s", info->file_name);
DEBUG("starting directory is %s", info->starting_dir);
/* Step to next page if page is complete */
- if(gtk_assistant_get_page_complete(assistant, page))
+ if(gtk_assistant_get_page_complete (assistant, page))
gtk_assistant_set_current_page (assistant, num + 1);
}
@@ -157,7 +157,7 @@ csv_export_file_chooser_confirm_cb (GtkWidget *button, CsvExportInfo *info)
*
* call back for type of separartor required
*******************************************************/
-void csv_export_sep_cb (GtkWidget *radio, gpointer user_data )
+void csv_export_sep_cb (GtkWidget *radio, gpointer user_data)
{
CsvExportInfo *info = user_data;
const gchar *name;
@@ -166,28 +166,28 @@ void csv_export_sep_cb (GtkWidget *radio, gpointer user_data )
gint num = gtk_assistant_get_current_page (assistant);
GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
- if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio)))
+ if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(radio)))
{
LEAVE("1st callback of pair. Defer to 2nd callback.");
return;
}
- name = gtk_buildable_get_name(GTK_BUILDABLE(radio));
+ name = gtk_buildable_get_name (GTK_BUILDABLE(radio));
- gtk_widget_set_sensitive(info->custom_entry, FALSE);
+ gtk_widget_set_sensitive (info->custom_entry, FALSE);
info->use_custom = FALSE;
gtk_assistant_set_page_complete (assistant, page, TRUE);
- if (g_strcmp0(name, "comma_radio") == 0)
+ if (g_strcmp0 (name, "comma_radio") == 0)
info->separator_str = ",";
- if (g_strcmp0(name, "colon_radio") == 0)
+ if (g_strcmp0 (name, "colon_radio") == 0)
info->separator_str = ":";
- if (g_strcmp0(name, "semicolon_radio") == 0)
+ if (g_strcmp0 (name, "semicolon_radio") == 0)
info->separator_str = ";";
- if (g_strcmp0(name, "custom_radio") == 0)
+ if (g_strcmp0 (name, "custom_radio") == 0)
{
- gtk_widget_set_sensitive(info->custom_entry, TRUE);
+ gtk_widget_set_sensitive (info->custom_entry, TRUE);
info->use_custom = TRUE;
if (gtk_entry_get_text_length (GTK_ENTRY(info->custom_entry)) == 0)
gtk_assistant_set_page_complete (assistant, page, FALSE);
@@ -200,11 +200,11 @@ void csv_export_sep_cb (GtkWidget *radio, gpointer user_data )
*
* call back for use of quotes
*******************************************************/
-void csv_export_quote_cb (GtkToggleButton *button, gpointer user_data )
+void csv_export_quote_cb (GtkToggleButton *button, gpointer user_data)
{
CsvExportInfo *info = user_data;
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button)))
info->use_quotes = TRUE;
else
info->use_quotes = FALSE;
@@ -216,7 +216,7 @@ void csv_export_quote_cb (GtkToggleButton *button, gpointer user_data )
*
* call back for custom separator
*******************************************************/
-void csv_export_custom_entry_cb (GtkWidget *widget, gpointer user_data )
+void csv_export_custom_entry_cb (GtkWidget *widget, gpointer user_data)
{
CsvExportInfo *info = user_data;
const gchar *custom_str;
@@ -225,8 +225,8 @@ void csv_export_custom_entry_cb (GtkWidget *widget, gpointer user_data )
gint num = gtk_assistant_get_current_page (assistant);
GtkWidget *page = gtk_assistant_get_nth_page (assistant, num);
- custom_str = gtk_entry_get_text(GTK_ENTRY(info->custom_entry));
- info->separator_str = strdup(custom_str);
+ custom_str = gtk_entry_get_text (GTK_ENTRY(info->custom_entry));
+ info->separator_str = strdup (custom_str);
if (info->use_custom == TRUE && gtk_entry_get_text_length (GTK_ENTRY(info->custom_entry)) == 0)
@@ -250,7 +250,7 @@ void load_settings (CsvExportInfo *info)
info->starting_dir = NULL;
/* The default directory for the user to select files. */
- info->starting_dir = gnc_get_default_directory(GNC_PREFS_GROUP);
+ info->starting_dir = gnc_get_default_directory (GNC_PREFS_GROUP);
}
/* =============================================================== */
@@ -272,11 +272,11 @@ csv_export_cursor_changed_cb (GtkWidget *widget, gpointer user_data)
account = gnc_tree_view_account_get_cursor_account (account_tree);
if (!account)
{
- gtk_widget_set_sensitive(info->csva.select_button, FALSE);
+ gtk_widget_set_sensitive (info->csva.select_button, FALSE);
return;
}
- num_children = gnc_tree_view_account_count_children(account_tree, account);
- gtk_widget_set_sensitive(info->csva.select_button, num_children > 0);
+ num_children = gnc_tree_view_account_count_children (account_tree, account);
+ gtk_widget_set_sensitive (info->csva.select_button, num_children > 0);
}
@@ -318,7 +318,7 @@ show_acct_type_accounts (CsvExportInfo *info)
Viewinfo.include_type[type] = FALSE;
}
gnc_tree_view_account_set_view_info (tree, &Viewinfo);
- csv_export_cursor_changed_cb(GTK_WIDGET(tree), info);
+ csv_export_cursor_changed_cb (GTK_WIDGET(tree), info);
}
@@ -482,40 +482,32 @@ get_filter_times (CsvExportInfo *info)
{
time64 time_val;
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(info->csvd.start_date_choose)))
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(info->csvd.start_date_choose)))
{
- time_val = gnc_date_edit_get_date(GNC_DATE_EDIT(info->csvd.start_date));
- time_val = gnc_time64_get_day_start(time_val);
+ time_val = gnc_date_edit_get_date (GNC_DATE_EDIT(info->csvd.start_date));
+ time_val = gnc_time64_get_day_start (time_val);
info->csvd.start_time = time_val;
}
else
{
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(info->csvd.start_date_today)))
- {
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(info->csvd.start_date_today)))
info->csvd.start_time = gnc_time64_get_today_start();
- }
else
- {
info->csvd.start_time = 0;
- }
}
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(info->csvd.end_date_choose)))
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(info->csvd.end_date_choose)))
{
- time_val = gnc_date_edit_get_date(GNC_DATE_EDIT(info->csvd.end_date));
- time_val = gnc_time64_get_day_end(time_val);
+ time_val = gnc_date_edit_get_date (GNC_DATE_EDIT(info->csvd.end_date));
+ time_val = gnc_time64_get_day_end (time_val);
info->csvd.end_time = time_val;
}
else
{
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(info->csvd.start_date_today)))
- {
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(info->csvd.start_date_today)))
info->csvd.end_time = gnc_time64_get_today_end();
- }
else
- {
info->csvd.end_time = gnc_time (NULL);
- }
}
}
@@ -531,10 +523,10 @@ csv_export_show_range_cb (GtkRadioButton *button, gpointer user_data)
CsvExportInfo *info = user_data;
gboolean active;
- g_return_if_fail(GTK_IS_RADIO_BUTTON(button));
+ g_return_if_fail (GTK_IS_RADIO_BUTTON(button));
- active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
- gtk_widget_set_sensitive(info->csvd.table, active);
+ active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
+ gtk_widget_set_sensitive (info->csvd.table, active);
}
@@ -548,7 +540,7 @@ csv_export_date_changed_cb (GtkWidget *w, gpointer user_data)
{
CsvExportInfo *info = user_data;
- get_filter_times(info);
+ get_filter_times (info);
}
@@ -564,18 +556,18 @@ csv_export_start_date_cb (GtkWidget *radio, gpointer user_data)
const gchar *name;
gboolean active;
- g_return_if_fail(GTK_IS_RADIO_BUTTON(radio));
+ g_return_if_fail (GTK_IS_RADIO_BUTTON(radio));
- if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio)))
+ if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(radio)))
{
LEAVE("1st callback of pair. Defer to 2nd callback.");
return;
}
- name = gtk_buildable_get_name(GTK_BUILDABLE(radio));
- active = ( g_strcmp0(name, g_strdup("start_date_choose")) == 0 ? 1 : 0 );
- gtk_widget_set_sensitive(info->csvd.start_date, active);
- get_filter_times(info);
+ name = gtk_buildable_get_name (GTK_BUILDABLE(radio));
+ active = (g_strcmp0 (name, "start_date_choose") == 0 ? 1 : 0 );
+ gtk_widget_set_sensitive (info->csvd.start_date, active);
+ get_filter_times (info);
}
@@ -591,18 +583,18 @@ csv_export_end_date_cb (GtkWidget *radio, gpointer user_data)
const gchar *name;
gboolean active;
- g_return_if_fail(GTK_IS_RADIO_BUTTON(radio));
+ g_return_if_fail (GTK_IS_RADIO_BUTTON(radio));
- if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio)))
+ if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(radio)))
{
LEAVE("1st callback of pair. Defer to 2nd callback.");
return;
}
- name = gtk_buildable_get_name(GTK_BUILDABLE(radio));
- active = ( g_strcmp0(name, g_strdup("end_date_choose")) == 0 ? 1 : 0 );
- gtk_widget_set_sensitive(info->csvd.end_date, active);
- get_filter_times(info);
+ name = gtk_buildable_get_name (GTK_BUILDABLE(radio));
+ active = (g_strcmp0 (name, "end_date_choose") == 0 ? 1 : 0 );
+ gtk_widget_set_sensitive (info->csvd.end_date, active);
+ get_filter_times (info);
}
@@ -621,8 +613,8 @@ get_earliest_in_book (QofBook *book)
GList *res;
time64 earliest;
- q = qof_query_create_for(GNC_ID_SPLIT);
- qof_query_set_max_results(q, 1);
+ q = qof_query_create_for (GNC_ID_SPLIT);
+ qof_query_set_max_results (q, 1);
qof_query_set_book (q, book);
/* Sort by transaction date */
@@ -703,7 +695,7 @@ csv_export_assistant_file_page_prepare (GtkAssistant *assistant,
/* Set the default directory */
if (info->starting_dir)
- gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(info->file_chooser), info->starting_dir);
+ gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(info->file_chooser), info->starting_dir);
gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER(info->file_chooser), "");
/* Disable the Forward Assistant Button */
@@ -727,7 +719,7 @@ csv_export_assistant_finish_page_prepare (GtkAssistant *assistant,
text = g_strdup_printf (gettext (finish_trans_string), info->file_name, info->csva.num_accounts);
gtk_label_set_text (GTK_LABEL(info->finish_label), text);
- g_free(text);
+ g_free (text);
/* Enable the Assistant Buttons */
gtk_assistant_set_page_complete (assistant, page, TRUE);
@@ -740,7 +732,7 @@ csv_export_assistant_summary_page_prepare (GtkAssistant *assistant,
{
CsvExportInfo *info = user_data;
gchar *text, *mtext;
- gnc_set_default_directory(GNC_PREFS_GROUP, info->starting_dir);
+ gnc_set_default_directory (GNC_PREFS_GROUP, info->starting_dir);
if (info->failed)
text = _("There was a problem with the export, this could be due to lack of space, "
@@ -749,11 +741,11 @@ csv_export_assistant_summary_page_prepare (GtkAssistant *assistant,
else
text = _("File exported successfully!\n");
- mtext = g_strdup_printf("<span size=\"medium\"><b>%s</b></span>", text);
+ mtext = g_strdup_printf ("<span size=\"medium\"><b>%s</b></span>", text);
- gtk_label_set_markup(GTK_LABEL(info->summary_label), mtext);
+ gtk_label_set_markup (GTK_LABEL(info->summary_label), mtext);
- g_free(mtext);
+ g_free (mtext);
}
@@ -819,10 +811,10 @@ csv_export_close_handler (gpointer user_data)
{
CsvExportInfo *info = user_data;
- g_free(info->file_name);
- g_free(info->starting_dir);
+ g_free (info->file_name);
+ g_free (info->starting_dir);
- gnc_save_window_size(GNC_PREFS_GROUP, GTK_WINDOW(info->window));
+ gnc_save_window_size (GNC_PREFS_GROUP, GTK_WINDOW(info->window));
gtk_widget_destroy (info->window);
}
@@ -854,7 +846,7 @@ csv_export_assistant_create (CsvExportInfo *info)
info->start_page = GTK_WIDGET(gtk_builder_get_object(builder, "start_page"));
info->start_label = GTK_WIDGET(gtk_builder_get_object(builder, "start_label"));
info->custom_entry = GTK_WIDGET(gtk_builder_get_object(builder, "custom_entry"));
- gtk_widget_set_sensitive(info->custom_entry, FALSE);
+ gtk_widget_set_sensitive (info->custom_entry, FALSE);
/* Account Page */
info->account_page = GTK_WIDGET(gtk_builder_get_object(builder, "account_page"));
@@ -878,15 +870,15 @@ csv_export_assistant_create (CsvExportInfo *info)
selection = gtk_tree_view_get_selection (tree_view);
gtk_tree_selection_set_mode (selection, GTK_SELECTION_EXTENDED);
- g_signal_connect (G_OBJECT (selection), "changed",
- G_CALLBACK (csv_export_account_changed_cb), info);
+ g_signal_connect (G_OBJECT(selection), "changed",
+ G_CALLBACK(csv_export_account_changed_cb), info);
gtk_widget_show (info->csva.account_treeview);
box = GTK_WIDGET(gtk_builder_get_object (builder, "account_scroll"));
- gtk_container_add (GTK_CONTAINER (box), info->csva.account_treeview);
+ gtk_container_add (GTK_CONTAINER(box), info->csva.account_treeview);
label = GTK_WIDGET(gtk_builder_get_object (builder, "accounts_label"));
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(tree_view));
+ gtk_label_set_mnemonic_widget (GTK_LABEL(label), GTK_WIDGET(tree_view));
income_radio = GTK_WIDGET(gtk_builder_get_object (builder, "income_radio"));
expense_radio = GTK_WIDGET(gtk_builder_get_object (builder, "expense_radio"));
@@ -896,25 +888,25 @@ csv_export_assistant_create (CsvExportInfo *info)
liab_eq_radio = GTK_WIDGET(gtk_builder_get_object (builder, "liab_eq_radio"));
info->csva.liab_eq_radio = liab_eq_radio;
info->csva.account_type = ACCT_TYPE_EXPENSE;
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(expense_radio), TRUE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(expense_radio), TRUE);
- g_signal_connect (G_OBJECT (income_radio), "toggled",
- G_CALLBACK (csv_export_info_acct_type_cb), info);
- g_signal_connect (G_OBJECT (expense_radio), "toggled",
- G_CALLBACK (csv_export_info_acct_type_cb), info);
- g_signal_connect (G_OBJECT (asset_radio), "toggled",
- G_CALLBACK (csv_export_info_acct_type_cb), info);
- g_signal_connect (G_OBJECT (liab_eq_radio), "toggled",
- G_CALLBACK (csv_export_info_acct_type_cb), info);
+ g_signal_connect (G_OBJECT(income_radio), "toggled",
+ G_CALLBACK(csv_export_info_acct_type_cb), info);
+ g_signal_connect (G_OBJECT(expense_radio), "toggled",
+ G_CALLBACK(csv_export_info_acct_type_cb), info);
+ g_signal_connect (G_OBJECT(asset_radio), "toggled",
+ G_CALLBACK(csv_export_info_acct_type_cb), info);
+ g_signal_connect (G_OBJECT(liab_eq_radio), "toggled",
+ G_CALLBACK(csv_export_info_acct_type_cb), info);
/* select subaccounts button */
button = GTK_WIDGET(gtk_builder_get_object (builder, "select_subaccounts_button"));
info->csva.select_button = button;
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (csv_export_select_subaccounts_clicked_cb), info);
- g_signal_connect (G_OBJECT (info->csva.account_treeview), "cursor_changed",
- G_CALLBACK (csv_export_cursor_changed_cb), info);
+ g_signal_connect (G_OBJECT(button), "clicked",
+ G_CALLBACK(csv_export_select_subaccounts_clicked_cb), info);
+ g_signal_connect (G_OBJECT(info->csva.account_treeview), "cursor_changed",
+ G_CALLBACK(csv_export_cursor_changed_cb), info);
/* Set the date info */
button = GTK_WIDGET(gtk_builder_get_object (builder, "show_range"));
@@ -925,11 +917,11 @@ csv_export_assistant_create (CsvExportInfo *info)
info->csvd.start_time = start_time;
info->csvd.end_time = end_time;
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(button), FALSE);
table = GTK_WIDGET(gtk_builder_get_object (builder, "select_range_table"));
info->csvd.table = table;
- gtk_widget_set_sensitive(GTK_WIDGET(table), FALSE);
+ gtk_widget_set_sensitive (GTK_WIDGET(table), FALSE);
info->csvd.start_date_choose = GTK_WIDGET(gtk_builder_get_object (builder, "start_date_choose"));
info->csvd.start_date_today = GTK_WIDGET(gtk_builder_get_object (builder, "start_date_today"));
@@ -939,16 +931,16 @@ csv_export_assistant_create (CsvExportInfo *info)
/* Start date info */
info->csvd.start_date = gnc_date_edit_new (gnc_time (NULL), FALSE, FALSE);
hbox = GTK_WIDGET(gtk_builder_get_object (builder, "start_date_hbox"));
- gtk_box_pack_start (GTK_BOX (hbox), info->csvd.start_date, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX(hbox), info->csvd.start_date, TRUE, TRUE, 0);
gtk_widget_show (info->csvd.start_date);
gnc_date_edit_set_time (GNC_DATE_EDIT(info->csvd.start_date), start_time);
- g_signal_connect (G_OBJECT (info->csvd.start_date), "date-changed",
- G_CALLBACK (csv_export_date_changed_cb), info);
+ g_signal_connect (G_OBJECT(info->csvd.start_date), "date-changed",
+ G_CALLBACK(csv_export_date_changed_cb), info);
/* End date info */
info->csvd.end_date = gnc_date_edit_new (gnc_time (NULL), FALSE, FALSE);
hbox = GTK_WIDGET(gtk_builder_get_object (builder, "end_date_hbox"));
- gtk_box_pack_start (GTK_BOX (hbox), info->csvd.end_date, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX(hbox), info->csvd.end_date, TRUE, TRUE, 0);
gtk_widget_show (info->csvd.end_date);
gnc_date_edit_set_time (GNC_DATE_EDIT(info->csvd.end_date), end_time);
g_signal_connect (G_OBJECT (info->csvd.end_date), "date-changed",
@@ -962,37 +954,37 @@ csv_export_assistant_create (CsvExportInfo *info)
/* File chooser Page */
info->file_page = GTK_WIDGET(gtk_builder_get_object(builder, "file_page"));
info->file_chooser = gtk_file_chooser_widget_new (GTK_FILE_CHOOSER_ACTION_SAVE);
- button = gtk_button_new_from_stock(GTK_STOCK_OK);
+ button = gtk_button_new_from_stock (GTK_STOCK_OK);
gtk_widget_set_size_request (button, 100, -1);
gtk_widget_show (button);
- h_box = gtk_hbox_new(TRUE, 0);
+ h_box = gtk_hbox_new (TRUE, 0);
gtk_box_pack_start(GTK_BOX(h_box), button, FALSE, FALSE, 0);
gtk_file_chooser_set_extra_widget (GTK_FILE_CHOOSER(info->file_chooser), h_box);
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (csv_export_file_chooser_confirm_cb), info);
+ g_signal_connect (G_OBJECT(button), "clicked",
+ G_CALLBACK(csv_export_file_chooser_confirm_cb), info);
- box = GTK_WIDGET(gtk_builder_get_object(builder, "file_page"));
+ box = GTK_WIDGET(gtk_builder_get_object (builder, "file_page"));
gtk_box_pack_start (GTK_BOX (box), info->file_chooser, TRUE, TRUE, 6);
gtk_widget_show (info->file_chooser);
/* Finish Page */
- info->finish_label = GTK_WIDGET(gtk_builder_get_object(builder, "end_page"));
+ info->finish_label = GTK_WIDGET(gtk_builder_get_object (builder, "end_page"));
/* Summary Page */
- info->summary_label = GTK_WIDGET(gtk_builder_get_object(builder, "summary_page"));
+ info->summary_label = GTK_WIDGET(gtk_builder_get_object (builder, "summary_page"));
g_signal_connect (G_OBJECT(window), "destroy",
- G_CALLBACK (csv_export_assistant_destroy_cb), info);
+ G_CALLBACK(csv_export_assistant_destroy_cb), info);
gnc_restore_window_size (GNC_PREFS_GROUP, GTK_WINDOW(info->window));
- if (gnc_prefs_get_bool(GNC_PREFS_GROUP_GENERAL, GNC_PREF_SAVE_GEOMETRY))
+ if (gnc_prefs_get_bool (GNC_PREFS_GROUP_GENERAL, GNC_PREF_SAVE_GEOMETRY))
{
GObject *object = gtk_builder_get_object (builder, "paned");
gnc_prefs_bind (GNC_PREFS_GROUP, GNC_PREF_PANED_POS, object, "position");
}
- gtk_builder_connect_signals(builder, info);
- g_object_unref(G_OBJECT(builder));
+ gtk_builder_connect_signals (builder, info);
+ g_object_unref (G_OBJECT(builder));
return window;
}
diff --git a/src/import-export/csv-exp/csv-transactions-export.c b/src/import-export/csv-exp/csv-transactions-export.c
index b09d785..360c581 100644
--- a/src/import-export/csv-exp/csv-transactions-export.c
+++ b/src/import-export/csv-exp/csv-transactions-export.c
@@ -57,10 +57,10 @@ gboolean write_line_to_file (FILE *fh, char * line)
DEBUG("Account String: %s", line);
/* Write account line */
- len = strlen( line );
- written = fwrite( line, 1, len, fh );
+ len = strlen (line);
+ written = fwrite (line, 1, len, fh);
- if ( written != len )
+ if (written != len)
return FALSE;
else
return TRUE;
@@ -121,7 +121,7 @@ void account_splits (CsvExportInfo *info, Account *acc, FILE *fh )
gchar *end_sep;
gchar *mid_sep;
- q = qof_query_create_for(GNC_ID_SPLIT);
+ q = qof_query_create_for (GNC_ID_SPLIT);
book = gnc_get_current_book();
qof_query_set_book (q, book);
@@ -129,12 +129,12 @@ void account_splits (CsvExportInfo *info, Account *acc, FILE *fh )
if (info->use_quotes)
{
end_sep = "\"";
- mid_sep = g_strconcat ( "\"", info->separator_str, "\"", NULL);
+ mid_sep = g_strconcat ("\"", info->separator_str, "\"", NULL);
}
else
{
end_sep = "";
- mid_sep = g_strconcat ( info->separator_str, NULL);
+ mid_sep = g_strconcat (info->separator_str, NULL);
}
/* Sort by transaction date */
@@ -147,7 +147,7 @@ void account_splits (CsvExportInfo *info, Account *acc, FILE *fh )
xaccQueryAddDateMatchTT (q, TRUE, info->csvd.start_time, TRUE, info->csvd.end_time, QOF_QUERY_AND);
/* Run the query */
- for (splits = qof_query_run(q); splits; splits = splits->next)
+ for (splits = qof_query_run (q); splits; splits = splits->next)
{
Split *split;
Transaction *trans;
@@ -164,9 +164,9 @@ void account_splits (CsvExportInfo *info, Account *acc, FILE *fh )
gchar *str_temp = NULL;
split = splits->data;
- trans = xaccSplitGetParent(split);
- nSplits = xaccTransCountSplits(trans);
- s_list = xaccTransGetSplitList(trans);
+ trans = xaccSplitGetParent (split);
+ nSplits = xaccTransCountSplits (trans);
+ s_list = xaccTransGetSplitList (trans);
/* Date */
date = qof_print_date (xaccTransGetDate (trans));
@@ -274,12 +274,12 @@ void account_splits (CsvExportInfo *info, Account *acc, FILE *fh )
/* Loop through the list of splits for the Transcation */
node = s_list;
cnt = 0;
- while ( (cnt < nSplits) && (info->failed == FALSE))
+ while ((cnt < nSplits) && (info->failed == FALSE))
{
t_split = node->data;
/* Start of line */
- part1 = g_strconcat ( end_sep, mid_sep, mid_sep, mid_sep, mid_sep, mid_sep, NULL);
+ part1 = g_strconcat (end_sep, mid_sep, mid_sep, mid_sep, mid_sep, mid_sep, NULL);
/* Memo */
currentSel = xaccSplitGetMemo (t_split) ? xaccSplitGetMemo (t_split) : "" ;
@@ -396,8 +396,8 @@ void csv_transactions_export (CsvExportInfo *info)
info->failed = FALSE;
/* Open File for writing */
- fh = g_fopen( info->file_name, "w" );
- if ( fh != NULL )
+ fh = g_fopen (info->file_name, "w" );
+ if (fh != NULL)
{
gchar *header;
gchar *end_sep;
@@ -408,16 +408,16 @@ void csv_transactions_export (CsvExportInfo *info)
if (info->use_quotes)
{
end_sep = "\"";
- mid_sep = g_strconcat ( "\"", info->separator_str, "\"", NULL);
+ mid_sep = g_strconcat ("\"", info->separator_str, "\"", NULL);
}
else
{
end_sep = "";
- mid_sep = g_strconcat ( info->separator_str, NULL);
+ mid_sep = g_strconcat (info->separator_str, NULL);
}
/* Header string */
- header = g_strconcat ( end_sep, _("Date"), mid_sep, _("Account Name"), mid_sep,
+ header = g_strconcat (end_sep, _("Date"), mid_sep, _("Account Name"), mid_sep,
(num_action ? _("Transaction Number") : _("Number")),
mid_sep, _("Description"), mid_sep, _("Notes"),
mid_sep, _("Memo"), mid_sep, _("Category"), mid_sep,
@@ -435,21 +435,21 @@ void csv_transactions_export (CsvExportInfo *info)
DEBUG("Header String: %s", header);
/* Write header line */
- if (!write_line_to_file(fh, header))
+ if (!write_line_to_file (fh, header))
{
info->failed = TRUE;
- g_free(mid_sep);
- g_free(header);
+ g_free (mid_sep);
+ g_free (header);
return;
}
- g_free(mid_sep);
- g_free(header);
+ g_free (mid_sep);
+ g_free (header);
/* Go through list of accounts */
for (ptr = info->csva.account_list, i = 0; ptr; ptr = g_list_next(ptr), i++)
{
acc = ptr->data;
- DEBUG("Account being processed is : %s", xaccAccountGetName(acc));
+ DEBUG("Account being processed is : %s", xaccAccountGetName (acc));
account_splits (info, acc, fh);
}
}
diff --git a/src/import-export/csv-exp/csv-tree-export.c b/src/import-export/csv-exp/csv-tree-export.c
index da4ab74..61c4cd3 100644
--- a/src/import-export/csv-exp/csv-tree-export.c
+++ b/src/import-export/csv-exp/csv-tree-export.c
@@ -47,16 +47,16 @@ static QofLogModule log_module = GNC_MOD_ASSISTANT;
* successfull.
*******************************************************/
static
-gboolean write_line_to_file ( FILE *fh, char * line)
+gboolean write_line_to_file (FILE *fh, char * line)
{
int len, written;
DEBUG("Account String: %s", line);
/* Write account line */
- len = strlen( line );
- written = fwrite( line, 1, len, fh );
+ len = strlen (line);
+ written = fwrite (line, 1, len, fh);
- if ( written != len )
+ if (written != len)
return FALSE;
else
return TRUE;
@@ -114,13 +114,13 @@ void csv_tree_export (CsvExportInfo *info)
DEBUG("File name is : %s", info->file_name);
/* Get list of Accounts */
- root = gnc_book_get_root_account( gnc_get_current_book() );
- accts = gnc_account_get_descendants_sorted( root );
+ root = gnc_book_get_root_account (gnc_get_current_book());
+ accts = gnc_account_get_descendants_sorted (root);
info->failed = FALSE;
/* Open File for writing */
- fh = g_fopen( info->file_name, "w" );
- if ( fh != NULL )
+ fh = g_fopen (info->file_name, "w");
+ if (fh != NULL)
{
gchar *header;
gchar *part1;
@@ -135,12 +135,12 @@ void csv_tree_export (CsvExportInfo *info)
if (info->use_quotes)
{
end_sep = "\"";
- mid_sep = g_strconcat ( "\"", info->separator_str, "\"", NULL);
+ mid_sep = g_strconcat ("\"", info->separator_str, "\"", NULL);
}
else
{
end_sep = "";
- mid_sep = g_strconcat ( info->separator_str, NULL);
+ mid_sep = g_strconcat (info->separator_str, NULL);
}
/* Header string, 'eol = end of line marker' */
@@ -160,22 +160,22 @@ void csv_tree_export (CsvExportInfo *info)
DEBUG("Header String: %s", header);
/* Write header line */
- if (!write_line_to_file(fh, header))
+ if (!write_line_to_file (fh, header))
{
info->failed = TRUE;
- g_free(mid_sep);
- g_free(header);
+ g_free (mid_sep);
+ g_free (header);
return;
}
- g_free(header);
+ g_free (header);
/* Go through list of accounts */
- for (ptr = accts, i = 0; ptr; ptr = g_list_next(ptr), i++)
+ for (ptr = accts, i = 0; ptr; ptr = g_list_next (ptr), i++)
{
gchar *fullname = NULL;
gchar *str_temp = NULL;
acc = ptr->data;
- DEBUG("Account being processed is : %s", xaccAccountGetName(acc));
+ DEBUG("Account being processed is : %s", xaccAccountGetName (acc));
/* Type */
currentSel = xaccAccountTypeEnumAsString (xaccAccountGetType (acc));
part1 = g_strconcat (end_sep, currentSel, mid_sep, NULL);
@@ -246,21 +246,21 @@ void csv_tree_export (CsvExportInfo *info)
DEBUG("Account String: %s", part2);
/* Write to file */
- if (!write_line_to_file(fh, part2))
+ if (!write_line_to_file (fh, part2))
{
info->failed = TRUE;
break;
}
- g_free(part2);
+ g_free (part2);
}
- g_free(mid_sep);
+ g_free (mid_sep);
}
else
info->failed = TRUE;
if (fh)
fclose (fh);
- g_list_free( accts );
+ g_list_free (accts);
LEAVE("");
}
diff --git a/src/import-export/csv-imp/assistant-csv-account-import.c b/src/import-export/csv-imp/assistant-csv-account-import.c
index 9d23ab7..30b1d53 100644
--- a/src/import-export/csv-imp/assistant-csv-account-import.c
+++ b/src/import-export/csv-imp/assistant-csv-account-import.c
@@ -131,17 +131,17 @@ csv_import_file_chooser_confirm_cb (GtkWidget *button, CsvImportInfo *info)
gtk_assistant_set_page_complete (assistant, page, FALSE);
- file_name = gtk_file_chooser_get_filename ( GTK_FILE_CHOOSER(info->file_chooser ));
+ file_name = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(info->file_chooser));
if (file_name)
{
- gchar *filepath = gnc_uri_get_path ( file_name );
- gchar *filedir = g_path_get_dirname( filepath );
- info->starting_dir = g_strdup(filedir);
- g_free ( filedir );
- g_free ( filepath );
+ gchar *filepath = gnc_uri_get_path (file_name);
+ gchar *filedir = g_path_get_dirname (filepath);
+ info->starting_dir = g_strdup (filedir);
+ g_free (filedir);
+ g_free (filepath);
- info->file_name = g_strdup(file_name);
+ info->file_name = g_strdup (file_name);
// generate preview
gtk_list_store_clear (info->store);
@@ -153,13 +153,13 @@ csv_import_file_chooser_confirm_cb (GtkWidget *button, CsvImportInfo *info)
else if (res == MATCH_FOUND)
gtk_assistant_set_page_complete (assistant, page, TRUE);
}
- g_free(file_name);
+ g_free (file_name);
DEBUG("file_name selected is %s", info->file_name);
DEBUG("starting directory is %s", info->starting_dir);
/* Step to next page if page is complete */
- if(gtk_assistant_get_page_complete(assistant, page))
+ if(gtk_assistant_get_page_complete (assistant, page))
gtk_assistant_set_current_page (assistant, num + 1);
}
@@ -170,7 +170,7 @@ csv_import_file_chooser_confirm_cb (GtkWidget *button, CsvImportInfo *info)
*
* call back for the start row / number of header rows
*******************************************************/
-void csv_import_hrows_cb (GtkWidget *spin, gpointer user_data )
+void csv_import_hrows_cb (GtkWidget *spin, gpointer user_data)
{
CsvImportInfo *info = user_data;
@@ -182,12 +182,12 @@ void csv_import_hrows_cb (GtkWidget *spin, gpointer user_data )
info->header_rows = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(spin));
/* Get number of rows displayed */
- num_rows = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(info->store), NULL);
+ num_rows = gtk_tree_model_iter_n_children (GTK_TREE_MODEL(info->store), NULL);
/* Modify background color for header rows */
if (info->header_rows == 0)
{
- valid = gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(info->store), &iter, NULL, 0 );
+ valid = gtk_tree_model_iter_nth_child (GTK_TREE_MODEL(info->store), &iter, NULL, 0 );
if (valid)
gtk_list_store_set (info->store, &iter, ROW_COLOR, NULL, -1);
}
@@ -195,7 +195,7 @@ void csv_import_hrows_cb (GtkWidget *spin, gpointer user_data )
{
if (info->header_rows - 1 < num_rows)
{
- valid = gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(info->store), &iter, NULL, info->header_rows - 1 );
+ valid = gtk_tree_model_iter_nth_child (GTK_TREE_MODEL(info->store), &iter, NULL, info->header_rows - 1 );
if (valid)
gtk_list_store_set (info->store, &iter, ROW_COLOR, "pink", -1);
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL(info->store), &iter);
@@ -211,19 +211,19 @@ void csv_import_hrows_cb (GtkWidget *spin, gpointer user_data )
*
* call back for type of separartor required
*******************************************************/
-void csv_import_sep_cb (GtkWidget *radio, gpointer user_data )
+void csv_import_sep_cb (GtkWidget *radio, gpointer user_data)
{
CsvImportInfo *info = user_data;
const gchar *name;
gchar *temp;
- if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio)))
+ if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(radio)))
{
LEAVE("1st callback of pair. Defer to 2nd callback.");
return;
}
- name = gtk_buildable_get_name(GTK_BUILDABLE(radio));
+ name = gtk_buildable_get_name (GTK_BUILDABLE(radio));
if (g_strcmp0 (name, "radio_semi") == 0)
g_string_assign (info->regexp, "^(?<type>[^;]*);?(?<full_name>\"(?:[^\"]|\"\")*\"|[^;]*);?(?<name>\"(?:[^\"]|\"\")*\"|[^;]*);\
@@ -256,13 +256,13 @@ void csv_import_sep_cb (GtkWidget *radio, gpointer user_data )
/* Generate preview */
gtk_list_store_clear (info->store);
- if (csv_import_read_file (info->file_name, info->regexp->str, info->store, 11 ) == MATCH_FOUND)
+ if (csv_import_read_file (info->file_name, info->regexp->str, info->store, 11) == MATCH_FOUND)
gtk_widget_set_sensitive (info->header_row_spin, TRUE);
else
gtk_widget_set_sensitive (info->header_row_spin, FALSE);
/* Reset Header spin to 0 */
- gtk_spin_button_set_value( GTK_SPIN_BUTTON(info->header_row_spin), 0 );
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON(info->header_row_spin), 0);
}
@@ -281,7 +281,7 @@ void load_settings (CsvImportInfo *info)
info->error = "";
/* The default directory for the user to select files. */
- info->starting_dir = gnc_get_default_directory(GNC_PREFS_GROUP);
+ info->starting_dir = gnc_get_default_directory (GNC_PREFS_GROUP);
}
@@ -313,28 +313,28 @@ gnc_input_dialog (GtkWidget *parent, const gchar *title, const gchar *msg, const
GtkTextIter start, end;
/* Create the widgets */
- dialog = gtk_dialog_new_with_buttons (title, GTK_WINDOW (parent),
+ dialog = gtk_dialog_new_with_buttons (title, GTK_WINDOW(parent),
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
NULL);
- content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
+ content_area = gtk_dialog_get_content_area (GTK_DIALOG(dialog));
// add a label
label = gtk_label_new (msg);
- gtk_container_add (GTK_CONTAINER (content_area), label);
+ gtk_container_add (GTK_CONTAINER(content_area), label);
// add a textview
view = gtk_text_view_new ();
- gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (view), GTK_WRAP_WORD_CHAR);
- buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
+ gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW(view), GTK_WRAP_WORD_CHAR);
+ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(view));
gtk_text_buffer_set_text (buffer, default_input, -1);
- gtk_container_add (GTK_CONTAINER (content_area), view);
+ gtk_container_add (GTK_CONTAINER(content_area), view);
// run the dialog
gtk_widget_show_all (dialog);
- result = gtk_dialog_run (GTK_DIALOG (dialog));
+ result = gtk_dialog_run (GTK_DIALOG(dialog));
if (result == GTK_RESPONSE_REJECT)
user_input = 0;
@@ -380,7 +380,7 @@ csv_import_assistant_file_page_prepare (GtkAssistant *assistant,
/* Set the default directory */
if (info->starting_dir)
- gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(info->file_chooser), info->starting_dir);
+ gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(info->file_chooser), info->starting_dir);
/* Disable the Forward Assistant Button */
gtk_assistant_set_page_complete (assistant, page, FALSE);
@@ -423,10 +423,10 @@ csv_import_assistant_finish_page_prepare (GtkAssistant *assistant,
text = g_strdup_printf (gettext (finish_tree_string), info->file_name);
}
gtk_label_set_text (GTK_LABEL(info->finish_label), text);
- g_free(text);
+ g_free (text);
/* Save the Window size and directory */
- gnc_set_default_directory(GNC_PREFS_GROUP, info->starting_dir);
+ gnc_set_default_directory (GNC_PREFS_GROUP, info->starting_dir);
/* Enable the Assistant Buttons */
gtk_assistant_set_page_complete (assistant, page, TRUE);
@@ -443,29 +443,29 @@ csv_import_assistant_summary_page_prepare (GtkAssistant *assistant,
/* Before creating accounts, if this is a new book, let user specify
* book options, since they affect how transactions are created */
if (info->new_book)
- info->new_book = gnc_new_book_option_display(info->window);
+ info->new_book = gnc_new_book_option_display (info->window);
- if (!g_strcmp0(info->error, "") == 0)
+ if (!g_strcmp0 (info->error, "") == 0)
{
GtkTextBuffer *buffer;
- buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (info->summary_error_view));
- text = g_strdup_printf(gettext ("Import completed but with errors!\n\nThe number of Accounts added was %u and "
+ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(info->summary_error_view));
+ text = g_strdup_printf (gettext ("Import completed but with errors!\n\nThe number of Accounts added was %u and "
"updated was %u.\n\nSee below for errors..." ), info->num_new, info->num_updates );
- errtext = g_strdup_printf ( "%s", info->error);
+ errtext = g_strdup_printf ("%s", info->error);
gtk_text_buffer_set_text (buffer, errtext, -1);
- g_free(errtext);
- g_free(info->error);
+ g_free (errtext);
+ g_free (info->error);
}
else
- text = g_strdup_printf(gettext ("Import completed successfully!\n\nThe number of Accounts added was %u and "
+ text = g_strdup_printf (gettext ("Import completed successfully!\n\nThe number of Accounts added was %u and "
"updated was %u.\n" ), info->num_new, info->num_updates );
- mtext = g_strdup_printf("<span size=\"medium\"><b>%s</b></span>", text);
- gtk_label_set_markup(GTK_LABEL(info->summary_label), mtext);
+ mtext = g_strdup_printf ("<span size=\"medium\"><b>%s</b></span>", text);
+ gtk_label_set_markup (GTK_LABEL(info->summary_label), mtext);
- g_free(text);
- g_free(mtext);
+ g_free (text);
+ g_free (mtext);
}
@@ -473,7 +473,7 @@ void
csv_import_assistant_prepare (GtkAssistant *assistant, GtkWidget *page,
gpointer user_data)
{
- gint currentpage = gtk_assistant_get_current_page(assistant);
+ gint currentpage = gtk_assistant_get_current_page (assistant);
switch (currentpage)
{
@@ -541,11 +541,11 @@ csv_import_close_handler (gpointer user_data)
{
CsvImportInfo *info = user_data;
- g_free(info->starting_dir);
- g_free(info->file_name);
- g_string_free(info->regexp, TRUE);
+ g_free (info->starting_dir);
+ g_free (info->file_name);
+ g_string_free (info->regexp, TRUE);
- gnc_save_window_size(GNC_PREFS_GROUP, GTK_WINDOW(info->window));
+ gnc_save_window_size (GNC_PREFS_GROUP, GTK_WINDOW(info->window));
gtk_widget_destroy (info->window);
}
@@ -564,8 +564,8 @@ csv_import_assistant_create (CsvImportInfo *info)
gchar *mnemonic_desc = NULL;
builder = gtk_builder_new();
- gnc_builder_add_from_file (builder , "assistant-csv-account-import.glade", "num_hrows_adj");
- gnc_builder_add_from_file (builder , "assistant-csv-account-import.glade", "CSV Account Import Assistant");
+ gnc_builder_add_from_file (builder, "assistant-csv-account-import.glade", "num_hrows_adj");
+ gnc_builder_add_from_file (builder, "assistant-csv-account-import.glade", "CSV Account Import Assistant");
window = GTK_WIDGET(gtk_builder_get_object (builder, "CSV Account Import Assistant"));
info->window = window;
@@ -576,19 +576,19 @@ csv_import_assistant_create (CsvImportInfo *info)
load_settings (info);
/* Enable buttons on all page. */
- gtk_assistant_set_page_complete (GTK_ASSISTANT (window),
+ gtk_assistant_set_page_complete (GTK_ASSISTANT(window),
GTK_WIDGET(gtk_builder_get_object(builder, "start_page")),
TRUE);
- gtk_assistant_set_page_complete (GTK_ASSISTANT (window),
+ gtk_assistant_set_page_complete (GTK_ASSISTANT(window),
GTK_WIDGET(gtk_builder_get_object(builder, "file_page")),
FALSE);
- gtk_assistant_set_page_complete (GTK_ASSISTANT (window),
+ gtk_assistant_set_page_complete (GTK_ASSISTANT(window),
GTK_WIDGET(gtk_builder_get_object(builder, "import_tree_page")),
TRUE);
- gtk_assistant_set_page_complete (GTK_ASSISTANT (window),
+ gtk_assistant_set_page_complete (GTK_ASSISTANT(window),
GTK_WIDGET(gtk_builder_get_object(builder, "end_page")),
FALSE);
- gtk_assistant_set_page_complete (GTK_ASSISTANT (window),
+ gtk_assistant_set_page_complete (GTK_ASSISTANT(window),
GTK_WIDGET(gtk_builder_get_object(builder, "summary_page")),
TRUE);
@@ -596,19 +596,19 @@ csv_import_assistant_create (CsvImportInfo *info)
/* File chooser Page */
info->file_chooser = gtk_file_chooser_widget_new (GTK_FILE_CHOOSER_ACTION_OPEN);
- g_signal_connect (G_OBJECT (info->file_chooser), "file-activated",
- G_CALLBACK (csv_import_file_chooser_confirm_cb), info);
- button = gtk_button_new_from_stock(GTK_STOCK_OK);
+ g_signal_connect (G_OBJECT(info->file_chooser), "file-activated",
+ G_CALLBACK(csv_import_file_chooser_confirm_cb), info);
+ button = gtk_button_new_from_stock (GTK_STOCK_OK);
gtk_widget_set_size_request (button, 100, -1);
gtk_widget_show (button);
- h_box = gtk_hbox_new(TRUE, 0);
- gtk_box_pack_start(GTK_BOX(h_box), button, FALSE, FALSE, 0);
+ h_box = gtk_hbox_new (TRUE, 0);
+ gtk_box_pack_start (GTK_BOX(h_box), button, FALSE, FALSE, 0);
gtk_file_chooser_set_extra_widget (GTK_FILE_CHOOSER(info->file_chooser), h_box);
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (csv_import_file_chooser_confirm_cb), info);
+ g_signal_connect (G_OBJECT(button), "clicked",
+ G_CALLBACK(csv_import_file_chooser_confirm_cb), info);
box = GTK_WIDGET(gtk_builder_get_object(builder, "file_page"));
- gtk_box_pack_start (GTK_BOX (box), info->file_chooser, TRUE, TRUE, 6);
+ gtk_box_pack_start (GTK_BOX(box), info->file_chooser, TRUE, TRUE, 6);
gtk_widget_show (info->file_chooser);
/* Account Tree Page */
@@ -625,14 +625,14 @@ csv_import_assistant_create (CsvImportInfo *info)
info->store = gtk_list_store_new (N_COLUMNS,
G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
- gtk_tree_view_set_model( GTK_TREE_VIEW(info->tree_view), GTK_TREE_MODEL(info->store) );
+ gtk_tree_view_set_model (GTK_TREE_VIEW(info->tree_view), GTK_TREE_MODEL(info->store));
#define CREATE_COLUMN(description,column_id) \
renderer = gtk_cell_renderer_text_new (); \
- mnemonic_desc = mnemonic_escape(_(description)); \
+ mnemonic_desc = mnemonic_escape (_(description)); \
column = gtk_tree_view_column_new_with_attributes (mnemonic_desc, renderer, "text", column_id, NULL); \
- gtk_tree_view_column_add_attribute(column, renderer, "background", ROW_COLOR); \
+ gtk_tree_view_column_add_attribute (column, renderer, "background", ROW_COLOR); \
gtk_tree_view_column_set_resizable (column, TRUE); \
- gtk_tree_view_append_column (GTK_TREE_VIEW (info->tree_view), column); \
+ gtk_tree_view_append_column (GTK_TREE_VIEW(info->tree_view), column); \
g_free (mnemonic_desc);
CREATE_COLUMN ("type", TYPE);
CREATE_COLUMN ("full_name", FULL_NAME);
@@ -648,18 +648,18 @@ csv_import_assistant_create (CsvImportInfo *info)
CREATE_COLUMN ("place_holder", PLACE_HOLDER);
/* Finish Page */
- info->finish_label = GTK_WIDGET(gtk_builder_get_object(builder, "end_page"));
+ info->finish_label = GTK_WIDGET(gtk_builder_get_object (builder, "end_page"));
/* Summary Page */
- info->summary_label = GTK_WIDGET(gtk_builder_get_object(builder, "summary_label"));
- info->summary_error_view = GTK_WIDGET(gtk_builder_get_object(builder, "summary_error_view"));
+ info->summary_label = GTK_WIDGET(gtk_builder_get_object (builder, "summary_label"));
+ info->summary_error_view = GTK_WIDGET(gtk_builder_get_object (builder, "summary_error_view"));
g_signal_connect (G_OBJECT(window), "destroy",
- G_CALLBACK (csv_import_assistant_destroy_cb), info);
+ G_CALLBACK(csv_import_assistant_destroy_cb), info);
gnc_restore_window_size (GNC_PREFS_GROUP, GTK_WINDOW(info->window));
- gtk_builder_connect_signals(builder, info);
- g_object_unref(G_OBJECT(builder));
+ gtk_builder_connect_signals (builder, info);
+ g_object_unref (G_OBJECT(builder));
return window;
}
diff --git a/src/import-export/csv-imp/assistant-csv-trans-import.c b/src/import-export/csv-imp/assistant-csv-trans-import.c
index 9ec281d..5864c29 100644
--- a/src/import-export/csv-imp/assistant-csv-trans-import.c
+++ b/src/import-export/csv-imp/assistant-csv-trans-import.c
@@ -146,7 +146,7 @@ void csv_import_trans_erow_cb (GtkWidget *spin, gpointer user_data );
void csv_import_trans_auto_cb (GtkWidget *cb, gpointer user_data );
void csv_import_trans_file_chooser_confirm_cb (GtkWidget *button, CsvImportTrans *info);
-static void gnc_csv_preview_update_assist(CsvImportTrans* info);
+static void gnc_csv_preview_update_assist (CsvImportTrans* info);
gboolean preview_settings_valid (CsvImportTrans *info);
/*************************************************************************/
@@ -168,27 +168,27 @@ csv_import_trans_file_chooser_confirm_cb (GtkWidget *button, CsvImportTrans *inf
gtk_assistant_set_page_complete (assistant, page, FALSE);
- file_name = gtk_file_chooser_get_filename ( GTK_FILE_CHOOSER(info->file_chooser ));
+ file_name = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(info->file_chooser));
if (file_name)
{
- gchar *filepath = gnc_uri_get_path ( file_name );
- gchar *filedir = g_path_get_dirname( filepath );
- info->starting_dir = g_strdup(filedir);
- g_free ( filedir );
- g_free ( filepath );
+ gchar *filepath = gnc_uri_get_path (file_name);
+ gchar *filedir = g_path_get_dirname (filepath);
+ info->starting_dir = g_strdup (filedir);
+ g_free (filedir);
+ g_free (filepath);
- info->file_name = g_strdup(file_name);
+ info->file_name = g_strdup (file_name);
error = NULL;
/* Load the file into parse_data. */
parse_data = gnc_csv_new_parse_data();
- if (gnc_csv_load_file(parse_data, file_name, &error))
+ if (gnc_csv_load_file (parse_data, file_name, &error))
{
/* If we couldn't load the file ... */
- gnc_error_dialog(NULL, "%s", error->message);
+ gnc_error_dialog (NULL, "%s", error->message);
if (error->code == GNC_CSV_FILE_OPEN_ERR)
{
- gnc_csv_parse_data_free(parse_data);
+ gnc_csv_parse_data_free (parse_data);
return;
}
/* If we couldn't guess the encoding, we are content with just
@@ -198,11 +198,11 @@ csv_import_trans_file_chooser_confirm_cb (GtkWidget *button, CsvImportTrans *inf
else
{
/* Parse the data. */
- if (gnc_csv_parse(parse_data, TRUE, &error))
+ if (gnc_csv_parse (parse_data, TRUE, &error))
{
/* If we couldn't parse the data ... */
- gnc_error_dialog(NULL, "%s", error->message);
- gnc_csv_parse_data_free(parse_data);
+ gnc_error_dialog (NULL, "%s", error->message);
+ gnc_csv_parse_data_free (parse_data);
}
else
{
@@ -213,13 +213,13 @@ csv_import_trans_file_chooser_confirm_cb (GtkWidget *button, CsvImportTrans *inf
}
}
}
- g_free(file_name);
+ g_free (file_name);
DEBUG("file_name selected is %s", info->file_name);
DEBUG("starting directory is %s", info->starting_dir);
/* Step to next page if page is complete */
- if(gtk_assistant_get_page_complete(assistant, page))
+ if(gtk_assistant_get_page_complete (assistant, page))
gtk_assistant_set_current_page (assistant, num + 1);
}
@@ -237,20 +237,20 @@ void row_selection_update (CsvImportTrans* info)
gboolean valid;
int i;
- store = GTK_LIST_STORE( gtk_tree_view_get_model(info->treeview));
+ store = GTK_LIST_STORE(gtk_tree_view_get_model (info->treeview));
for ( i = 0; i <= info->start_row; i++)
{
/* Modify background color of rows less than start row */
if (info->start_row == i)
{
- valid = gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, i );
+ valid = gtk_tree_model_iter_nth_child (GTK_TREE_MODEL(store), &iter, NULL, i );
if (valid)
gtk_list_store_set (store, &iter, 0, NULL, -1);
}
else
{
- valid = gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, i );
+ valid = gtk_tree_model_iter_nth_child (GTK_TREE_MODEL(store), &iter, NULL, i );
if (valid)
gtk_list_store_set (store, &iter, 0, "pink", -1);
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL(store), &iter);
@@ -263,18 +263,18 @@ void row_selection_update (CsvImportTrans* info)
for ( i = info->num_of_rows - 1; i >= info->end_row; i--)
{
/* Modify background color of rows more than end row */
- if ( i == info->end_row )
+ if (i == info->end_row)
{
- valid = gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, i );
+ valid = gtk_tree_model_iter_nth_child (GTK_TREE_MODEL(store), &iter, NULL, i);
if (valid)
gtk_list_store_set (store, &iter, 0, NULL, -1);
}
else
{
- valid = gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, i );
+ valid = gtk_tree_model_iter_nth_child (GTK_TREE_MODEL(store), &iter, NULL, i);
if (valid)
gtk_list_store_set (store, &iter, 0, "pink", -1);
- valid = gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, i - 1 );
+ valid = gtk_tree_model_iter_nth_child (GTK_TREE_MODEL(store), &iter, NULL, i - 1);
if (valid)
gtk_list_store_set (store, &iter, 0, NULL, -1);
}
@@ -287,7 +287,7 @@ void row_selection_update (CsvImportTrans* info)
*
* call back for import start row
*******************************************************/
-void csv_import_trans_srow_cb (GtkWidget *spin, gpointer user_data )
+void csv_import_trans_srow_cb (GtkWidget *spin, gpointer user_data)
{
CsvImportTrans *info = user_data;
GtkAdjustment *adj;
@@ -297,8 +297,8 @@ void csv_import_trans_srow_cb (GtkWidget *spin, gpointer user_data )
info->parse_data->start_row = info->start_row;
- adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(info->end_row_spin));
- gtk_adjustment_set_lower(adj, info->start_row + 1 );
+ adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON(info->end_row_spin));
+ gtk_adjustment_set_lower (adj, info->start_row + 1 );
/* Refresh the row highlighting */
row_selection_update (info);
@@ -310,7 +310,7 @@ void csv_import_trans_srow_cb (GtkWidget *spin, gpointer user_data )
*
* call back for import end row
*******************************************************/
-void csv_import_trans_erow_cb (GtkWidget *spin, gpointer user_data )
+void csv_import_trans_erow_cb (GtkWidget *spin, gpointer user_data)
{
CsvImportTrans *info = user_data;
GtkAdjustment *adj;
@@ -320,8 +320,8 @@ void csv_import_trans_erow_cb (GtkWidget *spin, gpointer user_data )
info->parse_data->end_row = info->end_row + 1;
- adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(info->start_row_spin));
- gtk_adjustment_set_upper(adj, info->end_row + 1 );
+ adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON(info->start_row_spin));
+ gtk_adjustment_set_upper (adj, info->end_row + 1 );
/* Refresh the row highlighting */
row_selection_update (info);
@@ -333,11 +333,11 @@ void csv_import_trans_erow_cb (GtkWidget *spin, gpointer user_data )
*
* call back for auto create account / Skip Errors
*******************************************************/
-void csv_import_trans_auto_cb (GtkWidget *cb, gpointer user_data )
+void csv_import_trans_auto_cb (GtkWidget *cb, gpointer user_data)
{
CsvImportTrans *info = user_data;
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb)))
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(cb)))
{
if (info->previewing_errors == TRUE)
info->approved = TRUE;
@@ -359,12 +359,12 @@ void csv_import_trans_auto_cb (GtkWidget *cb, gpointer user_data )
* @param col The number of the column whose cell renderer is being retrieved
* @return The cell renderer of column number col
*/
-static GtkCellRenderer* gnc_csv_preview_get_cell_renderer(CsvImportTrans* info, int col)
+static GtkCellRenderer* gnc_csv_preview_get_cell_renderer (CsvImportTrans* info, int col)
{
- GList* renderers = gtk_cell_layout_get_cells(GTK_CELL_LAYOUT(gtk_tree_view_get_column(info->treeview, col)));
+ GList* renderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT(gtk_tree_view_get_column (info->treeview, col)));
GtkCellRenderer* cell = GTK_CELL_RENDERER(renderers->data);
- g_list_free(renderers);
+ g_list_free (renderers);
return cell;
}
@@ -376,7 +376,7 @@ static GtkCellRenderer* gnc_csv_preview_get_cell_renderer(CsvImportTrans* info,
* @param widget The widget that was changed
* @param info The data that is being configured
*/
-static void sep_button_clicked(GtkWidget* widget, CsvImportTrans* info)
+static void sep_button_clicked (GtkWidget* widget, CsvImportTrans* info)
{
int i;
char* stock_separator_characters[] = {" ", "\t", ",", ":", ";", "-"};
@@ -387,50 +387,50 @@ static void sep_button_clicked(GtkWidget* widget, CsvImportTrans* info)
* button that is checked. */
for (i = 0; i < SEP_NUM_OF_TYPES; i++)
{
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(info->sep_buttons[i])))
- checked_separators = g_slist_append(checked_separators, stock_separator_characters[i]);
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(info->sep_buttons[i])))
+ checked_separators = g_slist_append (checked_separators, stock_separator_characters[i]);
}
/* Add the custom separator if the user checked its button. */
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(info->custom_cbutton)))
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(info->custom_cbutton)))
{
- char* custom_sep = (char*)gtk_entry_get_text(info->custom_entry);
+ char* custom_sep = (char*)gtk_entry_get_text (info->custom_entry);
if (custom_sep[0] != '\0') /* Don't add a blank separator (bad things will happen!). */
- checked_separators = g_slist_append(checked_separators, custom_sep);
+ checked_separators = g_slist_append (checked_separators, custom_sep);
}
/* Set the parse options using the checked_separators list. */
- stf_parse_options_csv_set_separators(info->parse_data->options, NULL, checked_separators);
- g_slist_free(checked_separators);
+ stf_parse_options_csv_set_separators (info->parse_data->options, NULL, checked_separators);
+ g_slist_free (checked_separators);
/* Parse the data using the new options. We don't want to reguess
* the column types because we want to leave the user's
* configurations in tact. */
- if (gnc_csv_parse(info->parse_data, FALSE, &error))
+ if (gnc_csv_parse (info->parse_data, FALSE, &error))
{
/* Warn the user there was a problem and try to undo what caused
* the error. (This will cause a reparsing and ideally a usable
* configuration.) */
- gnc_error_dialog(NULL, "Error in parsing");
+ gnc_error_dialog (NULL, "Error in parsing");
/* If the user changed the custom separator, erase that custom separator. */
if (widget == GTK_WIDGET(info->custom_entry))
{
- gtk_entry_set_text(GTK_ENTRY(widget), "");
+ gtk_entry_set_text (GTK_ENTRY(widget), "");
}
/* If the user checked a checkbutton, toggle that checkbutton back. */
else
{
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),
- !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)));
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(widget),
+ !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(widget)));
}
return;
}
/* If we parsed successfully, redisplay the data. */
- gnc_csv_preview_update_assist(info);
+ gnc_csv_preview_update_assist (info);
/* Refresh the row highlighting */
- row_selection_update(info);
+ row_selection_update (info);
}
@@ -439,32 +439,32 @@ static void sep_button_clicked(GtkWidget* widget, CsvImportTrans* info)
* @param csv_button The "Separated" radio button
* @param info The display of the data being imported
*/
-static void separated_or_fixed_selected(GtkToggleButton* csv_button, CsvImportTrans* info)
+static void separated_or_fixed_selected (GtkToggleButton* csv_button, CsvImportTrans* info)
{
GError* error = NULL;
/* Set the parsing type correctly. */
- if (gtk_toggle_button_get_active(csv_button)) /* If we're in CSV mode ... */
+ if (gtk_toggle_button_get_active (csv_button)) /* If we're in CSV mode ... */
{
- stf_parse_options_set_type(info->parse_data->options, PARSE_TYPE_CSV);
+ stf_parse_options_set_type (info->parse_data->options, PARSE_TYPE_CSV);
}
else /* If we're in fixed-width mode ... */
{
- stf_parse_options_set_type(info->parse_data->options, PARSE_TYPE_FIXED);
+ stf_parse_options_set_type (info->parse_data->options, PARSE_TYPE_FIXED);
}
/* Reparse the data. */
- if (gnc_csv_parse(info->parse_data, FALSE, &error))
+ if (gnc_csv_parse (info->parse_data, FALSE, &error))
{
/* Show an error dialog explaining the problem. */
- gnc_error_dialog(NULL, "%s", error->message);
+ gnc_error_dialog (NULL, "%s", error->message);
return;
}
/* Show the new data. */
- gnc_csv_preview_update_assist(info);
+ gnc_csv_preview_update_assist (info);
/* Refresh the row highlighting */
- row_selection_update(info);
+ row_selection_update (info);
}
@@ -475,7 +475,7 @@ static void separated_or_fixed_selected(GtkToggleButton* csv_button, CsvImportTr
* @param encoding The encoding that the user selected
* @param info The display of the data being imported
*/
-static void encoding_selected(GOCharmapSel* selector, const char* encoding,
+static void encoding_selected (GOCharmapSel* selector, const char* encoding,
CsvImportTrans* info)
{
/* This gets called twice everytime a new encoding is selected. The
@@ -495,17 +495,17 @@ static void encoding_selected(GOCharmapSel* selector, const char* encoding,
const char* previous_encoding = info->parse_data->encoding;
GError* error = NULL;
/* Try converting the new encoding and reparsing. */
- if (gnc_csv_convert_encoding(info->parse_data, encoding, &error) ||
- gnc_csv_parse(info->parse_data, FALSE, &error))
+ if (gnc_csv_convert_encoding (info->parse_data, encoding, &error) ||
+ gnc_csv_parse (info->parse_data, FALSE, &error))
{
/* If it fails, change back to the old encoding. */
- gnc_error_dialog(NULL, "%s", _("Invalid encoding selected"));
+ gnc_error_dialog (NULL, "%s", _("Invalid encoding selected"));
info->encoding_selected_called = FALSE;
- go_charmap_sel_set_encoding(selector, previous_encoding);
+ go_charmap_sel_set_encoding (selector, previous_encoding);
return;
}
- gnc_csv_preview_update_assist(info);
+ gnc_csv_preview_update_assist (info);
info->encoding_selected_called = FALSE;
}
else /* If this is the first call of the function ... */
@@ -519,9 +519,9 @@ static void encoding_selected(GOCharmapSel* selector, const char* encoding,
* @param format_selector The combo box for selecting date formats
* @param info The display of the data being imported
*/
-static void date_format_selected(GtkComboBoxText* format_selector, CsvImportTrans* info)
+static void date_format_selected (GtkComboBoxText* format_selector, CsvImportTrans* info)
{
- info->parse_data->date_format = gtk_combo_box_get_active(GTK_COMBO_BOX(format_selector));
+ info->parse_data->date_format = gtk_combo_box_get_active (GTK_COMBO_BOX(format_selector));
}
@@ -529,9 +529,9 @@ static void date_format_selected(GtkComboBoxText* format_selector, CsvImportTran
* @param currency_selector The combo box for selecting currency formats
* @param info The display of the data being imported
*/
-static void currency_format_selected(GtkComboBoxText* currency_selector, CsvImportTrans* info)
+static void currency_format_selected (GtkComboBoxText* currency_selector, CsvImportTrans* info)
{
- info->parse_data->currency_format = gtk_combo_box_get_active(GTK_COMBO_BOX(currency_selector));
+ info->parse_data->currency_format = gtk_combo_box_get_active (GTK_COMBO_BOX(currency_selector));
}
@@ -604,7 +604,7 @@ make_new_column (CsvImportTrans* info, int col, int dx, gboolean test_only)
PangoLayout *layout;
PangoFontDescription *font_desc;
int charindex, width;
- GtkCellRenderer *cell = gnc_csv_preview_get_cell_renderer(info, col);
+ GtkCellRenderer *cell = gnc_csv_preview_get_cell_renderer (info, col);
int colstart, colend;
GError* error = NULL;
@@ -613,8 +613,8 @@ make_new_column (CsvImportTrans* info, int col, int dx, gboolean test_only)
: stf_parse_options_fixed_splitpositions_nth (info->parse_data->options, col - 1);
colend = stf_parse_options_fixed_splitpositions_nth (info->parse_data->options, col);
- g_object_get (G_OBJECT (cell), "font_desc", &font_desc, NULL);
- layout = gtk_widget_create_pango_layout (GTK_WIDGET (info->treeview), "x");
+ g_object_get (G_OBJECT(cell), "font_desc", &font_desc, NULL);
+ layout = gtk_widget_create_pango_layout (GTK_WIDGET(info->treeview), "x");
pango_layout_set_font_description (layout, font_desc);
pango_layout_get_pixel_size (layout, &width, NULL);
if (width < 1) width = 1;
@@ -628,9 +628,9 @@ make_new_column (CsvImportTrans* info, int col, int dx, gboolean test_only)
if (!test_only)
{
stf_parse_options_fixed_splitpositions_add (info->parse_data->options, charindex);
- if (gnc_csv_parse(info->parse_data, FALSE, &error))
+ if (gnc_csv_parse (info->parse_data, FALSE, &error))
{
- gnc_error_dialog(NULL, "%s", error->message);
+ gnc_error_dialog (NULL, "%s", error->message);
return FALSE;
}
gnc_csv_preview_update_assist (info);
@@ -662,9 +662,9 @@ widen_column (CsvImportTrans* info, int col, gboolean test_only)
{
stf_parse_options_fixed_splitpositions_remove (info->parse_data->options, nextstart);
stf_parse_options_fixed_splitpositions_add (info->parse_data->options, nextstart + 1);
- if (gnc_csv_parse(info->parse_data, FALSE, &error))
+ if (gnc_csv_parse (info->parse_data, FALSE, &error))
{
- gnc_error_dialog(NULL, "%s", error->message);
+ gnc_error_dialog (NULL, "%s", error->message);
return FALSE;
}
gnc_csv_preview_update_assist (info);
@@ -694,9 +694,9 @@ narrow_column (CsvImportTrans* info, int col, gboolean test_only)
{
stf_parse_options_fixed_splitpositions_remove (info->parse_data->options, nextstart);
stf_parse_options_fixed_splitpositions_add (info->parse_data->options, nextstart - 1);
- if (gnc_csv_parse(info->parse_data, FALSE, &error))
+ if (gnc_csv_parse (info->parse_data, FALSE, &error))
{
- gnc_error_dialog(NULL, "%s", error->message);
+ gnc_error_dialog (NULL, "%s", error->message);
return FALSE;
}
gnc_csv_preview_update_assist (info);
@@ -716,9 +716,9 @@ delete_column (CsvImportTrans* info, int col, gboolean test_only)
{
int nextstart = stf_parse_options_fixed_splitpositions_nth (info->parse_data->options, col);
stf_parse_options_fixed_splitpositions_remove (info->parse_data->options, nextstart);
- if (gnc_csv_parse(info->parse_data, FALSE, &error))
+ if (gnc_csv_parse (info->parse_data, FALSE, &error))
{
- gnc_error_dialog(NULL, "%s", error->message);
+ gnc_error_dialog (NULL, "%s", error->message);
return FALSE;
}
gnc_csv_preview_update_assist (info);
@@ -806,7 +806,7 @@ fixed_context_menu (CsvImportTrans* info, GdkEventButton *event,
* @param allocation The size of the data treeview
* @param info The display of the data being imported
*/
-static void treeview_resized(GtkWidget* widget, GtkAllocation* allocation, CsvImportTrans* info)
+static void treeview_resized (GtkWidget* widget, GtkAllocation* allocation, CsvImportTrans* info)
{
/* ncols is the number of columns in the data. */
int i, ncols = info->parse_data->column_types->len;
@@ -822,18 +822,18 @@ static void treeview_resized(GtkWidget* widget, GtkAllocation* allocation, CsvIm
GtkTreeViewColumn* ccol; /* The corresponding column in info->ctreeview. */
/* Get the width. */
- col_width = gtk_tree_view_column_get_width(gtk_tree_view_get_column(info->treeview, i));
+ col_width = gtk_tree_view_column_get_width (gtk_tree_view_get_column (info->treeview, i));
/* Set the minumum width for a column so that drop down selector can be seen. */
if (col_width < MIN_COL_WIDTH)
{
col_width = MIN_COL_WIDTH;
}
- pcol = gtk_tree_view_get_column(info->treeview, i);
- gtk_tree_view_column_set_min_width(pcol, col_width);
+ pcol = gtk_tree_view_get_column (info->treeview, i);
+ gtk_tree_view_column_set_min_width (pcol, col_width);
/* Set ccol's width the same. */
- ccol = gtk_tree_view_get_column(info->ctreeview, i);
- gtk_tree_view_column_set_min_width(ccol, col_width);
- gtk_tree_view_column_set_max_width(ccol, col_width);
+ ccol = gtk_tree_view_get_column (info->ctreeview, i);
+ gtk_tree_view_column_set_min_width (ccol, col_width);
+ gtk_tree_view_column_set_max_width (ccol, col_width);
}
}
@@ -847,24 +847,24 @@ static void treeview_resized(GtkWidget* widget, GtkAllocation* allocation, CsvIm
* @param new_text The text the user selected
* @param info The display of the data being imported
*/
-static void column_type_changed(GtkCellRenderer* renderer, gchar* path,
+static void column_type_changed (GtkCellRenderer* renderer, gchar* path,
GtkTreeIter* new_text_iter, CsvImportTrans* info)
{
/* ncols is the number of columns in the data. */
int i, ncols = info->parse_data->column_types->len;
/* store has the actual strings that appear in info->ctreeview. */
- GtkTreeModel* store = gtk_tree_view_get_model(info->ctreeview);
+ GtkTreeModel* store = gtk_tree_view_get_model (info->ctreeview);
GtkTreeModel* model;
gint textColumn;
GtkTreeIter iter;
gchar* new_text;
/* Get the new text */
- g_object_get(renderer, "model", &model, "text-column", &textColumn, NULL);
- gtk_tree_model_get(model, new_text_iter, textColumn, &new_text, -1);
+ g_object_get (renderer, "model", &model, "text-column", &textColumn, NULL);
+ gtk_tree_model_get (model, new_text_iter, textColumn, &new_text, -1);
/* Get an iterator for the first (and only) row. */
- gtk_tree_model_get_iter_first(store, &iter);
+ gtk_tree_model_get_iter_first (store, &iter);
/* Go through each column. */
for (i = 0; i < ncols; i++)
@@ -873,12 +873,12 @@ static void column_type_changed(GtkCellRenderer* renderer, gchar* path,
* this was the column that was changed. */
GtkCellRenderer* col_renderer; /* The renderer for this column. */
/* The column in the treeview we are looking at */
- GtkTreeViewColumn* col = gtk_tree_view_get_column(info->ctreeview, i);
+ GtkTreeViewColumn* col = gtk_tree_view_get_column (info->ctreeview, i);
/* The list of renderers for col */
- GList* rend_list = gtk_cell_layout_get_cells(GTK_CELL_LAYOUT(col));
+ GList* rend_list = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT(col));
/* rend_list has only one entry, which we put in col_renderer. */
col_renderer = rend_list->data;
- g_list_free(rend_list);
+ g_list_free (rend_list);
/* If this is not the column that was changed ... */
if (col_renderer != renderer)
@@ -891,20 +891,20 @@ static void column_type_changed(GtkCellRenderer* renderer, gchar* path,
* model 0, string 0, model 1, string 1, ..., model ncols, string ncols. */
gtk_tree_model_get(store, &iter, 2 * i + 1, &contents, -1);
/* If this column has the same string that the user selected ... */
- if (!g_strcmp0(contents, new_text))
+ if (!g_strcmp0 (contents, new_text))
{
/* ... set this column to the "None" type. (We can't allow duplicate types.) */
- gtk_list_store_set(GTK_LIST_STORE(store), &iter, 2 * i + 1,
+ gtk_list_store_set (GTK_LIST_STORE(store), &iter, 2 * i + 1,
_(gnc_csv_column_type_strs[GNC_CSV_NONE]), -1);
}
- g_free(contents);
+ g_free (contents);
}
else /* If this is the column that was changed ... */
{
/* Set the text for this column to what the user selected. (See
* comment above "Get the type string. ..." for why we set
* column 2*i+1 in store.) */
- gtk_list_store_set(GTK_LIST_STORE(store), &iter, 2 * i + 1, new_text, -1);
+ gtk_list_store_set (GTK_LIST_STORE(store), &iter, 2 * i + 1, new_text, -1);
}
}
}
@@ -917,7 +917,7 @@ static void column_type_changed(GtkCellRenderer* renderer, gchar* path,
* @param event The event that happened (where the user clicked)
* @param info The data being configured
*/
-static void header_button_press_handler(GtkWidget* button, GdkEventButton* event,
+static void header_button_press_handler (GtkWidget* button, GdkEventButton* event,
CsvImportTrans* info)
{
/* col is the number of the column that was clicked, and offset is
@@ -943,12 +943,12 @@ static void header_button_press_handler(GtkWidget* button, GdkEventButton* event
/* Double clicks can split columns. */
if (event->type == GDK_2BUTTON_PRESS && event->button == 1)
{
- make_new_column(info, col, (int)event->x - offset, FALSE);
+ make_new_column (info, col, (int)event->x - offset, FALSE);
}
/* Right clicking brings up a context menu. */
else if (event->type == GDK_BUTTON_PRESS && event->button == 3)
{
- fixed_context_menu(info, event, col, (int)event->x - offset);
+ fixed_context_menu (info, event, col, (int)event->x - offset);
}
}
@@ -967,15 +967,15 @@ gboolean preview_settings_valid (CsvImportTrans* info)
int weight = 0;
gboolean valid = TRUE;
/* store contains the actual strings appearing in the column types treeview. */
- GtkTreeModel* store = gtk_tree_view_get_model(info->ctreeview);
+ GtkTreeModel* store = gtk_tree_view_get_model (info->ctreeview);
/* datastore contains the actual strings appearing in the preview treeview. */
- GtkTreeModel* datastore = gtk_tree_view_get_model(info->treeview);
+ GtkTreeModel* datastore = gtk_tree_view_get_model (info->treeview);
GtkTreeIter iter, iter2;
/* Get an iterator for the first (and only) row. */
- gtk_tree_model_get_iter_first(store, &iter);
+ gtk_tree_model_get_iter_first (store, &iter);
/* Get an iterator for the first required row in the data store. */
- gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(datastore), &iter2, NULL, info->start_row );
+ gtk_tree_model_iter_nth_child (GTK_TREE_MODEL(datastore), &iter2, NULL, info->start_row );
/* Go through each of the columns. */
for (i = 0; i < ncols; i++)
@@ -988,13 +988,13 @@ gboolean preview_settings_valid (CsvImportTrans* info)
* columns is a pair of the model used for the combobox and the
* string that appears, so that store looks like:
* model 0, string 0, model 1, string 1, ..., model ncols, string ncols. */
- gtk_tree_model_get(store, &iter, 2 * i + 1, &contents, -1);
+ gtk_tree_model_get (store, &iter, 2 * i + 1, &contents, -1);
/* Go through each column type until ... */
for (type = 0; type < GNC_CSV_NUM_COL_TYPES; type++)
{
/* ... we find one that matches with what's in the column. */
- if (!g_strcmp0(contents, _(gnc_csv_column_type_strs[type])))
+ if (!g_strcmp0 (contents, _(gnc_csv_column_type_strs[type])))
{
/* Set the column_types array appropriately and quit. */
column_types->data[i] = type;
@@ -1003,9 +1003,9 @@ gboolean preview_settings_valid (CsvImportTrans* info)
{
case GNC_CSV_DATE:
weight = weight + 1000;
- gtk_tree_model_get(datastore, &iter2, i + 1, &prevstr, -1);
+ gtk_tree_model_get (datastore, &iter2, i + 1, &prevstr, -1);
- if (parse_date(prevstr, info->parse_data->date_format) == -1)
+ if (parse_date (prevstr, info->parse_data->date_format) == -1)
valid = FALSE;
break;
@@ -1025,17 +1025,17 @@ gboolean preview_settings_valid (CsvImportTrans* info)
break;
case GNC_CSV_ACCOUNT:
weight = weight + 1;
- gtk_tree_model_get(datastore, &iter2, i + 1, &accstr, -1);
- info->account_picker->account_online_id_value = strdup(accstr);
+ gtk_tree_model_get (datastore, &iter2, i + 1, &accstr, -1);
+ info->account_picker->account_online_id_value = strdup (accstr);
break;
}
break;
}
}
/* Free the type string created by gtk_tree_model_get() */
- g_free(contents);
- g_free(prevstr);
- g_free(accstr);
+ g_free (contents);
+ g_free (prevstr);
+ g_free (accstr);
}
if (weight < 1109 || valid == FALSE)
return FALSE;
@@ -1049,7 +1049,7 @@ gboolean preview_settings_valid (CsvImportTrans* info)
* (e.g. the first time this function is called on a preview).
* @param info The data being previewed
*/
-static void gnc_csv_preview_update_assist(CsvImportTrans* info)
+static void gnc_csv_preview_update_assist (CsvImportTrans* info)
{
/* store has the data from the file being imported. cstores is an
* array of stores that hold the combo box entries for each
@@ -1063,10 +1063,10 @@ static void gnc_csv_preview_update_assist(CsvImportTrans* info)
max_str_len = info->parse_data->file_str.end - info->parse_data->file_str.begin;
/* store contains only strings. */
- GType* types = g_new(GType, 2 * ncols);
+ GType* types = g_new (GType, 2 * ncols);
for (i = 0; i < ncols + 1; i++)
types[i] = G_TYPE_STRING;
- store = gtk_list_store_newv(ncols + 1, types);
+ store = gtk_list_store_newv (ncols + 1, types);
/* ctstore is arranged as follows:
* model 0, text 0, model 1, text 1, ..., model ncols, text ncols. */
@@ -1075,43 +1075,43 @@ static void gnc_csv_preview_update_assist(CsvImportTrans* info)
types[i] = GTK_TYPE_TREE_MODEL;
types[i+1] = G_TYPE_STRING;
}
- ctstore = gtk_list_store_newv(2 * ncols, types);
+ ctstore = gtk_list_store_newv (2 * ncols, types);
- g_free(types);
+ g_free (types);
/* Each element in cstores is a single column model. */
- cstores = g_new(GtkListStore*, ncols);
+ cstores = g_new (GtkListStore*, ncols);
for (i = 0; i < ncols; i++)
{
- cstores[i] = gtk_list_store_new(1, G_TYPE_STRING);
+ cstores[i] = gtk_list_store_new (1, G_TYPE_STRING);
/* Add all of the possible entries to the combo box. */
for (j = 0; j < GNC_CSV_NUM_COL_TYPES; j++)
{
- gtk_list_store_append(cstores[i], &iter);
- gtk_list_store_set(cstores[i], &iter, 0, _(gnc_csv_column_type_strs[j]), -1);
+ gtk_list_store_append (cstores[i], &iter);
+ gtk_list_store_set (cstores[i], &iter, 0, _(gnc_csv_column_type_strs[j]), -1);
}
}
if (info->not_empty)
{
GList *tv_columns, *tv_columns_begin, *ctv_columns, *ctv_columns_begin;
- tv_columns = tv_columns_begin = gtk_tree_view_get_columns(info->treeview);
- ctv_columns = ctv_columns_begin = gtk_tree_view_get_columns(info->ctreeview);
+ tv_columns = tv_columns_begin = gtk_tree_view_get_columns (info->treeview);
+ ctv_columns = ctv_columns_begin = gtk_tree_view_get_columns (info->ctreeview);
/* Clear out exisiting columns in info->treeview. */
while (tv_columns != NULL)
{
- gtk_tree_view_remove_column(info->treeview, GTK_TREE_VIEW_COLUMN(tv_columns->data));
- tv_columns = g_list_next(tv_columns);
+ gtk_tree_view_remove_column (info->treeview, GTK_TREE_VIEW_COLUMN(tv_columns->data));
+ tv_columns = g_list_next (tv_columns);
}
/* Do the same in info->ctreeview. */
while (ctv_columns != NULL)
{
- gtk_tree_view_remove_column(info->ctreeview, GTK_TREE_VIEW_COLUMN(ctv_columns->data));
- ctv_columns = g_list_next(ctv_columns);
+ gtk_tree_view_remove_column (info->ctreeview, GTK_TREE_VIEW_COLUMN(ctv_columns->data));
+ ctv_columns = g_list_next (ctv_columns);
}
- g_list_free(tv_columns_begin);
- g_list_free(ctv_columns_begin);
- g_free(info->treeview_buttons);
+ g_list_free (tv_columns_begin);
+ g_list_free (ctv_columns_begin);
+ g_free (info->treeview_buttons);
}
/* Fill the data treeview with data from the file. */
@@ -1125,7 +1125,7 @@ static void gnc_csv_preview_update_assist(CsvImportTrans* info)
{
int this_line_length = 0;
i = GPOINTER_TO_INT(error_lines->data);
- gtk_list_store_append(store, &iter);
+ gtk_list_store_append (store, &iter);
/* Row Color column */
gtk_list_store_set (store, &iter, 0, NULL, -1);
@@ -1135,13 +1135,13 @@ static void gnc_csv_preview_update_assist(CsvImportTrans* info)
/* Add this cell's length to the row's length and set the value of the list store. */
gchar* cell_string = (gchar*)((GPtrArray*)(info->parse_data->orig_lines->pdata[i]))->pdata[j];
this_line_length += g_utf8_strlen(cell_string, max_str_len);
- gtk_list_store_set(store, &iter, j + 1, cell_string, -1);
+ gtk_list_store_set (store, &iter, j + 1, cell_string, -1);
}
if (this_line_length > info->longest_line)
info->longest_line = this_line_length;
- error_lines = g_list_next(error_lines);
+ error_lines = g_list_next (error_lines);
}
}
else /* Otherwise, put in all of the data. */
@@ -1149,7 +1149,7 @@ static void gnc_csv_preview_update_assist(CsvImportTrans* info)
for (i = 0; i < info->parse_data->orig_lines->len; i++)
{
int this_line_length = 0;
- gtk_list_store_append(store, &iter);
+ gtk_list_store_append (store, &iter);
/* Row Color column */
gtk_list_store_set (store, &iter, 0, NULL, -1);
@@ -1159,7 +1159,7 @@ static void gnc_csv_preview_update_assist(CsvImportTrans* info)
/* Add this cell's length to the row's length and set the value of the list store. */
gchar* cell_string = (gchar*)((GPtrArray*)(info->parse_data->orig_lines->pdata[i]))->pdata[j];
this_line_length += g_utf8_strlen(cell_string, max_str_len);
- gtk_list_store_set(store, &iter, j + 1, cell_string, -1);
+ gtk_list_store_set (store, &iter, j + 1, cell_string, -1);
}
if (this_line_length > info->longest_line)
@@ -1171,16 +1171,16 @@ static void gnc_csv_preview_update_assist(CsvImportTrans* info)
}
/* Set all the column types to what's in the parse data. */
- gtk_list_store_append(ctstore, &iter);
- gtk_list_store_set(ctstore, &iter, 0, NULL, -1); /* Dummy Column to match row color */
+ gtk_list_store_append (ctstore, &iter);
+ gtk_list_store_set (ctstore, &iter, 0, NULL, -1); /* Dummy Column to match row color */
for (i = 0; i < ncols; i++)
{
- gtk_list_store_set(ctstore, &iter, 2 * i, cstores[i], 2 * i + 1,
+ gtk_list_store_set (ctstore, &iter, 2 * i, cstores[i], 2 * i + 1,
_(gnc_csv_column_type_strs[(int)(info->parse_data->column_types->data[i])]),
-1);
}
- info->treeview_buttons = g_new(GtkWidget*, ncols);
+ info->treeview_buttons = g_new (GtkWidget*, ncols);
/* Insert columns into the data and column type treeviews. */
for (i = 0; i < ncols ; i++)
{
@@ -1190,64 +1190,64 @@ static void gnc_csv_preview_update_assist(CsvImportTrans* info)
GtkCellRenderer* renderer = gtk_cell_renderer_text_new(),
*crenderer = gtk_cell_renderer_combo_new();
/* We want a monospace font for the data in case of fixed-width data. */
- g_object_set(G_OBJECT(renderer), "family", "monospace", NULL);
+ g_object_set (G_OBJECT(renderer), "family", "monospace", NULL);
/* We are using cstores for the combo box entries, and we don't
* want the user to be able to manually enter their own column
* types. */
- g_object_set(G_OBJECT(crenderer), "model", cstores[i], "text-column", 0,
+ g_object_set (G_OBJECT(crenderer), "model", cstores[i], "text-column", 0,
"editable", TRUE, "has-entry", FALSE, NULL);
- g_signal_connect(G_OBJECT(crenderer), "changed",
+ g_signal_connect (G_OBJECT(crenderer), "changed",
G_CALLBACK(column_type_changed), (gpointer)info);
/* Add a single column for the treeview. */
- col = gtk_tree_view_column_new_with_attributes("", renderer, "text", i + 1, NULL);
+ col = gtk_tree_view_column_new_with_attributes ("", renderer, "text", i + 1, NULL);
/* Add the Color column 0 to the renderer */
- gtk_tree_view_column_add_attribute(col, renderer, "background", 0);
+ gtk_tree_view_column_add_attribute (col, renderer, "background", 0);
- gtk_tree_view_insert_column(info->treeview, col, -1);
+ gtk_tree_view_insert_column (info->treeview, col, -1);
/* Enable resizing of the columns. */
- gtk_tree_view_column_set_resizable(col, TRUE);
+ gtk_tree_view_column_set_resizable (col, TRUE);
/* Use the alternating model and text entries from ctstore in
* info->ctreeview. */
- gtk_tree_view_insert_column_with_attributes(info->ctreeview,
+ gtk_tree_view_insert_column_with_attributes (info->ctreeview,
-1, "", crenderer, "model", 2 * i,
"text", 2 * i + 1, NULL);
/* We need to allow clicking on the column headers for fixed-width
* column splitting and merging. */
- g_object_set(G_OBJECT(col), "clickable", TRUE, NULL);
- g_signal_connect(G_OBJECT(col->button), "button_press_event",
+ g_object_set (G_OBJECT(col), "clickable", TRUE, NULL);
+ g_signal_connect (G_OBJECT(col->button), "button_press_event",
G_CALLBACK(header_button_press_handler), (gpointer)info);
info->treeview_buttons[i] = col->button;
}
/* Set the treeviews to use the models. */
- gtk_tree_view_set_model(info->treeview, GTK_TREE_MODEL(store));
- gtk_tree_view_set_model(info->ctreeview, GTK_TREE_MODEL(ctstore));
+ gtk_tree_view_set_model (info->treeview, GTK_TREE_MODEL(store));
+ gtk_tree_view_set_model (info->ctreeview, GTK_TREE_MODEL(ctstore));
/* Select the header row */
- gtk_tree_model_get_iter_first(GTK_TREE_MODEL(ctstore), &iter);
+ gtk_tree_model_get_iter_first (GTK_TREE_MODEL(ctstore), &iter);
selection = gtk_tree_view_get_selection (info->ctreeview);
- gtk_tree_selection_select_iter ( selection, &iter);
+ gtk_tree_selection_select_iter (selection, &iter);
/* Free the memory for the stores. */
- g_object_unref(GTK_TREE_MODEL(store));
- g_object_unref(GTK_TREE_MODEL(ctstore));
+ g_object_unref (GTK_TREE_MODEL(store));
+ g_object_unref (GTK_TREE_MODEL(ctstore));
for (i = 0; i < ncols; i++)
- g_object_unref(GTK_TREE_MODEL(cstores[i]));
+ g_object_unref (GTK_TREE_MODEL(cstores[i]));
/* Make the things actually appear. */
- gtk_widget_show_all(GTK_WIDGET(info->treeview));
- gtk_widget_show_all(GTK_WIDGET(info->ctreeview));
+ gtk_widget_show_all (GTK_WIDGET(info->treeview));
+ gtk_widget_show_all (GTK_WIDGET(info->ctreeview));
/* Set the encoding selector to the right encoding. */
info->code_encoding_calls = 2;
- go_charmap_sel_set_encoding(info->encselector, info->parse_data->encoding);
+ go_charmap_sel_set_encoding (info->encselector, info->parse_data->encoding);
/* Set the date format to what's in the combo box (since we don't
* necessarily know if this will always be the same). */
- info->parse_data->date_format = gtk_combo_box_get_active(GTK_COMBO_BOX(info->date_format_combo));
+ info->parse_data->date_format = gtk_combo_box_get_active (GTK_COMBO_BOX(info->date_format_combo));
/* It's now been filled with some stuff. */
info->not_empty = TRUE;
@@ -1270,7 +1270,7 @@ void load_settings (CsvImportTrans *info)
info->starting_dir = NULL;
/* The default directory for the user to select files. */
- info->starting_dir = gnc_get_default_directory(GNC_PREFS_GROUP);
+ info->starting_dir = gnc_get_default_directory (GNC_PREFS_GROUP);
}
/*======================================================================*/
@@ -1305,7 +1305,7 @@ csv_import_trans_assistant_file_page_prepare (GtkAssistant *assistant,
/* Set the default directory */
if (info->starting_dir)
- gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(info->file_chooser), info->starting_dir);
+ gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(info->file_chooser), info->starting_dir);
/* Disable the Forward Assistant Button */
gtk_assistant_set_page_complete (assistant, page, FALSE);
@@ -1319,7 +1319,7 @@ csv_import_trans_assistant_preview_page_prepare (GtkAssistant *assistant,
CsvImportTrans *info = user_data;
GtkAdjustment *adj;
- g_signal_connect(G_OBJECT(info->treeview), "size-allocate",
+ g_signal_connect (G_OBJECT(info->treeview), "size-allocate",
G_CALLBACK(treeview_resized), (gpointer)info);
if (info->previewing_errors == TRUE)
@@ -1330,35 +1330,35 @@ csv_import_trans_assistant_preview_page_prepare (GtkAssistant *assistant,
/* Block going back */
gtk_assistant_commit (GTK_ASSISTANT(info->window));
- gtk_image_get_stock(info->instructions_image, &name, &size);
- gtk_image_set_from_stock(info->instructions_image, GTK_STOCK_DIALOG_ERROR, size);
- gtk_label_set_text(info->instructions_label,
+ gtk_image_get_stock (info->instructions_image, &name, &size);
+ gtk_image_set_from_stock (info->instructions_image, GTK_STOCK_DIALOG_ERROR, size);
+ gtk_label_set_text (info->instructions_label,
_("The rows displayed below had errors which are in the last column. You can attempt to correct them by changing the configuration."));
- gtk_widget_show(GTK_WIDGET(info->instructions_image));
- gtk_widget_show(GTK_WIDGET(info->instructions_label));
+ gtk_widget_show (GTK_WIDGET(info->instructions_image));
+ gtk_widget_show (GTK_WIDGET(info->instructions_label));
/* Set spin buttons not sensative */
gtk_widget_set_sensitive (info->start_row_spin, FALSE);
gtk_widget_set_sensitive (info->end_row_spin, FALSE);
/* Set check button label */
- gtk_label_set_text(GTK_LABEL(info->check_label), _("Skip Errors"));
+ gtk_label_set_text (GTK_LABEL(info->check_label), _("Skip Errors"));
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(info->check_butt), FALSE);
}
/* Load the data into the treeview. */
- gnc_csv_preview_update_assist(info);
+ gnc_csv_preview_update_assist (info);
/* Set the upper limit of spin button to number of rows */
- adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(info->end_row_spin));
- if (gtk_adjustment_get_upper(adj) != info->num_of_rows)
+ adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON(info->end_row_spin));
+ if (gtk_adjustment_get_upper (adj) != info->num_of_rows)
{
gtk_adjustment_set_upper (adj, info->num_of_rows);
gtk_spin_button_set_value (GTK_SPIN_BUTTON(info->end_row_spin), info->num_of_rows);
}
/* Update the row selection highlight */
- row_selection_update(info);
+ row_selection_update (info);
}
@@ -1372,24 +1372,24 @@ csv_import_trans_assistant_account_page_prepare (GtkAssistant *assistant,
gchar *text, *mtext;
Account * account = NULL;
- if (!preview_settings_valid(info) && (info->approved == FALSE))
+ if (!preview_settings_valid (info) && (info->approved == FALSE))
{
- text = g_strdup_printf(gettext ("There are problems with the import settings!\nThe date format could be wrong "
+ text = g_strdup_printf (gettext ("There are problems with the import settings!\nThe date format could be wrong "
"or there are not enough columns set..."));
- mtext = g_strdup_printf("<span size=\"medium\" color=\"red\"><b>%s</b></span>", text);
- gtk_label_set_markup(GTK_LABEL(info->account_label), mtext);
- g_free(mtext);
- g_free(text);
+ mtext = g_strdup_printf ("<span size=\"medium\" color=\"red\"><b>%s</b></span>", text);
+ gtk_label_set_markup (GTK_LABEL(info->account_label), mtext);
+ g_free (mtext);
+ g_free (text);
gtk_widget_set_sensitive (info->account_page, FALSE);
}
else
{
- text = g_strdup_printf(gettext ("To Change the account, double click on the required account, click Forward to proceed."));
- mtext = g_strdup_printf("<span size=\"medium\" color=\"red\"><b>%s</b></span>", text);
- gtk_label_set_markup(GTK_LABEL(info->account_label), mtext );
- g_free(mtext);
- g_free(text);
+ text = g_strdup_printf (gettext ("To Change the account, double click on the required account, click Forward to proceed."));
+ mtext = g_strdup_printf ("<span size=\"medium\" color=\"red\"><b>%s</b></span>", text);
+ gtk_label_set_markup (GTK_LABEL(info->account_label), mtext);
+ g_free (mtext);
+ g_free (text);
gtk_widget_set_sensitive (info->account_page, TRUE);
@@ -1423,9 +1423,9 @@ csv_import_trans_assistant_doc_page_prepare (GtkAssistant *assistant,
/* Add the Cancel button for the matcher */
info->cancel_button = gtk_button_new_with_mnemonic (_("_Cancel"));
gtk_assistant_add_action_widget (assistant, info->cancel_button);
- g_signal_connect(info->cancel_button, "clicked",
+ g_signal_connect (info->cancel_button, "clicked",
G_CALLBACK(csv_import_trans_assistant_cancel), info);
- gtk_widget_show(GTK_WIDGET(info->cancel_button));
+ gtk_widget_show (GTK_WIDGET(info->cancel_button));
}
}
@@ -1445,16 +1445,16 @@ csv_import_trans_assistant_match_page_prepare (GtkAssistant *assistant,
/* Before creating transactions, if this is a new book, let user specify
* book options, since they affect how transactions are created */
if (info->new_book)
- info->new_book = gnc_new_book_option_display(info->window);
+ info->new_book = gnc_new_book_option_display (info->window);
/* Create transactions from the parsed data, first time with FALSE
Subsequent times with TRUE */
if ( info->match_parse_run == FALSE)
{
- gnc_csv_parse_to_trans(info->parse_data, info->account_picker->retAccount, FALSE);
+ gnc_csv_parse_to_trans (info->parse_data, info->account_picker->retAccount, FALSE);
}
else
- gnc_csv_parse_to_trans(info->parse_data, info->account_picker->retAccount, TRUE);
+ gnc_csv_parse_to_trans (info->parse_data, info->account_picker->retAccount, TRUE);
info->match_parse_run = TRUE;
/* if there are errors, we jump back to preview to correct */
@@ -1469,9 +1469,9 @@ csv_import_trans_assistant_match_page_prepare (GtkAssistant *assistant,
GList* transactions; /* A list of the transactions we create */
text = _("Double click on rows to change, then click on Apply to Import");
- mtext = g_strdup_printf("<span size=\"medium\" color=\"red\"><b>%s</b></span>", text);
- gtk_label_set_markup(GTK_LABEL(info->match_label), mtext);
- g_free(mtext);
+ mtext = g_strdup_printf ("<span size=\"medium\" color=\"red\"><b>%s</b></span>", text);
+ gtk_label_set_markup (GTK_LABEL(info->match_label), mtext);
+ g_free (mtext);
if (info->gnc_csv_importer_gui == NULL)
{
@@ -1481,9 +1481,9 @@ csv_import_trans_assistant_match_page_prepare (GtkAssistant *assistant,
/* Add the help button for the matcher */
info->help_button = gtk_button_new_with_mnemonic (_("_Help"));
gtk_assistant_add_action_widget (assistant, info->help_button);
- g_signal_connect(info->help_button, "clicked",
+ g_signal_connect (info->help_button, "clicked",
G_CALLBACK(on_matcher_help_clicked), info->gnc_csv_importer_gui);
- gtk_widget_show(GTK_WIDGET(info->help_button));
+ gtk_widget_show (GTK_WIDGET(info->help_button));
/* Get the list of the transactions that were created. */
transactions = info->parse_data->transactions;
@@ -1491,10 +1491,10 @@ csv_import_trans_assistant_match_page_prepare (GtkAssistant *assistant,
while (transactions != NULL)
{
GncCsvTransLine* trans_line = transactions->data;
- gnc_gen_trans_list_add_trans(info->gnc_csv_importer_gui, trans_line->trans);
- transactions = g_list_next(transactions);
+ gnc_gen_trans_list_add_trans (info->gnc_csv_importer_gui, trans_line->trans);
+ transactions = g_list_next (transactions);
}
- g_list_free(transactions);
+ g_list_free (transactions);
}
}
/* Enable the Forward Assistant Button */
@@ -1510,17 +1510,17 @@ csv_import_trans_assistant_summary_page_prepare (GtkAssistant *assistant,
gchar *text, *mtext;
/* Save the Window size and directory */
- gnc_set_default_directory(GNC_PREFS_GROUP, info->starting_dir);
+ gnc_set_default_directory (GNC_PREFS_GROUP, info->starting_dir);
/* Remove the added button */
gtk_assistant_remove_action_widget (assistant, info->help_button);
gtk_assistant_remove_action_widget (assistant, info->cancel_button);
- text = g_strdup_printf(gettext ("The transactions were imported from the file '%s'."), info->file_name);
- mtext = g_strdup_printf("<span size=\"medium\"><b>%s</b></span>", text);
- gtk_label_set_markup(GTK_LABEL(info->summary_label), mtext);
- g_free(text);
- g_free(mtext);
+ text = g_strdup_printf (gettext ("The transactions were imported from the file '%s'."), info->file_name);
+ mtext = g_strdup_printf ("<span size=\"medium\"><b>%s</b></span>", text);
+ gtk_label_set_markup (GTK_LABEL(info->summary_label), mtext);
+ g_free (text);
+ g_free (mtext);
}
@@ -1528,7 +1528,7 @@ void
csv_import_trans_assistant_prepare (GtkAssistant *assistant, GtkWidget *page,
gpointer user_data)
{
- gint currentpage = gtk_assistant_get_current_page(assistant);
+ gint currentpage = gtk_assistant_get_current_page (assistant);
switch (currentpage)
{
@@ -1596,9 +1596,9 @@ csv_import_trans_assistant_finish (GtkAssistant *assistant, gpointer user_data)
/* Start the import */
if (info->parse_data->transactions != NULL)
- gnc_gen_trans_assist_start(info->gnc_csv_importer_gui);
+ gnc_gen_trans_assist_start (info->gnc_csv_importer_gui);
else
- gnc_gen_trans_list_delete(info->gnc_csv_importer_gui);
+ gnc_gen_trans_list_delete (info->gnc_csv_importer_gui);
}
static void
@@ -1611,7 +1611,7 @@ csv_import_trans_close_handler (gpointer user_data)
/* Free the memory we allocated. */
if (!(info->parse_data == NULL))
- gnc_csv_parse_data_free(info->parse_data);
+ gnc_csv_parse_data_free (info->parse_data);
if (!(info->account_picker == NULL))
info->account_picker = NULL;
@@ -1619,7 +1619,7 @@ csv_import_trans_close_handler (gpointer user_data)
if (!(info->gnc_csv_importer_gui == NULL))
info->gnc_csv_importer_gui = NULL;
- gnc_save_window_size(GNC_PREFS_GROUP, GTK_WINDOW(info->window));
+ gnc_save_window_size (GNC_PREFS_GROUP, GTK_WINDOW(info->window));
gtk_widget_destroy (info->window);
}
@@ -1648,45 +1648,45 @@ csv_import_trans_assistant_create (CsvImportTrans *info)
load_settings (info);
/* Enable buttons on all page. */
- gtk_assistant_set_page_complete (GTK_ASSISTANT (window),
- GTK_WIDGET(gtk_builder_get_object(builder, "start_page")),
+ gtk_assistant_set_page_complete (GTK_ASSISTANT(window),
+ GTK_WIDGET(gtk_builder_get_object (builder, "start_page")),
TRUE);
- gtk_assistant_set_page_complete (GTK_ASSISTANT (window),
- GTK_WIDGET(gtk_builder_get_object(builder, "file_page")),
+ gtk_assistant_set_page_complete (GTK_ASSISTANT(window),
+ GTK_WIDGET(gtk_builder_get_object (builder, "file_page")),
FALSE);
- gtk_assistant_set_page_complete (GTK_ASSISTANT (window),
- GTK_WIDGET(gtk_builder_get_object(builder, "preview_page")),
+ gtk_assistant_set_page_complete (GTK_ASSISTANT(window),
+ GTK_WIDGET(gtk_builder_get_object (builder, "preview_page")),
TRUE);
- gtk_assistant_set_page_complete (GTK_ASSISTANT (window),
- GTK_WIDGET(gtk_builder_get_object(builder, "account_page")),
+ gtk_assistant_set_page_complete (GTK_ASSISTANT(window),
+ GTK_WIDGET(gtk_builder_get_object (builder, "account_page")),
FALSE);
- gtk_assistant_set_page_complete (GTK_ASSISTANT (window),
- GTK_WIDGET(gtk_builder_get_object(builder, "doc_page")),
+ gtk_assistant_set_page_complete (GTK_ASSISTANT(window),
+ GTK_WIDGET(gtk_builder_get_object (builder, "doc_page")),
TRUE);
- gtk_assistant_set_page_complete (GTK_ASSISTANT (window),
- GTK_WIDGET(gtk_builder_get_object(builder, "match_page")),
+ gtk_assistant_set_page_complete (GTK_ASSISTANT(window),
+ GTK_WIDGET(gtk_builder_get_object (builder, "match_page")),
FALSE);
- gtk_assistant_set_page_complete (GTK_ASSISTANT (window),
- GTK_WIDGET(gtk_builder_get_object(builder, "summary_page")),
+ gtk_assistant_set_page_complete (GTK_ASSISTANT(window),
+ GTK_WIDGET(gtk_builder_get_object (builder, "summary_page")),
TRUE);
/* Start Page */
/* File chooser Page */
info->file_chooser = gtk_file_chooser_widget_new (GTK_FILE_CHOOSER_ACTION_OPEN);
- g_signal_connect (G_OBJECT (info->file_chooser), "file-activated",
- G_CALLBACK (csv_import_trans_file_chooser_confirm_cb), info);
- button = gtk_button_new_from_stock(GTK_STOCK_OK);
+ g_signal_connect (G_OBJECT(info->file_chooser), "file-activated",
+ G_CALLBACK(csv_import_trans_file_chooser_confirm_cb), info);
+ button = gtk_button_new_from_stock (GTK_STOCK_OK);
gtk_widget_set_size_request (button, 100, -1);
gtk_widget_show (button);
- h_box = gtk_hbox_new(TRUE, 0);
- gtk_box_pack_start(GTK_BOX(h_box), button, FALSE, FALSE, 0);
+ h_box = gtk_hbox_new (TRUE, 0);
+ gtk_box_pack_start (GTK_BOX(h_box), button, FALSE, FALSE, 0);
gtk_file_chooser_set_extra_widget (GTK_FILE_CHOOSER(info->file_chooser), h_box);
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (csv_import_trans_file_chooser_confirm_cb), info);
+ g_signal_connect (G_OBJECT(button), "clicked",
+ G_CALLBACK(csv_import_trans_file_chooser_confirm_cb), info);
box = GTK_WIDGET(gtk_builder_get_object(builder, "file_page"));
- gtk_box_pack_start (GTK_BOX (box), info->file_chooser, TRUE, TRUE, 6);
+ gtk_box_pack_start (GTK_BOX(box), info->file_chooser, TRUE, TRUE, 6);
gtk_widget_show (info->file_chooser);
/* Preview Settings Page */
@@ -1711,7 +1711,7 @@ csv_import_trans_assistant_create (CsvImportTrans *info)
info->encselector = GO_CHARMAP_SEL(go_charmap_sel_new(GO_CHARMAP_SEL_TO_UTF8));
/* Connect the selector to the encoding_selected event handler. */
- g_signal_connect(G_OBJECT(info->encselector), "charmap_changed",
+ g_signal_connect (G_OBJECT(info->encselector), "charmap_changed",
G_CALLBACK(encoding_selected), (gpointer)info);
/* Load the separator buttons from the glade builder file into the
@@ -1721,7 +1721,7 @@ csv_import_trans_assistant_create (CsvImportTrans *info)
info->sep_buttons[i]
= (GtkCheckButton*)GTK_WIDGET(gtk_builder_get_object (builder, sep_button_names[i]));
/* Connect them to the sep_button_clicked event handler. */
- g_signal_connect(G_OBJECT(info->sep_buttons[i]), "toggled",
+ g_signal_connect (G_OBJECT(info->sep_buttons[i]), "toggled",
G_CALLBACK(sep_button_clicked), (gpointer)info);
}
@@ -1729,21 +1729,21 @@ csv_import_trans_assistant_create (CsvImportTrans *info)
* as the other separator buttons. */
info->custom_cbutton
= (GtkCheckButton*)GTK_WIDGET(gtk_builder_get_object (builder, "custom_cbutton"));
- g_signal_connect(G_OBJECT(info->custom_cbutton), "clicked",
+ g_signal_connect (G_OBJECT(info->custom_cbutton), "clicked",
G_CALLBACK(sep_button_clicked), (gpointer)info);
/* Load the entry for the custom separator entry. Connect it to the
* sep_button_clicked event handler as well. */
info->custom_entry = (GtkEntry*)GTK_WIDGET(gtk_builder_get_object (builder, "custom_entry"));
- g_signal_connect(G_OBJECT(info->custom_entry), "changed",
+ g_signal_connect (G_OBJECT(info->custom_entry), "changed",
G_CALLBACK(sep_button_clicked), (gpointer)info);
/* Get the table from the Glade builder file. */
enctable = GTK_TABLE(gtk_builder_get_object (builder, "enctable"));
/* Put the selector in at the top. */
- gtk_table_attach_defaults(enctable, GTK_WIDGET(info->encselector), 1, 2, 0, 1);
+ gtk_table_attach_defaults (enctable, GTK_WIDGET(info->encselector), 1, 2, 0, 1);
/* Show the table in all its glory. */
- gtk_widget_show_all(GTK_WIDGET(enctable));
+ gtk_widget_show_all (GTK_WIDGET(enctable));
/* The instructions label and image */
info->instructions_label = GTK_LABEL(gtk_builder_get_object (builder, "instructions_label"));
@@ -1753,36 +1753,36 @@ csv_import_trans_assistant_create (CsvImportTrans *info)
info->date_format_combo = GTK_COMBO_BOX_TEXT(gtk_combo_box_text_new());
for (i = 0; i < num_date_formats; i++)
{
- gtk_combo_box_text_append_text(info->date_format_combo, _(date_format_user[i]));
+ gtk_combo_box_text_append_text (info->date_format_combo, _(date_format_user[i]));
}
- gtk_combo_box_set_active(GTK_COMBO_BOX(info->date_format_combo), 0);
- g_signal_connect(G_OBJECT(info->date_format_combo), "changed",
+ gtk_combo_box_set_active (GTK_COMBO_BOX(info->date_format_combo), 0);
+ g_signal_connect (G_OBJECT(info->date_format_combo), "changed",
G_CALLBACK(date_format_selected), (gpointer)info);
/* Add it to the assistant. */
date_format_container = GTK_CONTAINER(gtk_builder_get_object (builder, "date_format_container"));
- gtk_container_add(date_format_container, GTK_WIDGET(info->date_format_combo));
- gtk_widget_show_all(GTK_WIDGET(date_format_container));
+ gtk_container_add (date_format_container, GTK_WIDGET(info->date_format_combo));
+ gtk_widget_show_all (GTK_WIDGET(date_format_container));
/* Add in the currency format combo box and hook it up to an event handler. */
info->currency_format_combo = GTK_COMBO_BOX_TEXT(gtk_combo_box_text_new());
for (i = 0; i < num_currency_formats; i++)
{
- gtk_combo_box_text_append_text(info->currency_format_combo, _(currency_format_user[i]));
+ gtk_combo_box_text_append_text (info->currency_format_combo, _(currency_format_user[i]));
}
/* Default will the locale */
- gtk_combo_box_set_active(GTK_COMBO_BOX(info->currency_format_combo), 0);
- g_signal_connect(G_OBJECT(info->currency_format_combo), "changed",
+ gtk_combo_box_set_active (GTK_COMBO_BOX(info->currency_format_combo), 0);
+ g_signal_connect (G_OBJECT(info->currency_format_combo), "changed",
G_CALLBACK(currency_format_selected), (gpointer)info);
/* Add it to the assistant. */
currency_format_container = GTK_CONTAINER(gtk_builder_get_object (builder, "currency_format_container"));
- gtk_container_add(currency_format_container, GTK_WIDGET(info->currency_format_combo));
- gtk_widget_show_all(GTK_WIDGET(currency_format_container));
+ gtk_container_add (currency_format_container, GTK_WIDGET(info->currency_format_combo));
+ gtk_widget_show_all (GTK_WIDGET(currency_format_container));
/* Connect the CSV/Fixed-Width radio button event handler. */
csv_button = GTK_WIDGET(gtk_builder_get_object (builder, "csv_button"));
- g_signal_connect(csv_button, "toggled",
+ g_signal_connect (csv_button, "toggled",
G_CALLBACK(separated_or_fixed_selected), (gpointer)info);
/* Load the data treeview and connect it to its resizing event handler. */
@@ -1802,7 +1802,7 @@ csv_import_trans_assistant_create (CsvImportTrans *info)
/* Account page */
/* Initialise the Account Picker and add to the Assistant */
info->account_page = GTK_WIDGET(gtk_builder_get_object (builder, "account_page"));
- info->account_picker = gnc_import_account_assist_setup(info->account_page);
+ info->account_picker = gnc_import_account_assist_setup (info->account_page);
info->account_label = GTK_WIDGET(gtk_builder_get_object (builder, "account_label"));
/* Matcher page */
@@ -1817,8 +1817,8 @@ csv_import_trans_assistant_create (CsvImportTrans *info)
gnc_restore_window_size (GNC_PREFS_GROUP, GTK_WINDOW(info->window));
- gtk_builder_connect_signals(builder, info);
- g_object_unref(G_OBJECT(builder));
+ gtk_builder_connect_signals (builder, info);
+ g_object_unref (G_OBJECT(builder));
return window;
}
diff --git a/src/import-export/csv-imp/csv-account-import.c b/src/import-export/csv-imp/csv-account-import.c
index 58e62d4..1d200ef 100644
--- a/src/import-export/csv-imp/csv-account-import.c
+++ b/src/import-export/csv-imp/csv-account-import.c
@@ -68,7 +68,7 @@ static QofLogModule log_module = GNC_MOD_ASSISTANT;
*******************************************************/
csv_import_result
csv_import_read_file (const gchar *filename, const gchar *parser_regexp,
- GtkListStore *store, guint max_rows )
+ GtkListStore *store, guint max_rows)
{
FILE *f;
char *line;
@@ -232,14 +232,14 @@ csv_account_import (CsvImportInfo *info)
ENTER("");
book = gnc_get_current_book();
- root = gnc_book_get_root_account(book);
+ root = gnc_book_get_root_account (book);
info->num_new = 0;
info->num_updates = 0;
/* Move to the first valid entry in store */
row = info->header_rows;
- valid = gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(info->store), &iter, NULL, row );
+ valid = gtk_tree_model_iter_nth_child (GTK_TREE_MODEL(info->store), &iter, NULL, row );
while (valid)
{
/* Walk through the list, reading each row */
@@ -258,13 +258,13 @@ csv_account_import (CsvImportInfo *info)
PLACE_HOLDER, &place_holder, -1);
/* See if we can find the account by full name */
- acc = gnc_account_lookup_by_full_name(root, full_name);
+ acc = gnc_account_lookup_by_full_name (root, full_name);
DEBUG("Row is %u and full name is %s", row, full_name);
if (acc == NULL)
{
/* Account does not exist, Lets try and add it */
- if (g_strrstr(full_name, name) != NULL)
+ if (g_strrstr (full_name, name) != NULL)
{
gint string_position;
gnc_commodity *commodity;
@@ -272,21 +272,21 @@ csv_account_import (CsvImportInfo *info)
gchar *full_parent;
/* Get full name of parent account, allow for separator */
- string_position = strlen(full_name) - strlen(name) - 1;
+ string_position = strlen (full_name) - strlen (name) - 1;
if (string_position == -1)
- full_parent = g_strdup(full_name);
+ full_parent = g_strdup (full_name);
else
- full_parent = g_strndup(full_name, string_position);
+ full_parent = g_strndup (full_name, string_position);
- parent = gnc_account_lookup_by_full_name(root, full_parent);
+ parent = gnc_account_lookup_by_full_name (root, full_parent);
g_free (full_parent);
if (parent == NULL && string_position != -1)
{
- gchar *text = g_strdup_printf( gettext("Row %u, path to account %s not found, added as top level\n"), row + 1, name );
- info->error = g_strconcat(info->error, text, NULL);
- g_free(text);
+ gchar *text = g_strdup_printf (gettext("Row %u, path to account %s not found, added as top level\n"), row + 1, name);
+ info->error = g_strconcat (info->error, text, NULL);
+ g_free (text);
PINFO("Unable to import Row %u for account %s, path not found!", row, name);
}
@@ -295,7 +295,7 @@ csv_account_import (CsvImportInfo *info)
/* Do we have a valid commodity */
table = gnc_commodity_table_get_table (book);
- commodity = gnc_commodity_table_lookup( table, commodityn, commoditym);
+ commodity = gnc_commodity_table_lookup (table, commodityn, commoditym);
if (commodity)
{
@@ -305,27 +305,27 @@ csv_account_import (CsvImportInfo *info)
acc = xaccMallocAccount (book);
xaccAccountBeginEdit (acc);
xaccAccountSetName (acc, name);
- xaccAccountSetType(acc, xaccAccountStringToEnum (type));
+ xaccAccountSetType (acc, xaccAccountStringToEnum (type));
- if (!g_strcmp0(notes, "") == 0)
+ if (!g_strcmp0 (notes, "") == 0)
xaccAccountSetNotes (acc, notes);
- if (!g_strcmp0(description, "") == 0)
+ if (!g_strcmp0 (description, "") == 0)
xaccAccountSetDescription (acc, description);
- if (!g_strcmp0(code, "") == 0)
+ if (!g_strcmp0 (code, "") == 0)
xaccAccountSetCode (acc, code);
- if (!g_strcmp0(color, "") == 0)
+ if (!g_strcmp0 (color, "") == 0)
{
- if (gdk_color_parse(color, &testcolor))
+ if (gdk_color_parse (color, &testcolor))
xaccAccountSetColor (acc, color);
}
- if (g_strcmp0(hidden, "T") == 0)
+ if (g_strcmp0 (hidden, "T") == 0)
xaccAccountSetHidden (acc, TRUE);
- if (g_strcmp0(place_holder, "T") == 0)
+ if (g_strcmp0 (place_holder, "T") == 0)
xaccAccountSetPlaceholder (acc, TRUE);
- xaccAccountSetCommodity(acc, commodity);
+ xaccAccountSetCommodity (acc, commodity);
xaccAccountBeginEdit (parent);
gnc_account_append_child (parent, acc);
xaccAccountCommitEdit (parent);
@@ -334,18 +334,18 @@ csv_account_import (CsvImportInfo *info)
}
else
{
- gchar *err_string = g_strdup_printf( gettext("Row %u, commodity %s / %s not found\n"), row + 1,
+ gchar *err_string = g_strdup_printf (gettext("Row %u, commodity %s / %s not found\n"), row + 1,
commoditym, commodityn);
- info->error = g_strconcat(info->error, err_string, NULL);
- g_free(err_string);
+ info->error = g_strconcat (info->error, err_string, NULL);
+ g_free (err_string);
PINFO("Unable to import Row %u for account %s, commodity!", row, full_name);
}
}
else
{
- gchar *err_string = g_strdup_printf( gettext("Row %u, account %s not in %s\n"), row + 1, name, full_name);
- info->error = g_strconcat(info->error, err_string, NULL);
- g_free(err_string);
+ gchar *err_string = g_strdup_printf (gettext("Row %u, account %s not in %s\n"), row + 1, name, full_name);
+ info->error = g_strconcat (info->error, err_string, NULL);
+ g_free (err_string);
PINFO("Unable to import Row %u for account %s, name!", row, full_name);
}
}
@@ -354,19 +354,19 @@ csv_account_import (CsvImportInfo *info)
/* Lets try and update the color, notes, description, code entries */
DEBUG("Existing account, will try and update account %s", full_name);
info->num_updates = info->num_updates + 1;
- if (!g_strcmp0(color, "") == 0)
+ if (!g_strcmp0 (color, "") == 0)
{
- if (gdk_color_parse(color, &testcolor))
+ if (gdk_color_parse (color, &testcolor))
xaccAccountSetColor (acc, color);
}
- if (!g_strcmp0(notes, "") == 0)
+ if (!g_strcmp0 (notes, "") == 0)
xaccAccountSetNotes (acc, notes);
- if (!g_strcmp0(description, "") == 0)
+ if (!g_strcmp0 (description, "") == 0)
xaccAccountSetDescription (acc, description);
- if (!g_strcmp0(code, "") == 0)
+ if (!g_strcmp0 (code, "") == 0)
xaccAccountSetCode (acc, code);
}
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (info->store), &iter);
diff --git a/src/import-export/csv-imp/csv-account-import.h b/src/import-export/csv-imp/csv-account-import.h
index 00cdee1..4ef09fc 100644
--- a/src/import-export/csv-imp/csv-account-import.h
+++ b/src/import-export/csv-imp/csv-account-import.h
@@ -44,7 +44,7 @@ typedef enum _csv_import_result csv_import_result;
csv_import_result
csv_import_read_file (const gchar *filename, const gchar *parser_regexp, GtkListStore *store, guint max_rows );
-void csv_account_import(CsvImportInfo *info);
+void csv_account_import (CsvImportInfo *info);
#endif /* CSV_ACCOUNT_IMPORT_H */
diff --git a/src/import-export/csv-imp/gnc-csv-model.c b/src/import-export/csv-imp/gnc-csv-model.c
index 3bc5da2..41a4ab6 100644
--- a/src/import-export/csv-imp/gnc-csv-model.c
+++ b/src/import-export/csv-imp/gnc-csv-model.c
@@ -55,11 +55,11 @@ gchar* gnc_csv_column_type_strs[GNC_CSV_NUM_COL_TYPES] = {N_("None"),
/** A set of sensible defaults for parsing CSV files.
* @return StfParseOptions_t* for parsing a file with comma separators
*/
-static StfParseOptions_t* default_parse_options(void)
+static StfParseOptions_t* default_parse_options (void)
{
StfParseOptions_t* options = stf_parse_options_new();
- stf_parse_options_set_type(options, PARSE_TYPE_CSV);
- stf_parse_options_csv_set_separators(options, ",", NULL);
+ stf_parse_options_set_type (options, PARSE_TYPE_CSV);
+ stf_parse_options_csv_set_separators (options, ",", NULL);
return options;
}
@@ -70,7 +70,7 @@ static StfParseOptions_t* default_parse_options(void)
* @param format An index specifying a format in date_format_user
* @return The parsed value of date_str on success or -1 on failure
*/
-static time64 parse_date_with_year(const char* date_str, int format)
+static time64 parse_date_with_year (const char* date_str, int format)
{
time64 rawtime; /* The integer time */
struct tm retvalue, test_retvalue; /* The time in a broken-down structure */
@@ -90,9 +90,9 @@ static time64 parse_date_with_year(const char* date_str, int format)
const char* regex = "^ *([0-9]+) *[-/.'] *([0-9]+) *[-/.'] *([0-9]+).*$|^ *([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]).*$";
/* We get our matches using the regular expression. */
- regcomp(&preg, regex, REG_EXTENDED);
- regexec(&preg, date_str, 4, pmatch, 0);
- regfree(&preg);
+ regcomp (&preg, regex, REG_EXTENDED);
+ regexec (&preg, date_str, 4, pmatch, 0);
+ regfree (&preg);
/* If there wasn't a match, there was an error. */
if (pmatch[0].rm_eo == 0)
@@ -148,7 +148,7 @@ static time64 parse_date_with_year(const char* date_str, int format)
/* Copy the matching substring into date_segment so that we can
* convert it into an integer. */
mem_length = pmatch[j].rm_eo - pmatch[j].rm_so;
- memcpy(date_segment, date_str + pmatch[j].rm_so, mem_length);
+ memcpy (date_segment, date_str + pmatch[j].rm_so, mem_length);
date_segment[mem_length] = '\0';
/* Set the appropriate member of retvalue. Save the original
@@ -157,7 +157,7 @@ static time64 parse_date_with_year(const char* date_str, int format)
switch (segment_type)
{
case 'y':
- retvalue.tm_year = atoi(date_segment);
+ retvalue.tm_year = atoi (date_segment);
/* Handle two-digit years. */
if (retvalue.tm_year < 100)
@@ -172,11 +172,11 @@ static time64 parse_date_with_year(const char* date_str, int format)
break;
case 'm':
- orig_month = retvalue.tm_mon = atoi(date_segment) - 1;
+ orig_month = retvalue.tm_mon = atoi (date_segment) - 1;
break;
case 'd':
- orig_day = retvalue.tm_mday = atoi(date_segment);
+ orig_day = retvalue.tm_mday = atoi (date_segment);
break;
}
j++;
@@ -211,7 +211,7 @@ static time64 parse_date_with_year(const char* date_str, int format)
* @param format An index specifying a format in date_format_user
* @return The parsed value of date_str on success or -1 on failure
*/
-static time64 parse_date_without_year(const char* date_str, int format)
+static time64 parse_date_without_year (const char* date_str, int format)
{
time64 rawtime; /* The integer time */
struct tm retvalue, test_retvalue; /* The time in a broken-down structure */
@@ -231,9 +231,9 @@ static time64 parse_date_without_year(const char* date_str, int format)
const char* regex = "^ *([0-9]+) *[-/.'] *([0-9]+).*$";
/* We get our matches using the regular expression. */
- regcomp(&preg, regex, REG_EXTENDED);
- regexec(&preg, date_str, 3, pmatch, 0);
- regfree(&preg);
+ regcomp (&preg, regex, REG_EXTENDED);
+ regexec (&preg, date_str, 3, pmatch, 0);
+ regfree (&preg);
/* If there wasn't a match, there was an error. */
if (pmatch[0].rm_eo == 0)
@@ -259,7 +259,7 @@ static time64 parse_date_without_year(const char* date_str, int format)
/* Copy the matching substring into date_segment so that we can
* convert it into an integer. */
mem_length = pmatch[j].rm_eo - pmatch[j].rm_so;
- date_segment = g_new(gchar, mem_length);
+ date_segment = g_new (gchar, mem_length);
memcpy(date_segment, date_str + pmatch[j].rm_so, mem_length);
date_segment[mem_length] = '\0';
@@ -269,14 +269,14 @@ static time64 parse_date_without_year(const char* date_str, int format)
switch (segment_type)
{
case 'm':
- orig_month = retvalue.tm_mon = atoi(date_segment) - 1;
+ orig_month = retvalue.tm_mon = atoi (date_segment) - 1;
break;
case 'd':
- orig_day = retvalue.tm_mday = atoi(date_segment);
+ orig_day = retvalue.tm_mday = atoi (date_segment);
break;
}
- g_free(date_segment);
+ g_free (date_segment);
j++;
}
}
@@ -310,18 +310,18 @@ static time64 parse_date_without_year(const char* date_str, int format)
* @param format An index specifying a format in date_format_user
* @return The parsed value of date_str on success or -1 on failure
*/
-time64 parse_date(const char* date_str, int format)
+time64 parse_date (const char* date_str, int format)
{
- if (strchr(date_format_user[format], 'y'))
- return parse_date_with_year(date_str, format);
+ if (strchr (date_format_user[format], 'y'))
+ return parse_date_with_year (date_str, format);
else
- return parse_date_without_year(date_str, format);
+ return parse_date_without_year (date_str, format);
}
/** Constructor for GncCsvParseData.
* @return Pointer to a new GncCSvParseData
*/
-GncCsvParseData* gnc_csv_new_parse_data(void)
+GncCsvParseData* gnc_csv_new_parse_data (void)
{
GncCsvParseData* parse_data = g_new(GncCsvParseData, 1);
parse_data->encoding = "UTF-8";
@@ -346,32 +346,32 @@ GncCsvParseData* gnc_csv_new_parse_data(void)
/** Destructor for GncCsvParseData.
* @param parse_data Parse data whose memory will be freed
*/
-void gnc_csv_parse_data_free(GncCsvParseData* parse_data)
+void gnc_csv_parse_data_free (GncCsvParseData* parse_data)
{
/* All non-NULL pointers have been initialized and must be freed. */
if (parse_data->raw_mapping != NULL)
{
- g_mapped_file_unref(parse_data->raw_mapping);
+ g_mapped_file_unref (parse_data->raw_mapping);
}
if (parse_data->file_str.begin != NULL)
- g_free(parse_data->file_str.begin);
+ g_free (parse_data->file_str.begin);
if (parse_data->orig_lines != NULL)
- stf_parse_general_free(parse_data->orig_lines);
+ stf_parse_general_free (parse_data->orig_lines);
if (parse_data->orig_row_lengths != NULL)
- g_array_free(parse_data->orig_row_lengths, FALSE);
+ g_array_free (parse_data->orig_row_lengths, FALSE);
if (parse_data->options != NULL)
- stf_parse_options_free(parse_data->options);
+ stf_parse_options_free (parse_data->options);
if (parse_data->column_types != NULL)
- g_array_free(parse_data->column_types, TRUE);
+ g_array_free (parse_data->column_types, TRUE);
if (parse_data->error_lines != NULL)
- g_list_free(parse_data->error_lines);
+ g_list_free (parse_data->error_lines);
if (parse_data->transactions != NULL)
{
@@ -380,15 +380,15 @@ void gnc_csv_parse_data_free(GncCsvParseData* parse_data)
* the list before freeing the entire list. */
do
{
- g_free(transactions->data);
- transactions = g_list_next(transactions);
+ g_free (transactions->data);
+ transactions = g_list_next (transactions);
}
while (transactions != NULL);
- g_list_free(parse_data->transactions);
+ g_list_free (parse_data->transactions);
}
- g_free(parse_data->chunk);
- g_free(parse_data);
+ g_free (parse_data->chunk);
+ g_free (parse_data);
}
/** Converts raw file data using a new encoding. This function must be
@@ -399,7 +399,7 @@ void gnc_csv_parse_data_free(GncCsvParseData* parse_data)
* @param error Will point to an error on failure
* @return 0 on success, 1 on failure
*/
-int gnc_csv_convert_encoding(GncCsvParseData* parse_data, const char* encoding,
+int gnc_csv_convert_encoding (GncCsvParseData* parse_data, const char* encoding,
GError** error)
{
gsize bytes_read, bytes_written;
@@ -412,7 +412,7 @@ int gnc_csv_convert_encoding(GncCsvParseData* parse_data, const char* encoding,
g_free(parse_data->file_str.begin);
/* Do the actual translation to UTF-8. */
- parse_data->file_str.begin = g_convert(parse_data->raw_str.begin,
+ parse_data->file_str.begin = g_convert (parse_data->raw_str.begin,
parse_data->raw_str.end - parse_data->raw_str.begin,
"UTF-8", encoding, &bytes_read, &bytes_written,
error);
@@ -439,43 +439,43 @@ int gnc_csv_convert_encoding(GncCsvParseData* parse_data, const char* encoding,
* @param error Will contain an error if there is a failure
* @return 0 on success, 1 on failure
*/
-int gnc_csv_load_file(GncCsvParseData* parse_data, const char* filename,
+int gnc_csv_load_file (GncCsvParseData* parse_data, const char* filename,
GError** error)
{
const char* guess_enc = NULL;
/* Get the raw data first and handle an error if one occurs. */
- parse_data->raw_mapping = g_mapped_file_new(filename, FALSE, error);
+ parse_data->raw_mapping = g_mapped_file_new (filename, FALSE, error);
if (parse_data->raw_mapping == NULL)
{
/* TODO Handle file opening errors more specifically,
* e.g. inexistent file versus no read permission. */
parse_data->raw_str.begin = NULL;
g_clear_error (error);
- g_set_error(error, 0, GNC_CSV_FILE_OPEN_ERR, "%s", _("File opening failed."));
+ g_set_error (error, 0, GNC_CSV_FILE_OPEN_ERR, "%s", _("File opening failed."));
return 1;
}
/* Copy the mapping's contents into parse-data->raw_str. */
- parse_data->raw_str.begin = g_mapped_file_get_contents(parse_data->raw_mapping);
- parse_data->raw_str.end = parse_data->raw_str.begin + g_mapped_file_get_length(parse_data->raw_mapping);
+ parse_data->raw_str.begin = g_mapped_file_get_contents (parse_data->raw_mapping);
+ parse_data->raw_str.end = parse_data->raw_str.begin + g_mapped_file_get_length (parse_data->raw_mapping);
/* Make a guess at the encoding of the data. */
- if (!g_mapped_file_get_length(parse_data->raw_mapping) == 0)
- guess_enc = go_guess_encoding((const char*)(parse_data->raw_str.begin),
+ if (!g_mapped_file_get_length (parse_data->raw_mapping) == 0)
+ guess_enc = go_guess_encoding ((const char*)(parse_data->raw_str.begin),
(size_t)(parse_data->raw_str.end - parse_data->raw_str.begin),
"UTF-8", NULL);
if (guess_enc == NULL)
{
- g_set_error(error, 0, GNC_CSV_ENCODING_ERR, "%s", _("Unknown encoding."));
+ g_set_error (error, 0, GNC_CSV_ENCODING_ERR, "%s", _("Unknown encoding."));
return 1;
}
/* Convert using the guessed encoding into parse_data->file_str and
* handle any errors that occur. */
- gnc_csv_convert_encoding(parse_data, guess_enc, error);
+ gnc_csv_convert_encoding (parse_data, guess_enc, error);
if (parse_data->file_str.begin == NULL)
{
- g_set_error(error, 0, GNC_CSV_ENCODING_ERR, "%s", _("Unknown encoding."));
+ g_set_error (error, 0, GNC_CSV_ENCODING_ERR, "%s", _("Unknown encoding."));
return 1;
}
else
@@ -494,21 +494,21 @@ int gnc_csv_load_file(GncCsvParseData* parse_data, const char* filename,
* @param error Will contain an error if there is a failure
* @return 0 on success, 1 on failure
*/
-int gnc_csv_parse(GncCsvParseData* parse_data, gboolean guessColTypes, GError** error)
+int gnc_csv_parse (GncCsvParseData* parse_data, gboolean guessColTypes, GError** error)
{
/* max_cols is the number of columns in the row with the most columns. */
int i, max_cols = 0;
if (parse_data->orig_lines != NULL)
{
- stf_parse_general_free(parse_data->orig_lines);
+ stf_parse_general_free (parse_data->orig_lines);
}
/* If everything is fine ... */
if (parse_data->file_str.begin != NULL)
{
/* Do the actual parsing. */
- parse_data->orig_lines = stf_parse_general(parse_data->options, parse_data->chunk,
+ parse_data->orig_lines = stf_parse_general (parse_data->options, parse_data->chunk,
parse_data->file_str.begin,
parse_data->file_str.end);
}
@@ -520,12 +520,12 @@ int gnc_csv_parse(GncCsvParseData* parse_data, gboolean guessColTypes, GError**
/* Record the original row lengths of parse_data->orig_lines. */
if (parse_data->orig_row_lengths != NULL)
- g_array_free(parse_data->orig_row_lengths, FALSE);
+ g_array_free (parse_data->orig_row_lengths, FALSE);
parse_data->orig_row_lengths =
- g_array_sized_new(FALSE, FALSE, sizeof(int), parse_data->orig_lines->len);
+ g_array_sized_new (FALSE, FALSE, sizeof(int), parse_data->orig_lines->len);
- g_array_set_size(parse_data->orig_row_lengths, parse_data->orig_lines->len);
+ g_array_set_size (parse_data->orig_row_lengths, parse_data->orig_lines->len);
parse_data->orig_max_row = 0;
for (i = 0; i < parse_data->orig_lines->len; i++)
{
@@ -538,7 +538,7 @@ int gnc_csv_parse(GncCsvParseData* parse_data, gboolean guessColTypes, GError**
/* If it failed, generate an error. */
if (parse_data->orig_lines == NULL)
{
- g_set_error(error, 0, 0, "Parsing failed.");
+ g_set_error (error, 0, 0, "Parsing failed.");
return 1;
}
@@ -553,13 +553,13 @@ int gnc_csv_parse(GncCsvParseData* parse_data, gboolean guessColTypes, GError**
{
/* Free parse_data->column_types if it's already been created. */
if (parse_data->column_types != NULL)
- g_array_free(parse_data->column_types, TRUE);
+ g_array_free (parse_data->column_types, TRUE);
/* Create parse_data->column_types and fill it with guesses based
* on the contents of each column. */
- parse_data->column_types = g_array_sized_new(FALSE, FALSE, sizeof(int),
+ parse_data->column_types = g_array_sized_new (FALSE, FALSE, sizeof(int),
max_cols);
- g_array_set_size(parse_data->column_types, max_cols);
+ g_array_set_size (parse_data->column_types, max_cols);
/* TODO Make it actually guess. */
for (i = 0; i < parse_data->column_types->len; i++)
{
@@ -574,7 +574,7 @@ int gnc_csv_parse(GncCsvParseData* parse_data, gboolean guessColTypes, GError**
* parse_data->column_types should have already been
* initialized, so we don't check for it being NULL. */
int i = parse_data->column_types->len;
- g_array_set_size(parse_data->column_types, max_cols);
+ g_array_set_size (parse_data->column_types, max_cols);
for (; i < parse_data->column_types->len; i++)
{
parse_data->column_types->data[i] = GNC_CSV_NONE;
@@ -605,9 +605,9 @@ typedef struct
/** Constructor for TransProperty.
* @param type The type of the new property (see TransProperty.type for possible values)
*/
-static TransProperty* trans_property_new(int type, TransPropertyList* list)
+static TransProperty* trans_property_new (int type, TransPropertyList* list)
{
- TransProperty* prop = g_new(TransProperty, 1);
+ TransProperty* prop = g_new (TransProperty, 1);
prop->type = type;
prop->list = list;
prop->value = NULL;
@@ -617,7 +617,7 @@ static TransProperty* trans_property_new(int type, TransPropertyList* list)
/** Destructor for TransProperty.
* @param prop The property to be freed
*/
-static void trans_property_free(TransProperty* prop)
+static void trans_property_free (TransProperty* prop)
{
switch (prop->type)
{
@@ -632,7 +632,7 @@ static void trans_property_free(TransProperty* prop)
g_free(prop->value);
break;
}
- g_free(prop);
+ g_free (prop);
}
/** Sets the value of the property by parsing str. Note: this should
@@ -642,7 +642,7 @@ static void trans_property_free(TransProperty* prop)
* @param str The string to be parsed
* @return TRUE on success, FALSE on failure
*/
-static gboolean trans_property_set(TransProperty* prop, char* str)
+static gboolean trans_property_set (TransProperty* prop, char* str)
{
char *endptr, *possible_currency_symbol, *str_dupe;
gnc_numeric val;
@@ -656,37 +656,37 @@ static gboolean trans_property_set(TransProperty* prop, char* str)
case GNC_CSV_DESCRIPTION:
case GNC_CSV_NOTES:
case GNC_CSV_NUM:
- prop->value = g_strdup(str);
+ prop->value = g_strdup (str);
return TRUE;
case GNC_CSV_BALANCE:
case GNC_CSV_DEPOSIT:
case GNC_CSV_WITHDRAWAL:
- str_dupe = g_strdup(str); /* First, we make a copy so we can't mess up real data. */
+ str_dupe = g_strdup (str); /* First, we make a copy so we can't mess up real data. */
/* If a cell is empty make its value = 0.0 */
- if ( strcmp(str_dupe, "") == 0)
+ if (strcmp (str_dupe, "") == 0)
{
- g_free(str_dupe);
- str_dupe = g_strdup("0.0");
+ g_free (str_dupe);
+ str_dupe = g_strdup ("0.0");
}
/* Go through str_dupe looking for currency symbols. */
for (possible_currency_symbol = str_dupe; *possible_currency_symbol;
- possible_currency_symbol = g_utf8_next_char(possible_currency_symbol))
+ possible_currency_symbol = g_utf8_next_char (possible_currency_symbol))
{
- if (g_unichar_type(g_utf8_get_char(possible_currency_symbol)) == G_UNICODE_CURRENCY_SYMBOL)
+ if (g_unichar_type (g_utf8_get_char (possible_currency_symbol)) == G_UNICODE_CURRENCY_SYMBOL)
{
/* If we find a currency symbol, save the position just ahead
* of the currency symbol (next_symbol), and find the null
* terminator of the string (last_symbol). */
- char *next_symbol = g_utf8_next_char(possible_currency_symbol), *last_symbol = next_symbol;
+ char *next_symbol = g_utf8_next_char (possible_currency_symbol), *last_symbol = next_symbol;
while (*last_symbol)
- last_symbol = g_utf8_next_char(last_symbol);
+ last_symbol = g_utf8_next_char (last_symbol);
/* Move all of the string (including the null byte, which is
* why we have +1 in the size parameter) following the
* currency symbol back one character, thereby overwriting the
* currency symbol. */
- memmove(possible_currency_symbol, next_symbol, last_symbol - next_symbol + 1);
+ memmove (possible_currency_symbol, next_symbol, last_symbol - next_symbol + 1);
break;
}
}
@@ -696,33 +696,33 @@ static gboolean trans_property_set(TransProperty* prop, char* str)
{
case 0:
/* Currancy locale */
- if (!(xaccParseAmount(str_dupe, TRUE, &val, &endptr)))
+ if (!(xaccParseAmount (str_dupe, TRUE, &val, &endptr)))
{
- g_free(str_dupe);
+ g_free (str_dupe);
return FALSE;
}
break;
case 1:
/* Currancy decimal period */
- if (!(xaccParseAmountExtended(str_dupe, TRUE, '-', '.', ',', "\003\003", "$+", &val, &endptr)))
+ if (!(xaccParseAmountExtended (str_dupe, TRUE, '-', '.', ',', "\003\003", "$+", &val, &endptr)))
{
- g_free(str_dupe);
+ g_free (str_dupe);
return FALSE;
}
break;
case 2:
/* Currancy decimal comma */
- if (!(xaccParseAmountExtended(str_dupe, TRUE, '-', ',', '.', "\003\003", "$+", &val, &endptr)))
+ if (!(xaccParseAmountExtended (str_dupe, TRUE, '-', ',', '.', "\003\003", "$+", &val, &endptr)))
{
- g_free(str_dupe);
+ g_free (str_dupe);
return FALSE;
}
break;
}
- prop->value = g_new(gnc_numeric, 1);
+ prop->value = g_new (gnc_numeric, 1);
*((gnc_numeric*)(prop->value)) = val;
- g_free(str_dupe);
+ g_free (str_dupe);
return TRUE;
}
@@ -734,9 +734,9 @@ static gboolean trans_property_set(TransProperty* prop, char* str)
* @param date_format An index from date_format_user for how date properties should be parsed
* @return A pointer to a new TransPropertyList
*/
-static TransPropertyList* trans_property_list_new(Account* account, int date_format, int currency_format)
+static TransPropertyList* trans_property_list_new (Account* account, int date_format, int currency_format)
{
- TransPropertyList* list = g_new(TransPropertyList, 1);
+ TransPropertyList* list = g_new (TransPropertyList, 1);
list->account = account;
list->date_format = date_format;
list->currency_format = currency_format;
@@ -747,17 +747,17 @@ static TransPropertyList* trans_property_list_new(Account* account, int date_for
/** Destructor for TransPropertyList.
* @param list The list to be freed
*/
-static void trans_property_list_free(TransPropertyList* list)
+static void trans_property_list_free (TransPropertyList* list)
{
/* Free all of the properties in this list before freeeing the list itself. */
GList* properties_begin = list->properties;
while (list->properties != NULL)
{
- trans_property_free((TransProperty*)(list->properties->data));
- list->properties = g_list_next(list->properties);
+ trans_property_free ((TransProperty*)(list->properties->data));
+ list->properties = g_list_next (list->properties);
}
- g_list_free(properties_begin);
- g_free(list);
+ g_list_free (properties_begin);
+ g_free (list);
}
/** Adds a property to the list it's linked with.
@@ -765,9 +765,9 @@ static void trans_property_list_free(TransPropertyList* list)
* associated with a list when it's constructed.)
* @param property The property to be added to its list
*/
-static void trans_property_list_add(TransProperty* property)
+static void trans_property_list_add (TransProperty* property)
{
- property->list->properties = g_list_append(property->list->properties, property);
+ property->list->properties = g_list_append (property->list->properties, property);
}
/** Adds a split to a transaction.
@@ -776,16 +776,16 @@ static void trans_property_list_add(TransProperty* property)
* @param book The book where the split should be stored
* @param amount The amount of the split
*/
-static void trans_add_split(Transaction* trans, Account* account, QofBook* book,
+static void trans_add_split (Transaction* trans, Account* account, QofBook* book,
gnc_numeric amount, const char *num)
{
- Split* split = xaccMallocSplit(book);
- xaccSplitSetAccount(split, account);
- xaccSplitSetParent(split, trans);
- xaccSplitSetAmount(split, amount);
- xaccSplitSetValue(split, amount);
+ Split* split = xaccMallocSplit (book);
+ xaccSplitSetAccount (split, account);
+ xaccSplitSetParent (split, trans);
+ xaccSplitSetAmount (split, amount);
+ xaccSplitSetValue (split, amount);
/* set tran-num and/or split-action per book option */
- gnc_set_num_action(trans, split, num, NULL);
+ gnc_set_num_action (trans, split, num, NULL);
}
/** Tests a TransPropertyList for having enough essential properties.
@@ -795,7 +795,7 @@ static void trans_add_split(Transaction* trans, Account* account, QofBook* book,
* @param error Contains an error message on failure
* @return TRUE if there are enough essentials; FALSE otherwise
*/
-static gboolean trans_property_list_verify_essentials(TransPropertyList* list, gchar** error)
+static gboolean trans_property_list_verify_essentials (TransPropertyList* list, gchar** error)
{
int i;
/* possible_errors lists the ways in which a list can fail this test. */
@@ -823,7 +823,7 @@ static gboolean trans_property_list_verify_essentials(TransPropertyList* list, g
possible_errors[NO_AMOUNT] = NULL;
break;
}
- list->properties = g_list_next(list->properties);
+ list->properties = g_list_next (list->properties);
}
list->properties = properties_begin;
@@ -832,10 +832,10 @@ static gboolean trans_property_list_verify_essentials(TransPropertyList* list, g
{
if (possible_errors[i] != NULL)
{
- errors_list = g_list_append(errors_list, GINT_TO_POINTER(i));
+ errors_list = g_list_append (errors_list, GINT_TO_POINTER(i));
/* Since we added an error, we want to also store its length for
* when we construct the full error string. */
- possible_error_lengths[i] = strlen(_(possible_errors[i]));
+ possible_error_lengths[i] = strlen (_(possible_errors[i]));
}
}
@@ -854,12 +854,12 @@ static gboolean trans_property_list_verify_essentials(TransPropertyList* list, g
{
/* We add an extra 1 to account for spaces in between messages. */
full_error_size += possible_error_lengths[GPOINTER_TO_INT(errors_list->data)] + 1;
- errors_list = g_list_next(errors_list);
+ errors_list = g_list_next (errors_list);
}
errors_list = errors_list_begin;
/* Append the error messages one after another. */
- error_message = error_message_begin = g_new(gchar, full_error_size);
+ error_message = error_message_begin = g_new (gchar, full_error_size);
while (errors_list)
{
i = GPOINTER_TO_INT(errors_list->data);
@@ -871,10 +871,10 @@ static gboolean trans_property_list_verify_essentials(TransPropertyList* list, g
*error_message = ' ';
error_message++;
- errors_list = g_list_next(errors_list);
+ errors_list = g_list_next (errors_list);
}
*error_message = '\0'; /* Replace the last space with the null byte. */
- g_list_free(errors_list_begin);
+ g_list_free (errors_list_begin);
*error = error_message_begin;
return FALSE;
@@ -886,13 +886,13 @@ static gboolean trans_property_list_verify_essentials(TransPropertyList* list, g
* @param error Contains an error on failure
* @return On success, a GncCsvTransLine; on failure, the trans pointer is NULL
*/
-static GncCsvTransLine* trans_property_list_to_trans(TransPropertyList* list, gchar** error)
+static GncCsvTransLine* trans_property_list_to_trans (TransPropertyList* list, gchar** error)
{
- GncCsvTransLine* trans_line = g_new(GncCsvTransLine, 1);
+ GncCsvTransLine* trans_line = g_new (GncCsvTransLine, 1);
GList* properties_begin = list->properties;
- QofBook* book = gnc_account_get_book(list->account);
- gnc_commodity* currency = xaccAccountGetCommodity(list->account);
- gnc_numeric amount = double_to_gnc_numeric(0.0, xaccAccountGetCommoditySCU(list->account),
+ QofBook* book = gnc_account_get_book (list->account);
+ gnc_commodity* currency = xaccAccountGetCommodity (list->account);
+ gnc_numeric amount = double_to_gnc_numeric (0.0, xaccAccountGetCommoditySCU (list->account),
GNC_HOW_RND_ROUND_HALF_UP);
gchar *num = NULL;
@@ -910,15 +910,15 @@ static GncCsvTransLine* trans_property_list_to_trans(TransPropertyList* list, gc
trans_line->line_no = -1;
/* Make sure this is a transaction with all the columns we need. */
- if (!trans_property_list_verify_essentials(list, error))
+ if (!trans_property_list_verify_essentials (list, error))
{
g_free(trans_line);
return NULL;
}
- trans_line->trans = xaccMallocTransaction(book);
- xaccTransBeginEdit(trans_line->trans);
- xaccTransSetCurrency(trans_line->trans, currency);
+ trans_line->trans = xaccMallocTransaction (book);
+ xaccTransBeginEdit (trans_line->trans);
+ xaccTransSetCurrency (trans_line->trans, currency);
/* Go through each of the properties and edit the transaction accordingly. */
list->properties = properties_begin;
@@ -928,15 +928,15 @@ static GncCsvTransLine* trans_property_list_to_trans(TransPropertyList* list, gc
switch (prop->type)
{
case GNC_CSV_DATE:
- xaccTransSetDatePostedSecsNormalized(trans_line->trans, *((time64*)(prop->value)));
+ xaccTransSetDatePostedSecsNormalized (trans_line->trans, *((time64*)(prop->value)));
break;
case GNC_CSV_DESCRIPTION:
- xaccTransSetDescription(trans_line->trans, (char*)(prop->value));
+ xaccTransSetDescription (trans_line->trans, (char*)(prop->value));
break;
case GNC_CSV_NOTES:
- xaccTransSetNotes(trans_line->trans, (char*)(prop->value));
+ xaccTransSetNotes (trans_line->trans, (char*)(prop->value));
break;
case GNC_CSV_NUM:
@@ -953,9 +953,9 @@ static GncCsvTransLine* trans_property_list_to_trans(TransPropertyList* list, gc
case GNC_CSV_DEPOSIT: /* Add deposits to the existing amount. */
if (prop->value != NULL)
{
- amount = gnc_numeric_add(*((gnc_numeric*)(prop->value)),
+ amount = gnc_numeric_add (*((gnc_numeric*)(prop->value)),
amount,
- xaccAccountGetCommoditySCU(list->account),
+ xaccAccountGetCommoditySCU (list->account),
GNC_HOW_RND_ROUND_HALF_UP);
amount_set = TRUE;
/* We will use the "Deposit" and "Withdrawal" columns in preference to "Balance". */
@@ -966,9 +966,9 @@ static GncCsvTransLine* trans_property_list_to_trans(TransPropertyList* list, gc
case GNC_CSV_WITHDRAWAL: /* Withdrawals are just negative deposits. */
if (prop->value != NULL)
{
- amount = gnc_numeric_add(gnc_numeric_neg(*((gnc_numeric*)(prop->value))),
+ amount = gnc_numeric_add (gnc_numeric_neg(*((gnc_numeric*)(prop->value))),
amount,
- xaccAccountGetCommoditySCU(list->account),
+ xaccAccountGetCommoditySCU (list->account),
GNC_HOW_RND_ROUND_HALF_UP);
amount_set = TRUE;
/* We will use the "Deposit" and "Withdrawal" columns in preference to "Balance". */
@@ -986,13 +986,13 @@ static GncCsvTransLine* trans_property_list_to_trans(TransPropertyList* list, gc
}
break;
}
- list->properties = g_list_next(list->properties);
+ list->properties = g_list_next (list->properties);
}
/* Add a split with the cumulative amount value. */
- trans_add_split(trans_line->trans, list->account, book, amount, num);
+ trans_add_split (trans_line->trans, list->account, book, amount, num);
if (num)
- g_free(num);
+ g_free (num);
return trans_line;
}
@@ -1007,7 +1007,7 @@ static GncCsvTransLine* trans_property_list_to_trans(TransPropertyList* list, gc
* @param redo_errors TRUE to convert only error data, FALSE for all data
* @return 0 on success, 1 on failure
*/
-int gnc_csv_parse_to_trans(GncCsvParseData* parse_data, Account* account,
+int gnc_csv_parse_to_trans (GncCsvParseData* parse_data, Account* account,
gboolean redo_errors)
{
gboolean hasBalanceColumn;
@@ -1033,7 +1033,7 @@ int gnc_csv_parse_to_trans(GncCsvParseData* parse_data, Account* account,
}
if (parse_data->transactions != NULL)
{
- g_list_free(parse_data->transactions);
+ g_list_free (parse_data->transactions);
}
}
parse_data->error_lines = NULL;
@@ -1048,9 +1048,9 @@ int gnc_csv_parse_to_trans(GncCsvParseData* parse_data, Account* account,
{
/* Move last_transaction to the end. */
last_transaction = parse_data->transactions;
- while (g_list_next(last_transaction) != NULL)
+ while (g_list_next (last_transaction) != NULL)
{
- last_transaction = g_list_next(last_transaction);
+ last_transaction = g_list_next (last_transaction);
}
}
/* ... we use only the lines in error_lines. */
@@ -1077,7 +1077,7 @@ int gnc_csv_parse_to_trans(GncCsvParseData* parse_data, Account* account,
/* This flag is TRUE if there are any errors in this row. */
gboolean errors = FALSE;
gchar* error_message = NULL;
- TransPropertyList* list = trans_property_list_new(account, parse_data->date_format, parse_data->currency_format );
+ TransPropertyList* list = trans_property_list_new (account, parse_data->date_format, parse_data->currency_format );
GncCsvTransLine* trans_line = NULL;
for (j = 0; j < line->len; j++)
@@ -1086,20 +1086,20 @@ int gnc_csv_parse_to_trans(GncCsvParseData* parse_data, Account* account,
if ((column_types->data[j] != GNC_CSV_NONE) && (column_types->data[j] != GNC_CSV_ACCOUNT))
{
/* Affect the transaction appropriately. */
- TransProperty* property = trans_property_new(column_types->data[j], list);
- gboolean succeeded = trans_property_set(property, line->pdata[j]);
+ TransProperty* property = trans_property_new (column_types->data[j], list);
+ gboolean succeeded = trans_property_set (property, line->pdata[j]);
/* TODO Maybe move error handling to within TransPropertyList functions? */
if (succeeded)
{
- trans_property_list_add(property);
+ trans_property_list_add (property);
}
else
{
errors = TRUE;
- error_message = g_strdup_printf(_("%s column could not be understood."),
+ error_message = g_strdup_printf (_("%s column could not be understood."),
_(gnc_csv_column_type_strs[property->type]));
- trans_property_free(property);
+ trans_property_free (property);
break;
}
}
@@ -1108,16 +1108,16 @@ int gnc_csv_parse_to_trans(GncCsvParseData* parse_data, Account* account,
/* If we had success, add the transaction to parse_data->transaction. */
if (!errors)
{
- trans_line = trans_property_list_to_trans(list, &error_message);
+ trans_line = trans_property_list_to_trans (list, &error_message);
errors = trans_line == NULL;
}
- trans_property_list_free(list);
+ trans_property_list_free (list);
/* If there were errors, add this line to parse_data->error_lines. */
if (errors)
{
- parse_data->error_lines = g_list_append(parse_data->error_lines,
+ parse_data->error_lines = g_list_append (parse_data->error_lines,
GINT_TO_POINTER(i));
/* If there's already an error message, we need to replace it. */
if (line->len > (int)(parse_data->orig_row_lengths->data[i]))
@@ -1128,7 +1128,7 @@ int gnc_csv_parse_to_trans(GncCsvParseData* parse_data, Account* account,
else
{
/* Put the error message at the end of the line. */
- g_ptr_array_add(line, error_message);
+ g_ptr_array_add (line, error_message);
}
}
else
@@ -1143,32 +1143,32 @@ int gnc_csv_parse_to_trans(GncCsvParseData* parse_data, Account* account,
/* If we can just put it at the end, do so and increment last_transaction. */
if (last_transaction == NULL ||
- xaccTransGetDate(((GncCsvTransLine*)(last_transaction->data))->trans) <= xaccTransGetDate(trans_line->trans))
+ xaccTransGetDate (((GncCsvTransLine*)(last_transaction->data))->trans) <= xaccTransGetDate (trans_line->trans))
{
- parse_data->transactions = g_list_append(parse_data->transactions, trans_line);
+ parse_data->transactions = g_list_append (parse_data->transactions, trans_line);
/* If this is the first transaction, we need to get last_transaction on track. */
if (last_transaction == NULL)
last_transaction = parse_data->transactions;
else /* Otherwise, we can just continue. */
- last_transaction = g_list_next(last_transaction);
+ last_transaction = g_list_next (last_transaction);
}
/* Otherwise, search backward for the correct spot. */
else
{
GList* insertion_spot = last_transaction;
while (insertion_spot != NULL &&
- xaccTransGetDate(((GncCsvTransLine*)(insertion_spot->data))->trans) > xaccTransGetDate(trans_line->trans))
+ xaccTransGetDate (((GncCsvTransLine*)(insertion_spot->data))->trans) > xaccTransGetDate (trans_line->trans))
{
- insertion_spot = g_list_previous(insertion_spot);
+ insertion_spot = g_list_previous (insertion_spot);
}
/* Move insertion_spot one location forward since we have to
* use the g_list_insert_before function. */
if (insertion_spot == NULL) /* We need to handle the case of inserting at the beginning of the list. */
insertion_spot = parse_data->transactions;
else
- insertion_spot = g_list_next(insertion_spot);
+ insertion_spot = g_list_next (insertion_spot);
- parse_data->transactions = g_list_insert_before(parse_data->transactions, insertion_spot, trans_line);
+ parse_data->transactions = g_list_insert_before (parse_data->transactions, insertion_spot, trans_line);
}
}
@@ -1176,7 +1176,7 @@ int gnc_csv_parse_to_trans(GncCsvParseData* parse_data, Account* account,
if (redo_errors)
{
/* Move to the next error line in the list. */
- error_lines = g_list_next(error_lines);
+ error_lines = g_list_next (error_lines);
if (error_lines == NULL)
i = parse_data->orig_lines->len; /* Don't continue the for loop. */
else
@@ -1207,53 +1207,53 @@ int gnc_csv_parse_to_trans(GncCsvParseData* parse_data, Account* account,
* differs from what it will be after the transactions are
* imported. This will be sum of all the previous transactions for
* any given transaction. */
- gnc_numeric balance_offset = double_to_gnc_numeric(0.0,
- xaccAccountGetCommoditySCU(account),
+ gnc_numeric balance_offset = double_to_gnc_numeric (0.0,
+ xaccAccountGetCommoditySCU (account),
GNC_HOW_RND_ROUND_HALF_UP);
while (transactions != NULL)
{
GncCsvTransLine* trans_line = (GncCsvTransLine*)transactions->data;
if (trans_line->balance_set)
{
- time64 date = xaccTransGetDate(trans_line->trans);
+ time64 date = xaccTransGetDate (trans_line->trans);
/* Find what the balance should be by adding the offset to the actual balance. */
- gnc_numeric existing_balance = gnc_numeric_add(balance_offset,
- xaccAccountGetBalanceAsOfDate(account, date),
- xaccAccountGetCommoditySCU(account),
+ gnc_numeric existing_balance = gnc_numeric_add (balance_offset,
+ xaccAccountGetBalanceAsOfDate (account, date),
+ xaccAccountGetCommoditySCU (account),
GNC_HOW_RND_ROUND_HALF_UP);
/* The amount of the transaction is the difference between the new and existing balance. */
- gnc_numeric amount = gnc_numeric_sub(trans_line->balance,
+ gnc_numeric amount = gnc_numeric_sub (trans_line->balance,
existing_balance,
- xaccAccountGetCommoditySCU(account),
+ xaccAccountGetCommoditySCU (account),
GNC_HOW_RND_ROUND_HALF_UP);
- SplitList* splits = xaccTransGetSplitList(trans_line->trans);
+ SplitList* splits = xaccTransGetSplitList (trans_line->trans);
while (splits)
{
- SplitList* next_splits = g_list_next(splits);
- xaccSplitDestroy((Split*)splits->data);
+ SplitList* next_splits = g_list_next (splits);
+ xaccSplitDestroy ((Split*)splits->data);
splits = next_splits;
}
- trans_add_split(trans_line->trans, account,
- gnc_account_get_book(account), amount, trans_line->num);
+ trans_add_split (trans_line->trans, account,
+ gnc_account_get_book (account), amount, trans_line->num);
if (trans_line->num)
- g_free(trans_line->num);
+ g_free (trans_line->num);
/* This new transaction needs to be added to the balance offset. */
- balance_offset = gnc_numeric_add(balance_offset,
+ balance_offset = gnc_numeric_add (balance_offset,
amount,
- xaccAccountGetCommoditySCU(account),
+ xaccAccountGetCommoditySCU (account),
GNC_HOW_RND_ROUND_HALF_UP);
}
- transactions = g_list_next(transactions);
+ transactions = g_list_next (transactions);
}
}
if (redo_errors) /* Now that we're at the end, we do the freeing. */
{
- g_list_free(begin_error_lines);
+ g_list_free (begin_error_lines);
}
/* We need to resize parse_data->column_types since errors may have added columns. */
@@ -1263,7 +1263,7 @@ int gnc_csv_parse_to_trans(GncCsvParseData* parse_data, Account* account,
max_cols = ((GPtrArray*)(parse_data->orig_lines->pdata[i]))->len;
}
i = parse_data->column_types->len;
- parse_data->column_types = g_array_set_size(parse_data->column_types, max_cols);
+ parse_data->column_types = g_array_set_size (parse_data->column_types, max_cols);
for (; i < max_cols; i++)
{
parse_data->column_types->data[i] = GNC_CSV_NONE;
diff --git a/src/import-export/csv-imp/gnc-csv-model.h b/src/import-export/csv-imp/gnc-csv-model.h
index 390682a..ba8f6da 100644
--- a/src/import-export/csv-imp/gnc-csv-model.h
+++ b/src/import-export/csv-imp/gnc-csv-model.h
@@ -118,19 +118,19 @@ typedef struct
int currency_format; /**< The currency format, 0 for locale, 1 for comma dec and 2 for period */
} GncCsvParseData;
-GncCsvParseData* gnc_csv_new_parse_data(void);
+GncCsvParseData* gnc_csv_new_parse_data (void);
-void gnc_csv_parse_data_free(GncCsvParseData* parse_data);
+void gnc_csv_parse_data_free (GncCsvParseData* parse_data);
-int gnc_csv_load_file(GncCsvParseData* parse_data, const char* filename,
+int gnc_csv_load_file (GncCsvParseData* parse_data, const char* filename,
GError** error);
-int gnc_csv_convert_encoding(GncCsvParseData* parse_data, const char* encoding, GError** error);
+int gnc_csv_convert_encoding (GncCsvParseData* parse_data, const char* encoding, GError** error);
-int gnc_csv_parse(GncCsvParseData* parse_data, gboolean guessColTypes, GError** error);
+int gnc_csv_parse (GncCsvParseData* parse_data, gboolean guessColTypes, GError** error);
-int gnc_csv_parse_to_trans(GncCsvParseData* parse_data, Account* account, gboolean redo_errors);
+int gnc_csv_parse_to_trans (GncCsvParseData* parse_data, Account* account, gboolean redo_errors);
-time64 parse_date(const char* date_str, int format);
+time64 parse_date (const char* date_str, int format);
#endif
commit ba1f8cb1c62ff8a335c6499b8aa1bdddb5b24030
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Fri Sep 19 14:06:59 2014 +0100
Part Bug fix for 729476, this changes the line endings to \r\n to make it more compatible with CSV format.
diff --git a/src/import-export/csv-exp/csv-transactions-export.c b/src/import-export/csv-exp/csv-transactions-export.c
index 4be3c84..b09d785 100644
--- a/src/import-export/csv-exp/csv-transactions-export.c
+++ b/src/import-export/csv-exp/csv-transactions-export.c
@@ -256,7 +256,11 @@ void account_splits (CsvExportInfo *info, Account *acc, FILE *fh )
g_free (part1);
/* From Number Only */
+#ifdef G_OS_WIN32
part1 = g_strconcat (part2, "", mid_sep, "", mid_sep, "", end_sep, "\n", NULL);
+#else
+ part1 = g_strconcat (part2, "", mid_sep, "", mid_sep, "", end_sep, "\r\n", NULL);
+#endif
g_free (part2);
/* Write to file */
@@ -346,9 +350,17 @@ void account_splits (CsvExportInfo *info, Account *acc, FILE *fh )
split_amount = xaccPrintAmount (xaccSplitGetSharePrice (t_split), gnc_split_amount_print_info (t_split, FALSE));
str_temp = csv_txn_test_field_string (info, split_amount);
if (xaccSplitGetAccount (t_split) == acc)
+#ifdef G_OS_WIN32
part2 = g_strconcat (part1, str_temp, mid_sep, end_sep, "\n", NULL);
- else
+#else
+ part2 = g_strconcat (part1, str_temp, mid_sep, end_sep, "\r\n", NULL);
+#endif
+ else
+#ifdef G_OS_WIN32
part2 = g_strconcat (part1, mid_sep, str_temp, end_sep, "\n", NULL);
+#else
+ part2 = g_strconcat (part1, mid_sep, str_temp, end_sep, "\r\n", NULL);
+#endif
g_free (str_temp);
g_free (part1);
@@ -415,7 +427,11 @@ void csv_transactions_export (CsvExportInfo *info)
_("To With Sym"), mid_sep, _("From With Sym"), mid_sep,
_("To Num."), mid_sep, _("From Num."), mid_sep,
_("To Rate/Price"), mid_sep, _("From Rate/Price"),
+#ifdef G_OS_WIN32
end_sep, "\n", NULL);
+#else
+ end_sep, "\r\n", NULL);
+#endif
DEBUG("Header String: %s", header);
/* Write header line */
diff --git a/src/import-export/csv-exp/csv-tree-export.c b/src/import-export/csv-exp/csv-tree-export.c
index f07b49c..da4ab74 100644
--- a/src/import-export/csv-exp/csv-tree-export.c
+++ b/src/import-export/csv-exp/csv-tree-export.c
@@ -144,12 +144,19 @@ void csv_tree_export (CsvExportInfo *info)
}
/* Header string, 'eol = end of line marker' */
- header = g_strconcat ( end_sep, _("type"), mid_sep, _("full_name"), mid_sep,
- _("name"), mid_sep, _("code"), mid_sep,
- _("description"), mid_sep, _("color"), mid_sep, _("notes"), mid_sep,
- _("commoditym"), mid_sep, _("commodityn"), mid_sep,
- _("hidden"), mid_sep, _("tax"), mid_sep, _("place_holder"), mid_sep,
- _("#eol"), end_sep, "\n", NULL);
+#ifdef G_OS_WIN32
+ header = g_strconcat (end_sep, _("type"), mid_sep, _("full_name"), mid_sep, _("name"), mid_sep,
+ _("code"), mid_sep, _("description"), mid_sep, _("color"), mid_sep,
+ _("notes"), mid_sep, _("commoditym"), mid_sep, _("commodityn"), mid_sep,
+ _("hidden"), mid_sep, _("tax"), mid_sep, _("place_holder"), mid_sep, _("#eol"),
+ end_sep, "\n", NULL);
+#else
+ header = g_strconcat (end_sep, _("type"), mid_sep, _("full_name"), mid_sep, _("name"), mid_sep,
+ _("code"), mid_sep, _("description"), mid_sep, _("color"), mid_sep,
+ _("notes"), mid_sep, _("commoditym"), mid_sep, _("commodityn"), mid_sep,
+ _("hidden"), mid_sep, _("tax"), mid_sep, _("place_holder"), mid_sep, _("#eol"),
+ end_sep, "\r\n", NULL);
+#endif
DEBUG("Header String: %s", header);
/* Write header line */
@@ -229,7 +236,11 @@ void csv_tree_export (CsvExportInfo *info)
g_free (part2);
/* Place Holder / end of line marker */
currentSel = xaccAccountGetPlaceholder (acc) ? "T" : "F" ;
+#ifdef G_OS_WIN32
part2 = g_strconcat (part1, currentSel, mid_sep, _("#eol"), end_sep, "\n", NULL);
+#else
+ part2 = g_strconcat (part1, currentSel, mid_sep, _("#eol"), end_sep, "\r\n", NULL);
+#endif
g_free (part1);
DEBUG("Account String: %s", part2);
diff --git a/src/import-export/csv-imp/csv-account-import.c b/src/import-export/csv-imp/csv-account-import.c
index 68e73a8..58e62d4 100644
--- a/src/import-export/csv-imp/csv-account-import.c
+++ b/src/import-export/csv-imp/csv-account-import.c
@@ -119,8 +119,13 @@ csv_import_read_file (const gchar *filename, const gchar *parser_regexp,
}
/* Setup the two different line endings */
+#ifdef G_OS_WIN32
end1 = g_strconcat (_("#eol"),"\"\n", NULL);
end2 = g_strconcat (_("#eol"),"\n", NULL);
+#else
+ end1 = g_strconcat (_("#eol"),"\"\r\n", NULL);
+ end2 = g_strconcat (_("#eol"),"\r\n", NULL);
+#endif
// start the import
#define buffer_size 1000
@@ -154,11 +159,14 @@ csv_import_read_file (const gchar *filename, const gchar *parser_regexp,
break; // eof
}
- // now strip the '\n' from the end of the line
+ // now strip the '\r\n' from the end of the line
l = strlen (currentline);
if ((l > 0) && (currentline[l - 1] == '\n'))
currentline[l - 1] = 0;
+ if ((l > 0) && (currentline[l - 2] == '\r'))
+ currentline[l - 2] = 0;
+
// convert line from locale into utf8
line_utf8 = g_locale_to_utf8 (currentline, -1, NULL, NULL, NULL);
commit 2b6a6d896caf83ebcb2a42bcbbcdad698c4d8b53
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Fri Sep 19 11:36:21 2014 +0100
Part Bug fix for 729476, this fixes the quoting of quotes, newlines and separator to make it more compatible with CSV format.
diff --git a/src/import-export/csv-exp/csv-transactions-export.c b/src/import-export/csv-exp/csv-transactions-export.c
index c794af6..4be3c84 100644
--- a/src/import-export/csv-exp/csv-transactions-export.c
+++ b/src/import-export/csv-exp/csv-transactions-export.c
@@ -68,6 +68,43 @@ gboolean write_line_to_file (FILE *fh, char * line)
/*******************************************************
+ * csv_txn_test_field_string
+ *
+ * Test the field string for ," and new lines
+ *******************************************************/
+static
+gchar *csv_txn_test_field_string (CsvExportInfo *info, const gchar *string_in)
+{
+ gboolean need_quote = FALSE;
+ gchar **parts;
+ gchar *string_parts;
+ gchar *string_out;
+
+ /* Check for " and then "" them */
+ parts = g_strsplit (string_in, "\"", -1);
+ string_parts = g_strjoinv ("\"\"", parts);
+ g_strfreev (parts);
+
+ /* Check for separator string and \n and " in field,
+ if so quote field if not allready quoted */
+ if (g_strrstr (string_parts, info->separator_str) != NULL)
+ need_quote = TRUE;
+ if (g_strrstr (string_parts, "\n") != NULL)
+ need_quote = TRUE;
+ if (g_strrstr (string_parts, "\"") != NULL)
+ need_quote = TRUE;
+
+ if (!info->use_quotes && need_quote)
+ string_out = g_strconcat ("\"", string_parts, "\"", NULL);
+ else
+ string_out = g_strdup (string_parts);
+
+ g_free (string_parts);
+ return string_out;
+}
+
+
+/*******************************************************
* account_splits
*
* gather the splits / transactions for an account and
@@ -124,6 +161,7 @@ void account_splits (CsvExportInfo *info, Account *acc, FILE *fh )
gchar *date;
const gchar *currentSel;
const gchar *split_amount;
+ gchar *str_temp = NULL;
split = splits->data;
trans = xaccSplitGetParent(split);
@@ -131,40 +169,51 @@ void account_splits (CsvExportInfo *info, Account *acc, FILE *fh )
s_list = xaccTransGetSplitList(trans);
/* Date */
- date = qof_print_date ( xaccTransGetDate(trans));
- part1 = g_strconcat ( end_sep, date, mid_sep, NULL);
- g_free(date);
+ date = qof_print_date (xaccTransGetDate (trans));
+ part1 = g_strconcat (end_sep, date, mid_sep, NULL);
+ g_free (date);
/* Name */
- currentSel = xaccAccountGetName(acc);
- part2 = g_strconcat ( part1, currentSel, mid_sep, NULL);
- g_free(part1);
+ currentSel = xaccAccountGetName (acc);
+ str_temp = csv_txn_test_field_string (info, currentSel);
+ part2 = g_strconcat (part1, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part1);
/* Number */
- currentSel = gnc_get_num_action(trans, NULL);
- part1 = g_strconcat ( part2, currentSel, mid_sep, NULL);
- g_free(part2);
+ currentSel = gnc_get_num_action (trans, NULL);
+ str_temp = csv_txn_test_field_string (info, currentSel);
+ part1 = g_strconcat (part2, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part2);
/* Description */
- currentSel = xaccTransGetDescription(trans);
- part2 = g_strconcat ( part1, currentSel, mid_sep, NULL);
- g_free(part1);
+ currentSel = xaccTransGetDescription (trans) ? xaccTransGetDescription (trans) : "" ;
+ str_temp = csv_txn_test_field_string (info, currentSel);
+ part2 = g_strconcat (part1, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part1);
/* Notes */
- currentSel = xaccTransGetNotes(trans);
- if (currentSel == NULL)
- part1 = g_strconcat ( part2, mid_sep, NULL);
- else
- part1 = g_strconcat ( part2, currentSel, mid_sep, NULL);
- g_free(part2);
+ currentSel = xaccTransGetNotes (trans) ? xaccTransGetNotes (trans) : "" ;
+ str_temp = csv_txn_test_field_string (info, currentSel);
+ part1 = g_strconcat (part2, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part2);
/* Memo */
- currentSel = xaccSplitGetMemo(split);
- part2 = g_strconcat ( part1, currentSel, mid_sep, NULL);
- g_free(part1);
+ currentSel = xaccSplitGetMemo (split) ? xaccSplitGetMemo (split) : "" ;
+ str_temp = csv_txn_test_field_string (info, currentSel);
+ part2 = g_strconcat (part1, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part1);
/* Category */
- currentSel = xaccSplitGetCorrAccountName(split);
- part1 = g_strconcat ( part2, currentSel, mid_sep, "T", mid_sep, NULL);
- g_free(part2);
+ currentSel = xaccSplitGetCorrAccountName (split);
+ str_temp = csv_txn_test_field_string (info, currentSel);
+ part1 = g_strconcat (part2, str_temp, mid_sep, "T", mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part2);
/* Action */
- currentSel = gnc_get_num_action(NULL, split);
- part2 = g_strconcat ( part1, currentSel, mid_sep, NULL);
- g_free(part1);
+ currentSel = gnc_get_num_action (NULL, split);
+ str_temp = csv_txn_test_field_string (info, currentSel);
+ part2 = g_strconcat (part1, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part1);
/* Reconcile */
switch (xaccSplitGetReconcile (split))
{
@@ -186,25 +235,29 @@ void account_splits (CsvExportInfo *info, Account *acc, FILE *fh )
default:
currentSel = "N";
}
- part1 = g_strconcat ( part2, currentSel, mid_sep, NULL);
- g_free(part2);
+ part1 = g_strconcat (part2, currentSel, mid_sep, NULL);
+ g_free (part2);
/* To with Symbol */
- split_amount = xaccPrintAmount(xaccSplitGetAmount(split), gnc_split_amount_print_info(split, TRUE));
- part2 = g_strconcat ( part1, split_amount, mid_sep, NULL);
- g_free(part1);
+ split_amount = xaccPrintAmount (xaccSplitGetAmount (split), gnc_split_amount_print_info (split, TRUE));
+ str_temp = csv_txn_test_field_string (info, split_amount);
+ part2 = g_strconcat (part1, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part1);
/* From with Symbol */
- part1 = g_strconcat ( part2, "", mid_sep, NULL);
- g_free(part2);
+ part1 = g_strconcat (part2, "", mid_sep, NULL);
+ g_free (part2);
/* To Number Only */
- split_amount = xaccPrintAmount(xaccSplitGetAmount(split), gnc_split_amount_print_info(split, FALSE));
- part2 = g_strconcat ( part1, split_amount, mid_sep, NULL);
- g_free(part1);
+ split_amount = xaccPrintAmount (xaccSplitGetAmount (split), gnc_split_amount_print_info (split, FALSE));
+ str_temp = csv_txn_test_field_string (info, split_amount);
+ part2 = g_strconcat (part1, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part1);
/* From Number Only */
- part1 = g_strconcat ( part2, "", mid_sep, "", mid_sep, "", end_sep, "\n", NULL);
- g_free(part2);
+ part1 = g_strconcat (part2, "", mid_sep, "", mid_sep, "", end_sep, "\n", NULL);
+ g_free (part2);
/* Write to file */
if (!write_line_to_file(fh, part1))
@@ -212,7 +265,7 @@ void account_splits (CsvExportInfo *info, Account *acc, FILE *fh )
info->failed = TRUE;
break;
}
- g_free(part1);
+ g_free (part1);
/* Loop through the list of splits for the Transcation */
node = s_list;
@@ -225,19 +278,25 @@ void account_splits (CsvExportInfo *info, Account *acc, FILE *fh )
part1 = g_strconcat ( end_sep, mid_sep, mid_sep, mid_sep, mid_sep, mid_sep, NULL);
/* Memo */
- currentSel = xaccSplitGetMemo(t_split);
- part2 = g_strconcat ( part1, currentSel, mid_sep, NULL);
- g_free(part1);
+ currentSel = xaccSplitGetMemo (t_split) ? xaccSplitGetMemo (t_split) : "" ;
+ str_temp = csv_txn_test_field_string (info, currentSel);
+ part2 = g_strconcat (part1, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part1);
/* Account */
- currentSel = xaccAccountGetName( xaccSplitGetAccount(t_split));
- part1 = g_strconcat ( part2, currentSel, mid_sep, "S", mid_sep, NULL);
- g_free(part2);
+ currentSel = xaccAccountGetName (xaccSplitGetAccount (t_split));
+ str_temp = csv_txn_test_field_string (info, currentSel);
+ part1 = g_strconcat (part2, str_temp, mid_sep, "S", mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part2);
/* Action */
- currentSel = gnc_get_num_action(NULL, t_split);
- part2 = g_strconcat ( part1, currentSel, mid_sep, NULL);
- g_free(part1);
+ currentSel = gnc_get_num_action (NULL, t_split);
+ str_temp = csv_txn_test_field_string (info, currentSel);
+ part2 = g_strconcat (part1, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part1);
/* Reconcile */
switch (xaccSplitGetReconcile (split))
@@ -260,44 +319,50 @@ void account_splits (CsvExportInfo *info, Account *acc, FILE *fh )
default:
currentSel = "N";
}
- part1 = g_strconcat ( part2, currentSel, mid_sep, NULL);
- g_free(part2);
+ part1 = g_strconcat (part2, currentSel, mid_sep, NULL);
+ g_free (part2);
/* From / To with Symbol */
- split_amount = xaccPrintAmount(xaccSplitGetAmount(t_split), gnc_split_amount_print_info(t_split, TRUE));
+ split_amount = xaccPrintAmount (xaccSplitGetAmount (t_split), gnc_split_amount_print_info (t_split, TRUE));
+ str_temp = csv_txn_test_field_string (info, split_amount);
if (xaccSplitGetAccount(t_split) == acc)
- part2 = g_strconcat ( part1, split_amount, mid_sep, mid_sep, NULL);
+ part2 = g_strconcat (part1, str_temp, mid_sep, mid_sep, NULL);
else
- part2 = g_strconcat ( part1, mid_sep, split_amount, mid_sep, NULL);
- g_free(part1);
+ part2 = g_strconcat (part1, mid_sep, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part1);
/* From / To Numbers only */
- split_amount = xaccPrintAmount(xaccSplitGetAmount(t_split), gnc_split_amount_print_info(t_split, FALSE));
- if (xaccSplitGetAccount(t_split) == acc)
- part1 = g_strconcat ( part2, split_amount, mid_sep, mid_sep, NULL);
+ split_amount = xaccPrintAmount (xaccSplitGetAmount (t_split), gnc_split_amount_print_info (t_split, FALSE));
+ str_temp = csv_txn_test_field_string (info, split_amount);
+ if (xaccSplitGetAccount (t_split) == acc)
+ part1 = g_strconcat (part2, str_temp, mid_sep, mid_sep, NULL);
else
- part1 = g_strconcat ( part2, mid_sep, split_amount, mid_sep, NULL);
- g_free(part2);
+ part1 = g_strconcat (part2, mid_sep, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part2);
/* From / To - Share Price / Conversion factor */
- split_amount = xaccPrintAmount(xaccSplitGetSharePrice(t_split), gnc_split_amount_print_info(t_split, FALSE));
- if (xaccSplitGetAccount(t_split) == acc)
- part2 = g_strconcat ( part1, split_amount, mid_sep, end_sep, "\n", NULL);
+ split_amount = xaccPrintAmount (xaccSplitGetSharePrice (t_split), gnc_split_amount_print_info (t_split, FALSE));
+ str_temp = csv_txn_test_field_string (info, split_amount);
+ if (xaccSplitGetAccount (t_split) == acc)
+ part2 = g_strconcat (part1, str_temp, mid_sep, end_sep, "\n", NULL);
else
- part2 = g_strconcat ( part1, mid_sep, split_amount, end_sep, "\n", NULL);
- g_free(part1);
+ part2 = g_strconcat (part1, mid_sep, str_temp, end_sep, "\n", NULL);
+ g_free (str_temp);
+ g_free (part1);
- if (!write_line_to_file(fh, part2))
+ if (!write_line_to_file (fh, part2))
info->failed = TRUE;
- g_free(part2);
+ g_free (part2);
cnt++;
node = node->next;
}
}
- g_free(mid_sep);
+ g_free (mid_sep);
qof_query_destroy (q);
- g_list_free( splits );
+ g_list_free (splits);
}
diff --git a/src/import-export/csv-exp/csv-tree-export.c b/src/import-export/csv-exp/csv-tree-export.c
index 92a2850..f07b49c 100644
--- a/src/import-export/csv-exp/csv-tree-export.c
+++ b/src/import-export/csv-exp/csv-tree-export.c
@@ -62,6 +62,41 @@ gboolean write_line_to_file ( FILE *fh, char * line)
return TRUE;
}
+/*******************************************************
+ * csv_test_field_string
+ *
+ * Test the field string for ," and new lines
+ *******************************************************/
+static
+gchar *csv_test_field_string (CsvExportInfo *info, const gchar *string_in)
+{
+ gboolean need_quote = FALSE;
+ gchar **parts;
+ gchar *string_parts;
+ gchar *string_out;
+
+ /* Check for " and then "" them */
+ parts = g_strsplit (string_in, "\"", -1);
+ string_parts = g_strjoinv ("\"\"", parts);
+ g_strfreev (parts);
+
+ /* Check for separator string and \n and " in field,
+ if so quote field if not allready quoted */
+ if (g_strrstr (string_parts, info->separator_str) != NULL)
+ need_quote = TRUE;
+ if (g_strrstr (string_parts, "\n") != NULL)
+ need_quote = TRUE;
+ if (g_strrstr (string_parts, "\"") != NULL)
+ need_quote = TRUE;
+
+ if (!info->use_quotes && need_quote)
+ string_out = g_strconcat ("\"", string_parts, "\"", NULL);
+ else
+ string_out = g_strdup (string_parts);
+
+ g_free (string_parts);
+ return string_out;
+}
/*******************************************************
* csv_tree_export
@@ -108,12 +143,13 @@ void csv_tree_export (CsvExportInfo *info)
mid_sep = g_strconcat ( info->separator_str, NULL);
}
- /* Header string */
+ /* Header string, 'eol = end of line marker' */
header = g_strconcat ( end_sep, _("type"), mid_sep, _("full_name"), mid_sep,
_("name"), mid_sep, _("code"), mid_sep,
_("description"), mid_sep, _("color"), mid_sep, _("notes"), mid_sep,
_("commoditym"), mid_sep, _("commodityn"), mid_sep,
- _("hidden"), mid_sep, _("tax"), mid_sep, _("place_holder"), end_sep, "\n", NULL);
+ _("hidden"), mid_sep, _("tax"), mid_sep, _("place_holder"), mid_sep,
+ _("#eol"), end_sep, "\n", NULL);
DEBUG("Header String: %s", header);
/* Write header line */
@@ -130,67 +166,71 @@ void csv_tree_export (CsvExportInfo *info)
for (ptr = accts, i = 0; ptr; ptr = g_list_next(ptr), i++)
{
gchar *fullname = NULL;
- gchar *notes_out = NULL;
+ gchar *str_temp = NULL;
acc = ptr->data;
DEBUG("Account being processed is : %s", xaccAccountGetName(acc));
/* Type */
- currentSel = xaccAccountTypeEnumAsString( xaccAccountGetType (acc));
- part1 = g_strconcat ( end_sep, currentSel, mid_sep, NULL);
+ currentSel = xaccAccountTypeEnumAsString (xaccAccountGetType (acc));
+ part1 = g_strconcat (end_sep, currentSel, mid_sep, NULL);
/* Full Name */
- fullname = gnc_account_get_full_name(acc);
- part2 = g_strconcat ( part1, fullname, mid_sep, NULL);
- g_free(fullname);
- g_free(part1);
+ fullname = gnc_account_get_full_name (acc);
+ str_temp = csv_test_field_string (info, fullname);
+ part2 = g_strconcat (part1, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (fullname);
+ g_free (part1);
/* Name */
- currentSel = xaccAccountGetName(acc);
- part1 = g_strconcat ( part2, currentSel, mid_sep, NULL);
- g_free(part2);
+ currentSel = xaccAccountGetName (acc);
+ str_temp = csv_test_field_string (info, currentSel);
+ part1 = g_strconcat (part2, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part2);
/* Code */
- currentSel = xaccAccountGetCode(acc) ? xaccAccountGetCode(acc) : "" ;
- part2 = g_strconcat ( part1, currentSel, mid_sep, NULL);
- g_free(part1);
+ currentSel = xaccAccountGetCode (acc) ? xaccAccountGetCode (acc) : "";
+ str_temp = csv_test_field_string (info, currentSel);
+ part2 = g_strconcat (part1, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part1);
/* Description */
- currentSel = xaccAccountGetDescription(acc) ? xaccAccountGetDescription(acc) : "" ;
- part1 = g_strconcat ( part2, currentSel, mid_sep, NULL);
- g_free(part2);
+ currentSel = xaccAccountGetDescription (acc) ? xaccAccountGetDescription (acc) : "";
+ str_temp = csv_test_field_string (info, currentSel);
+ part1 = g_strconcat (part2, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part2);
/* Color */
- currentSel = xaccAccountGetColor(acc) ? xaccAccountGetColor(acc) : "" ;
- part2 = g_strconcat ( part1, currentSel, mid_sep, NULL);
- g_free(part1);
+ currentSel = xaccAccountGetColor (acc) ? xaccAccountGetColor (acc) : "" ;
+ part2 = g_strconcat (part1, currentSel, mid_sep, NULL);
+ g_free (part1);
/* Notes */
- currentSel = xaccAccountGetNotes(acc) ? xaccAccountGetNotes(acc) : "" ;
- if (!g_strcmp0(currentSel, "") == 0)
- {
- /* Check for multiple lines */
- gchar **parts;
- parts = g_strsplit(currentSel, "\n", -1);
- notes_out = g_strjoinv("\\n", parts);
- currentSel = notes_out;
- g_strfreev(parts);
- }
- part1 = g_strconcat ( part2, currentSel, mid_sep, NULL);
- g_free(part2);
- g_free(notes_out);
+ currentSel = xaccAccountGetNotes (acc) ? xaccAccountGetNotes (acc) : "" ;
+ str_temp = csv_test_field_string (info, currentSel);
+ part1 = g_strconcat (part2, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part2);
/* Commodity Mnemonic */
- currentSel = gnc_commodity_get_mnemonic(xaccAccountGetCommodity (acc));
- part2 = g_strconcat ( part1, currentSel, mid_sep, NULL);
- g_free(part1);
+ currentSel = gnc_commodity_get_mnemonic (xaccAccountGetCommodity (acc));
+ str_temp = csv_test_field_string (info, currentSel);
+ part2 = g_strconcat (part1, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part1);
/* Commodity Namespace */
- currentSel = gnc_commodity_get_namespace(xaccAccountGetCommodity (acc));
- part1 = g_strconcat ( part2, currentSel, mid_sep, NULL);
- g_free(part2);
+ currentSel = gnc_commodity_get_namespace (xaccAccountGetCommodity (acc));
+ str_temp = csv_test_field_string (info, currentSel);
+ part1 = g_strconcat (part2, str_temp, mid_sep, NULL);
+ g_free (str_temp);
+ g_free (part2);
/* Hidden */
- currentSel = xaccAccountGetHidden(acc) ? "T" : "F" ;
- part2 = g_strconcat ( part1, currentSel, mid_sep, NULL);
- g_free(part1);
+ currentSel = xaccAccountGetHidden (acc) ? "T" : "F" ;
+ part2 = g_strconcat (part1, currentSel, mid_sep, NULL);
+ g_free (part1);
/* Tax */
- currentSel = xaccAccountGetTaxRelated(acc) ? "T" : "F" ;
- part1 = g_strconcat ( part2, currentSel, mid_sep, NULL);
- g_free(part2);
- /* Place Holder */
- currentSel = xaccAccountGetPlaceholder(acc) ? "T" : "F" ;
- part2 = g_strconcat ( part1, currentSel, end_sep, "\n", NULL);
- g_free(part1);
+ currentSel = xaccAccountGetTaxRelated (acc) ? "T" : "F" ;
+ part1 = g_strconcat (part2, currentSel, mid_sep, NULL);
+ g_free (part2);
+ /* Place Holder / end of line marker */
+ currentSel = xaccAccountGetPlaceholder (acc) ? "T" : "F" ;
+ part2 = g_strconcat (part1, currentSel, mid_sep, _("#eol"), end_sep, "\n", NULL);
+ g_free (part1);
DEBUG("Account String: %s", part2);
diff --git a/src/import-export/csv-imp/assistant-csv-account-import.c b/src/import-export/csv-imp/assistant-csv-account-import.c
index 4fc3398..9d23ab7 100644
--- a/src/import-export/csv-imp/assistant-csv-account-import.c
+++ b/src/import-export/csv-imp/assistant-csv-account-import.c
@@ -225,19 +225,25 @@ void csv_import_sep_cb (GtkWidget *radio, gpointer user_data )
name = gtk_buildable_get_name(GTK_BUILDABLE(radio));
- if (g_strcmp0(name, g_strdup("radio_semi")) == 0)
- g_string_assign (info->regexp, "^(?<type>[^;]*);(?<full_name>[^;]*);(?<name>[^;]*);(?<code>[^;]*);?(?<description>[^;]*);?(?<color>[^;]*);?(?<notes>[^;]*);?(?<commoditym>[^;]*);?(?<commodityn>[^;]*);?(?<hidden>[^;]*);?(?<tax>[^;]*);?(?<place_holder>[^;]*)$");
-
- if (g_strcmp0(name, g_strdup("radio_comma")) == 0)
- g_string_assign (info->regexp, "^(?<type>[^,]*),(?<full_name>[^,]*),(?<name>[^,]*),(?<code>[^,]*),?(?<description>[^,]*),?(?<color>[^,]*),?(?<notes>[^,]*),?(?<commoditym>[^,]*),?(?<commodityn>[^,]*),?(?<hidden>[^,]*),?(?<tax>[^,]*),?(?<place_holder>[^,]*)$");
-
- if (g_strcmp0(name, g_strdup("radio_semiq")) == 0)
- g_string_assign (info->regexp, "^((?<type>[^\";]*)|\"(?<type>[^\"]*)\");((?<full_name>[^\";]*)|\"(?<full_name>[^\"]*)\");((?<name>[^\";]*)|\"(?<name>[^\"]*)\");((?<code>[^\";]*)|\"(?<code>[^\"]*)\");((?<description>[^\";]*)|\"(?<description>[^\"]*)\");((?<color>[^\";]*)|\"(?<color>[^\"]*)\");((?<notes>[^\";]*)|\"(?<notes>[^\"]*)\");((?<commoditym>[^\";]*)|\"(?<commoditym>[^\"]*)\");((?<commodityn>[^\";]*)|\"(?<commodityn>[^\"]*)\");((?<hidden>[^\";]*)|\"(?<hidden>[^\"]*)\");((?<tax>[^\";]*)|\"(?<tax>[^\"]*)\");((?<place_holder>[^\";]*)|\"(?<place_holder>[^\"]*)\")$");
-
- if (g_strcmp0(name, g_strdup("radio_commaq")) == 0)
- g_string_assign (info->regexp, "^((?<type>[^\",]*)|\"(?<type>[^\"]*)\"),((?<full_name>[^\",]*)|\"(?<full_name>[^\"]*)\"),((?<name>[^\",]*)|\"(?<name>[^\"]*)\"),((?<code>[^\",]*)|\"(?<code>[^\"]*)\"),((?<description>[^\",]*)|\"(?<description>[^\"]*)\"),((?<color>[^\",]*)|\"(?<color>[^\"]*)\"),((?<notes>[^\",]*)|\"(?<notes>[^\"]*)\"),((?<commoditym>[^\",]*)|\"(?<commoditym>[^\"]*)\"),((?<commodityn>[^\",]*)|\"(?<commodityn>[^\"]*)\"),((?<hidden>[^\",]*)|\"(?<hidden>[^\"]*)\"),((?<tax>[^\",]*)|\"(?<tax>[^\"]*)\"),((?<place_holder>[^\",]*)|\"(?<place_holder>[^\"]*)\")$");
-
- if (g_strcmp0(name, g_strdup("radio_custom")) == 0)
+ if (g_strcmp0 (name, "radio_semi") == 0)
+ g_string_assign (info->regexp, "^(?<type>[^;]*);?(?<full_name>\"(?:[^\"]|\"\")*\"|[^;]*);?(?<name>\"(?:[^\"]|\"\")*\"|[^;]*);\
+ ?(?<code>\"(?:[^\"]|\"\")*\"|[^;]*);?(?<description>\"(?:[^\"]|\"\")*\"|[^;]*);?(?<color>[^;]*);\
+ ?(?<notes>\"(?:[^\"]|\"\")*\"|[^;]*);?(?<commoditym>\"(?:[^\"]|\"\")*\"|[^;]*);?(?<commodityn>\"(?:[^\"]|\"\")*\"|[^;]*);\
+ ?(?<hidden>[^;]*);?(?<tax>[^;]*);?(?<place_holder>[^;]*);(?<endofline>[^;]*)$");
+
+ if (g_strcmp0 (name, "radio_colon") == 0)
+ g_string_assign (info->regexp, "^(?<type>[^:]*):?(?<full_name>\"(?:[^\"]|\"\")*\"|[^:]*):?(?<name>\"(?:[^\"]|\"\")*\"|[^:]*):\
+ ?(?<code>\"(?:[^\"]|\"\")*\"|[^:]*):?(?<description>\"(?:[^\"]|\"\")*\"|[^:]*):?(?<color>[^:]*):\
+ ?(?<notes>\"(?:[^\"]|\"\")*\"|[^:]*):?(?<commoditym>\"(?:[^\"]|\"\")*\"|[^:]*):?(?<commodityn>\"(?:[^\"]|\"\")*\"|[^:]*):\
+ ?(?<hidden>[^:]*):?(?<tax>[^:]*):?(?<place_holder>[^:]*):(?<endofline>[^:]*)$");
+
+ if (g_strcmp0 (name, "radio_comma") == 0)
+ g_string_assign (info->regexp, "^(?<type>[^,]*),?(?<full_name>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<name>\"(?:[^\"]|\"\")*\"|[^,]*),\
+ ?(?<code>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<description>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<color>[^,]*),\
+ ?(?<notes>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<commoditym>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<commodityn>\"(?:[^\"]|\"\")*\"|[^,]*),\
+ ?(?<hidden>[^,]*),?(?<tax>[^,]*),?(?<place_holder>[^,]*),(?<endofline>[^,]*)$");
+
+ if (g_strcmp0 (name, "radio_custom") == 0)
{
temp = gnc_input_dialog (0, _("Adjust regular expression used for import"), _("This regular expression is used to parse the import file. Modify according to your needs.\n"), info->regexp->str);
if (temp)
@@ -555,6 +561,7 @@ csv_import_assistant_create (CsvImportInfo *info)
GtkWidget *button;
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
+ gchar *mnemonic_desc = NULL;
builder = gtk_builder_new();
gnc_builder_add_from_file (builder , "assistant-csv-account-import.glade", "num_hrows_adj");
@@ -608,7 +615,11 @@ csv_import_assistant_create (CsvImportInfo *info)
info->header_row_spin = GTK_WIDGET(gtk_builder_get_object (builder, "num_hrows"));
info->tree_view = GTK_WIDGET(gtk_builder_get_object (builder, "treeview"));
- info->regexp = g_string_new ( "^(?<type>[^;]*);(?<full_name>[^;]*);(?<name>[^;]*);(?<code>[^;]*);?(?<description>[^;]*);?(?<color>[^;]*);?(?<notes>[^;]*);?(?<commoditym>[^;]*);?(?<commodityn>[^;]*);?(?<hidden>[^;]*);?(?<tax>[^;]*);?(?<place_holder>[^;]*)$");
+ /* Comma Separated file default */
+ info->regexp = g_string_new ( "^(?<type>[^,]*),?(?<full_name>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<name>\"(?:[^\"]|\"\")*\"|[^,]*),\
+ ?(?<code>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<description>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<color>[^,]*),\
+ ?(?<notes>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<commoditym>\"(?:[^\"]|\"\")*\"|[^,]*),?(?<commodityn>\"(?:[^\"]|\"\")*\"|[^,]*),\
+ ?(?<hidden>[^,]*),?(?<tax>[^,]*),?(?<place_holder>[^,]*),(?<endofline>[^,]*)$");
/* create model and bind to view */
info->store = gtk_list_store_new (N_COLUMNS,
@@ -617,10 +628,12 @@ csv_import_assistant_create (CsvImportInfo *info)
gtk_tree_view_set_model( GTK_TREE_VIEW(info->tree_view), GTK_TREE_MODEL(info->store) );
#define CREATE_COLUMN(description,column_id) \
renderer = gtk_cell_renderer_text_new (); \
- column = gtk_tree_view_column_new_with_attributes (mnemonic_escape(_(description)), renderer, "text", column_id, NULL); \
+ mnemonic_desc = mnemonic_escape(_(description)); \
+ column = gtk_tree_view_column_new_with_attributes (mnemonic_desc, renderer, "text", column_id, NULL); \
gtk_tree_view_column_add_attribute(column, renderer, "background", ROW_COLOR); \
gtk_tree_view_column_set_resizable (column, TRUE); \
- gtk_tree_view_append_column (GTK_TREE_VIEW (info->tree_view), column);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (info->tree_view), column); \
+ g_free (mnemonic_desc);
CREATE_COLUMN ("type", TYPE);
CREATE_COLUMN ("full_name", FULL_NAME);
CREATE_COLUMN ("name", NAME);
diff --git a/src/import-export/csv-imp/assistant-csv-account-import.glade b/src/import-export/csv-imp/assistant-csv-account-import.glade
index d9132be..70dc74c 100644
--- a/src/import-export/csv-imp/assistant-csv-account-import.glade
+++ b/src/import-export/csv-imp/assistant-csv-account-import.glade
@@ -135,11 +135,11 @@ Enter file name and location for the Import...
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">12</property>
- <property name="n_rows">4</property>
- <property name="n_columns">4</property>
+ <property name="n_rows">3</property>
+ <property name="n_columns">3</property>
<child>
- <object class="GtkRadioButton" id="radio_semi">
- <property name="label" translatable="yes">Semicolon Separated</property>
+ <object class="GtkRadioButton" id="radio_comma">
+ <property name="label" translatable="yes">Comma Separated</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
@@ -150,104 +150,53 @@ Enter file name and location for the Import...
</object>
</child>
<child>
- <object class="GtkRadioButton" id="radio_semiq">
- <property name="label" translatable="yes">Semicolon Separated with Quotes</property>
+ <object class="GtkRadioButton" id="radio_semi">
+ <property name="label" translatable="yes">Semicolon Separated</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="draw_indicator">True</property>
- <property name="group">radio_semi</property>
+ <property name="group">radio_comma</property>
<signal name="toggled" handler="csv_import_sep_cb" swapped="no"/>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="radio_comma">
- <property name="label" translatable="yes">Comma Separated</property>
+ <object class="GtkRadioButton" id="radio_custom">
+ <property name="label" translatable="yes">Custom regular Expression</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="draw_indicator">True</property>
- <property name="group">radio_semi</property>
+ <property name="group">radio_comma</property>
<signal name="toggled" handler="csv_import_sep_cb" swapped="no"/>
</object>
<packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="radio_commaq">
- <property name="label" translatable="yes">Comma Separated with Quotes</property>
+ <object class="GtkRadioButton" id="radio_colon">
+ <property name="label" translatable="yes">Colon Separated</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="draw_indicator">True</property>
- <property name="group">radio_semi</property>
+ <property name="group">radio_comma</property>
<signal name="toggled" handler="csv_import_sep_cb" swapped="no"/>
</object>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
</packing>
</child>
- <child>
- <object class="GtkRadioButton" id="radio_custom">
- <property name="label" translatable="yes">Custom regular Expression</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_action_appearance">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">radio_semi</property>
- <signal name="toggled" handler="csv_import_sep_cb" swapped="no"/>
- </object>
- <packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
</object>
</child>
<child type="label">
diff --git a/src/import-export/csv-imp/csv-account-import.c b/src/import-export/csv-imp/csv-account-import.c
index dd6f3cb..68e73a8 100644
--- a/src/import-export/csv-imp/csv-account-import.c
+++ b/src/import-export/csv-imp/csv-account-import.c
@@ -41,13 +41,24 @@ static QofLogModule log_module = GNC_MOD_ASSISTANT;
/* This helper macro takes a regexp match and fills the model */
#define FILL_IN_HELPER(match_name,column) \
- temp = g_match_info_fetch_named (match_info, match_name); \
- if (temp) \
- { \
- g_strstrip( temp ); \
+ temp = g_match_info_fetch_named (match_info, match_name); \
+ if (temp) \
+ { \
+ g_strstrip (temp); \
+ if (g_str_has_prefix (temp, "\""))\
+ { \
+ if (strlen (temp) >= 2) \
+ { \
+ toptail = g_strndup (temp + 1, strlen (temp)-2); \
+ parts = g_strsplit (toptail, "\"\"", -1); \
+ temp = g_strjoinv ("\"", parts); \
+ g_strfreev (parts); \
+ g_free (toptail); \
+ } \
+ } \
gtk_list_store_set (store, &iter, column, temp, -1); \
g_free (temp); \
- }
+ }
/*******************************************************
@@ -61,7 +72,9 @@ csv_import_read_file (const gchar *filename, const gchar *parser_regexp,
{
FILE *f;
char *line;
- gchar *line_utf8, *temp;
+ gchar *line_utf8, *temp, *toptail;
+ gchar **parts;
+ gchar *end1, *end2;
GMatchInfo *match_info;
GError *err;
GRegex *regexpat;
@@ -105,25 +118,49 @@ csv_import_read_file (const gchar *filename, const gchar *parser_regexp,
return RESULT_ERROR_IN_REGEXP;
}
+ /* Setup the two different line endings */
+ end1 = g_strconcat (_("#eol"),"\"\n", NULL);
+ end2 = g_strconcat (_("#eol"),"\n", NULL);
+
// start the import
#define buffer_size 1000
line = g_malloc0 (buffer_size);
while (!feof (f))
{
+ gchar *currentline = NULL;
int l;
row++;
if (row == max_rows)
break;
+
// read one line
if (!fgets (line, buffer_size, f))
- break; // eof
+ break; // eof
+
+ currentline = g_strdup (line);
+
+ while (!(g_str_has_suffix (line, end1) || g_str_has_suffix (line, end2)))
+ {
+ // read next line
+ if (fgets (line, buffer_size, f))
+ {
+ gchar *temp_str = NULL;
+ temp_str = g_strconcat (currentline, line, NULL);
+ g_free (currentline);
+ currentline = g_strdup (temp_str);
+ g_free (temp_str);
+ }
+ else
+ break; // eof
+ }
+
// now strip the '\n' from the end of the line
- l = strlen (line);
- if ((l > 0) && (line[l - 1] == '\n'))
- line[l - 1] = 0;
+ l = strlen (currentline);
+ if ((l > 0) && (currentline[l - 1] == '\n'))
+ currentline[l - 1] = 0;
// convert line from locale into utf8
- line_utf8 = g_locale_to_utf8 (line, -1, NULL, NULL, NULL);
+ line_utf8 = g_locale_to_utf8 (currentline, -1, NULL, NULL, NULL);
// parse the line
match_info = NULL; // it seems, that in contrast to documentation, match_info is not always set -> g_match_info_free will segfault
@@ -147,11 +184,14 @@ csv_import_read_file (const gchar *filename, const gchar *parser_regexp,
gtk_list_store_set (store, &iter, ROW_COLOR, NULL, -1);
}
+ g_free (currentline);
g_match_info_free (match_info);
match_info = 0;
g_free (line_utf8);
line_utf8 = 0;
}
+ g_free (end1);
+ g_free (end2);
g_free (line);
line = 0;
@@ -313,17 +353,11 @@ csv_account_import (CsvImportInfo *info)
}
if (!g_strcmp0(notes, "") == 0)
- {
- /* Check for multiple lines */
- gchar **parts;
- parts = g_strsplit(notes, "\\n", -1);
- notes = g_strjoinv("\n", parts);
- g_strfreev(parts);
- }
- xaccAccountSetNotes (acc, notes);
+ xaccAccountSetNotes (acc, notes);
if (!g_strcmp0(description, "") == 0)
xaccAccountSetDescription (acc, description);
+
if (!g_strcmp0(code, "") == 0)
xaccAccountSetCode (acc, code);
}
commit b13f3dab2fd665cf00e8fc1fe90d73666c19accf
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Fri Sep 19 13:24:00 2014 +0100
This patch fixes bug 731519. The fix sets the upper limit before it sets the value of the end row spin button.
diff --git a/src/import-export/csv-imp/assistant-csv-trans-import.c b/src/import-export/csv-imp/assistant-csv-trans-import.c
index 66fd910..9ec281d 100644
--- a/src/import-export/csv-imp/assistant-csv-trans-import.c
+++ b/src/import-export/csv-imp/assistant-csv-trans-import.c
@@ -1353,8 +1353,8 @@ csv_import_trans_assistant_preview_page_prepare (GtkAssistant *assistant,
adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(info->end_row_spin));
if (gtk_adjustment_get_upper(adj) != info->num_of_rows)
{
+ gtk_adjustment_set_upper (adj, info->num_of_rows);
gtk_spin_button_set_value (GTK_SPIN_BUTTON(info->end_row_spin), info->num_of_rows);
- gtk_adjustment_set_upper(adj, info->num_of_rows);
}
/* Update the row selection highlight */
Summary of changes:
src/import-export/csv-exp/assistant-csv-export.c | 212 +++++----
.../csv-exp/csv-transactions-export.c | 264 +++++++----
src/import-export/csv-exp/csv-tree-export.c | 194 +++++---
.../csv-imp/assistant-csv-account-import.c | 193 ++++----
.../csv-imp/assistant-csv-account-import.glade | 85 +---
.../csv-imp/assistant-csv-trans-import.c | 504 ++++++++++-----------
src/import-export/csv-imp/csv-account-import.c | 215 +++++----
src/import-export/csv-imp/csv-account-import.h | 2 +-
src/import-export/csv-imp/gnc-csv-model.c | 334 +++++++-------
src/import-export/csv-imp/gnc-csv-model.h | 14 +-
10 files changed, 1050 insertions(+), 967 deletions(-)
More information about the gnucash-changes
mailing list