AUDIT: r14680 - gnucash/trunk - Double-check really every string from aqbanking for valid utf-8 characters.
Christian Stimming
cstim at cvs.gnucash.org
Tue Aug 15 16:05:44 EDT 2006
Author: cstim
Date: 2006-08-15 16:05:43 -0400 (Tue, 15 Aug 2006)
New Revision: 14680
Trac: http://svn.gnucash.org/trac/changeset/14680
Modified:
gnucash/trunk/ChangeLog
gnucash/trunk/src/import-export/hbci/dialog-hbcitrans.c
gnucash/trunk/src/import-export/hbci/druid-hbci-initial.c
Log:
Double-check really every string from aqbanking for valid utf-8 characters.
BP
Modified: gnucash/trunk/ChangeLog
===================================================================
--- gnucash/trunk/ChangeLog 2006-08-15 20:00:14 UTC (rev 14679)
+++ gnucash/trunk/ChangeLog 2006-08-15 20:05:43 UTC (rev 14680)
@@ -1,5 +1,9 @@
2006-08-15 Christian Stimming <stimming at tuhh.de>
+ * src/import-export/hbci/dialog-hbcitrans.c, druid-hbci-initial.c:
+ Double-check really every string from aqbanking for valid utf-8
+ characters.
+
* src/core-utils/gnc-glib-utils.[hc]: Add
gnc_utf8_strip_invalid_strdup() that returns a stripped copy
instead of working in-place.
Modified: gnucash/trunk/src/import-export/hbci/dialog-hbcitrans.c
===================================================================
--- gnucash/trunk/src/import-export/hbci/dialog-hbcitrans.c 2006-08-15 20:00:14 UTC (rev 14679)
+++ gnucash/trunk/src/import-export/hbci/dialog-hbcitrans.c 2006-08-15 20:05:43 UTC (rev 14680)
@@ -45,6 +45,7 @@
#include "gtk-compat.h"
#include "dialog-utils.h"
+#include "gnc-glib-utils.h"
#include "gnc-ui.h"
#include "gnc-amount-edit.h"
#include "dialog-transfer.h"
@@ -246,7 +247,7 @@
GList *templates)
{
GladeXML *xml;
- const char *hbci_bankid, *hbci_bankname;
+ const char *hbci_bankid;
HBCITransDialog *td;
GtkTreeSelection *selection;
GtkTreeViewColumn *column;
@@ -258,7 +259,6 @@
td->trans_type = trans_type;
g_assert (h_acc);
hbci_bankid = AB_Account_GetBankCode(h_acc);
- hbci_bankname = AB_Account_GetBankName(h_acc);
#if HAVE_KTOBLZCHECK_H
td->blzcheck = AccountNumberCheck_new();
#endif
@@ -272,6 +272,7 @@
GTK_WINDOW (parent));
{
+ gchar *hbci_bankname, *hbci_ownername;
GtkWidget *heading_label;
GtkWidget *recp_name_heading;
GtkWidget *recp_account_heading;
@@ -394,9 +395,16 @@
/* Make this button insensitive since it's still unimplemented. */
gtk_widget_destroy (exec_later_button);
+ /* aqbanking up to 2.3.0 did not guarantee the following strings
+ to be correct utf8; mentioned in bug#351371. */
+ hbci_bankname =
+ gnc_utf8_strip_invalid_strdup (AB_Account_GetBankName(h_acc));
+ hbci_ownername =
+ gnc_utf8_strip_invalid_strdup (AB_Account_GetOwnerName(h_acc));
+
/* Fill in the values from the objects */
gtk_label_set_text (GTK_LABEL (orig_name_label),
- AB_Account_GetOwnerName (h_acc));
+ hbci_ownername);
gtk_label_set_text (GTK_LABEL (orig_account_label),
AB_Account_GetAccountNumber (h_acc));
gtk_label_set_text (GTK_LABEL (orig_bankname_label),
@@ -405,6 +413,8 @@
_("(unknown)")));
gtk_label_set_text (GTK_LABEL (orig_bankcode_label),
hbci_bankid);
+ g_free (hbci_ownername);
+ g_free (hbci_bankname);
/* fill list for choosing a transaction template */
gtk_tree_view_set_headers_visible(td->template_gtktreeview, FALSE);
Modified: gnucash/trunk/src/import-export/hbci/druid-hbci-initial.c
===================================================================
--- gnucash/trunk/src/import-export/hbci/druid-hbci-initial.c 2006-08-15 20:00:14 UTC (rev 14679)
+++ gnucash/trunk/src/import-export/hbci/druid-hbci-initial.c 2006-08-15 20:05:43 UTC (rev 14680)
@@ -37,6 +37,7 @@
#include "import-account-matcher.h"
#include "gnc-hbci-utils.h"
+#include "gnc-glib-utils.h"
#include "dialog-utils.h"
#include "druid-utils.h"
#include "gnc-ui-util.h"
@@ -117,21 +118,25 @@
static gchar *gnc_hbci_account_longname(const AB_ACCOUNT *hacc)
{
- const char *bankname;
+ gchar *bankname;
+ gchar *result;
const char *bankcode;
g_assert(hacc);
- bankname = AB_Account_GetBankName (hacc);
+ bankname =
+ gnc_utf8_strip_invalid_strdup (AB_Account_GetBankName (hacc));
bankcode = AB_Account_GetBankCode (hacc);
/* Translators: Strings are 1. Account code, 2. Bank name, 3. Bank code. */
- if (bankname)
- return g_strdup_printf(_("%s at %s (code %s)"),
+ if (strlen(bankname) > 0)
+ result = g_strdup_printf(_("%s at %s (code %s)"),
AB_Account_GetAccountNumber (hacc),
bankname,
bankcode);
else
- return g_strdup_printf(_("%s at bank code %s"),
+ result = g_strdup_printf(_("%s at bank code %s"),
AB_Account_GetAccountNumber (hacc),
bankcode);
+ g_free (bankname);
+ return result;
}
More information about the gnucash-changes
mailing list