r14757 - gnucash/branches/2.0 - Double-check really every string from aqbanking for valid utf-8 characters.

Derek Atkins warlord at cvs.gnucash.org
Mon Aug 28 23:27:32 EDT 2006


Author: warlord
Date: 2006-08-28 23:27:31 -0400 (Mon, 28 Aug 2006)
New Revision: 14757
Trac: http://svn.gnucash.org/trac/changeset/14757

Modified:
   gnucash/branches/2.0/
   gnucash/branches/2.0/ChangeLog
   gnucash/branches/2.0/src/import-export/hbci/dialog-hbcitrans.c
   gnucash/branches/2.0/src/import-export/hbci/druid-hbci-initial.c
Log:
Double-check really every string from aqbanking for valid utf-8 characters.

Merge from r14680.



Property changes on: gnucash/branches/2.0
___________________________________________________________________
Name: svk:merge
   - d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/branches/2.0:13184
   + d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/branches/2.0:13185

Modified: gnucash/branches/2.0/ChangeLog
===================================================================
--- gnucash/branches/2.0/ChangeLog	2006-08-29 03:27:20 UTC (rev 14756)
+++ gnucash/branches/2.0/ChangeLog	2006-08-29 03:27:31 UTC (rev 14757)
@@ -7,6 +7,10 @@
 
 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/branches/2.0/src/import-export/hbci/dialog-hbcitrans.c
===================================================================
--- gnucash/branches/2.0/src/import-export/hbci/dialog-hbcitrans.c	2006-08-29 03:27:20 UTC (rev 14756)
+++ gnucash/branches/2.0/src/import-export/hbci/dialog-hbcitrans.c	2006-08-29 03:27:31 UTC (rev 14757)
@@ -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/branches/2.0/src/import-export/hbci/druid-hbci-initial.c
===================================================================
--- gnucash/branches/2.0/src/import-export/hbci/druid-hbci-initial.c	2006-08-29 03:27:20 UTC (rev 14756)
+++ gnucash/branches/2.0/src/import-export/hbci/druid-hbci-initial.c	2006-08-29 03:27:31 UTC (rev 14757)
@@ -36,6 +36,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"
@@ -125,21 +126,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