r19904 - gnucash/trunk - Bug #635859: Strip all trailing '/'es from kvp_slot paths when loading.
John Ralls
jralls at code.gnucash.org
Fri Dec 3 18:24:34 EST 2010
Author: jralls
Date: 2010-12-03 18:24:34 -0500 (Fri, 03 Dec 2010)
New Revision: 19904
Trac: http://svn.gnucash.org/trac/changeset/19904
Modified:
gnucash/trunk/po/POTFILES.in
gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c
gnucash/trunk/src/backend/sql/gnc-slots-sql.c
gnucash/trunk/src/bin/gnucash-bin.c
gnucash/trunk/src/gnome-utils/gnc-gnome-utils.c
Log:
Bug #635859: Strip all trailing '/'es from kvp_slot paths when loading.
This changes round-tripping slightly (because the resulting slot key
won't have the trailing slash when it's re-saved as xml). It may also
change the behavior of the facility using the slot, because the key is
changed. So far, the only known instances which trip this bug are
import-map-bayes, because descriptions may have '/'es in them (and why
shouldn't they).
Unfortunately, fixing this right (so that key values can have embedded
'/''es and be saved/retrieved from sql databases will require changing
the slot architecture in ways that impact the engine. Since we don't
have adequate unit tests to be confident of not introducing a
regression, I'm applying this instead.
Modified: gnucash/trunk/po/POTFILES.in
===================================================================
--- gnucash/trunk/po/POTFILES.in 2010-12-03 21:14:54 UTC (rev 19903)
+++ gnucash/trunk/po/POTFILES.in 2010-12-03 23:24:34 UTC (rev 19904)
@@ -2,25 +2,25 @@
# This file was generated by ../make-gnucash-potfiles.
src/app-utils/file-utils.c
src/app-utils/gfec.c
+src/app-utils/gnc-account-merge.c
src/app-utils/gnc-accounting-period.c
-src/app-utils/gnc-account-merge.c
src/app-utils/gnc-component-manager.c
-src/app-utils/gnc-druid.c
src/app-utils/gnc-druid-cb.c
-src/app-utils/gnc-druid-provider.c
-src/app-utils/gnc-druid-provider-desc.c
src/app-utils/gnc-druid-provider-desc-edge.c
src/app-utils/gnc-druid-provider-desc-file.c
src/app-utils/gnc-druid-provider-desc-multifile.c
+src/app-utils/gnc-druid-provider-desc.c
src/app-utils/gnc-druid-provider-file-cb.c
+src/app-utils/gnc-druid-provider.c
+src/app-utils/gnc-druid.c
src/app-utils/gnc-euro.c
src/app-utils/gnc-exp-parser.c
src/app-utils/gnc-gettext-util.c
+src/app-utils/gnc-help-utils.c
src/app-utils/gnc-helpers.c
-src/app-utils/gnc-help-utils.c
-src/app-utils/gncmod-app-utils.c
src/app-utils/gnc-sx-instance-model.c
src/app-utils/gnc-ui-util.c
+src/app-utils/gncmod-app-utils.c
src/app-utils/guile-util.c
src/app-utils/option-util.c
src/backend/dbi/gnc-backend-dbi.c
@@ -74,12 +74,12 @@
src/backend/xml/io-gncxml-v1.c
src/backend/xml/io-gncxml-v2.c
src/backend/xml/io-utils.c
-src/backend/xml/sixtp.c
src/backend/xml/sixtp-dom-generators.c
src/backend/xml/sixtp-dom-parsers.c
src/backend/xml/sixtp-stack.c
src/backend/xml/sixtp-to-dom-parser.c
src/backend/xml/sixtp-utils.c
+src/backend/xml/sixtp.c
src/bin/gnucash-bin.c
src/business/business-core/gncmod-business-core.c
src/business/business-gnome/business-gnome-utils.c
@@ -106,9 +106,9 @@
src/business/business-gnome/glade/order.glade
src/business/business-gnome/glade/payment.glade
src/business/business-gnome/glade/vendor.glade
-src/business/business-gnome/gncmod-business-gnome.c
src/business/business-gnome/gnc-plugin-business.c
src/business/business-gnome/gnc-plugin-page-invoice.c
+src/business/business-gnome/gncmod-business-gnome.c
src/business/business-gnome/schemas/apps_gnucash_dialog_business_common.schemas.in
src/business/business-gnome/search-owner.c
src/business/business-ledger/gncEntryLedger.c
@@ -125,9 +125,9 @@
src/calculation/amort_opt.c
src/calculation/amort_prt.c
src/calculation/expression_parser.c
-src/calculation/fin.c
src/calculation/fin-interactive.c
src/calculation/fin-main.c
+src/calculation/fin.c
src/calculation/gncmod-calculation.c
src/calculation/numeric_ops.c
src/core-utils/binreloc.c
@@ -142,104 +142,49 @@
src/core-utils/gnc-uri-utils.c
src/doc/doxygen_main_page.c
src/engine/Account.c
+src/engine/Period.c
+src/engine/Query.c
+src/engine/Recurrence.c
+src/engine/SX-book.c
+src/engine/SX-ttinfo.c
+src/engine/SchedXaction.c
+src/engine/Scrub.c
+src/engine/Scrub2.c
+src/engine/Scrub3.c
+src/engine/Split.c
+src/engine/TransLog.c
+src/engine/Transaction.c
src/engine/cap-gains.c
src/engine/cashobjects.c
src/engine/engine-helpers.c
src/engine/glib-helpers.c
+src/engine/gnc-associate-account.c
+src/engine/gnc-budget.c
+src/engine/gnc-commodity.c
+src/engine/gnc-engine.c
+src/engine/gnc-hooks.c
+src/engine/gnc-lot.c
+src/engine/gnc-pricedb.c
+src/engine/gnc-session-scm.c
+src/engine/gnc-session.c
src/engine/gncAddress.c
-src/engine/gnc-associate-account.c
src/engine/gncBillTerm.c
-src/engine/gnc-budget.c
src/engine/gncBusGuile.c
src/engine/gncBusiness.c
-src/engine/gnc-commodity.c
src/engine/gncCustomer.c
src/engine/gncEmployee.c
-src/engine/gnc-engine.c
src/engine/gncEntry.c
-src/engine/gnc-hooks.c
src/engine/gncIDSearch.c
src/engine/gncInvoice.c
src/engine/gncJob.c
-src/engine/gnc-lot.c
-src/engine/gncmod-engine.c
src/engine/gncOrder.c
src/engine/gncOwner.c
-src/engine/gnc-pricedb.c
-src/engine/gnc-session.c
-src/engine/gnc-session-scm.c
src/engine/gncTaxTable.c
src/engine/gncVendor.c
+src/engine/gncmod-engine.c
src/engine/kvp-scm.c
-src/engine/Period.c
src/engine/policy.c
-src/engine/Query.c
-src/engine/Recurrence.c
-src/engine/SchedXaction.c
-src/engine/Scrub2.c
-src/engine/Scrub3.c
-src/engine/Scrub.c
-src/engine/Split.c
-src/engine/SX-book.c
-src/engine/SX-ttinfo.c
-src/engine/Transaction.c
-src/engine/TransLog.c
src/gnc-module/gnc-module.c
-src/gnome/dialog-commodities.c
-src/gnome/dialog-fincalc.c
-src/gnome/dialog-find-transactions.c
-src/gnome/dialog-new-user.c
-src/gnome/dialog-price-edit-db.c
-src/gnome/dialog-price-editor.c
-src/gnome/dialog-print-check.c
-src/gnome/dialog-progress.c
-src/gnome/dialog-sx-editor.c
-src/gnome/dialog-sx-from-trans.c
-src/gnome/dialog-sx-since-last-run.c
-src/gnome/dialog-tax-info.c
-src/gnome/druid-acct-period.c
-src/gnome/druid-hierarchy.c
-src/gnome/druid-loan.c
-src/gnome/druid-stock-split.c
-src/gnome/glade/account.glade
-src/gnome/glade/acctperiod.glade
-src/gnome/glade/autoclear.glade
-src/gnome/glade/budget.glade
-src/gnome/glade/commodities.glade
-src/gnome/glade/fincalc.glade
-src/gnome/glade/lots.glade
-src/gnome/glade/newuser.glade
-src/gnome/glade/price.glade
-src/gnome/glade/print.glade
-src/gnome/glade/progress.glade
-src/gnome/glade/reconcile.glade
-src/gnome/glade/register.glade
-src/gnome/glade/sched-xact.glade
-src/gnome/glade/stocks.glade
-src/gnome/glade/tax.glade
-src/gnome/glade/userpass.glade
-src/gnome/gnc-plugin-account-tree.c
-src/gnome/gnc-plugin-basic-commands.c
-src/gnome/gnc-plugin-budget.c
-src/gnome/gnc-plugin-page-account-tree.c
-src/gnome/gnc-plugin-page-budget.c
-src/gnome/gnc-plugin-page-register.c
-src/gnome/gnc-plugin-page-sx-list.c
-src/gnome/gnc-plugin-register.c
-src/gnome/gnc-split-reg.c
-src/gnome/lot-viewer.c
-src/gnome/reconcile-list.c
-src/gnome/schemas/apps_gnucash_dialog_commodities.schemas.in
-src/gnome/schemas/apps_gnucash_dialog_common.schemas.in
-src/gnome/schemas/apps_gnucash_dialog_prices.schemas.in
-src/gnome/schemas/apps_gnucash_dialog_print_checks.schemas.in
-src/gnome/schemas/apps_gnucash_dialog_reconcile.schemas.in
-src/gnome/schemas/apps_gnucash_dialog_scheduled_transctions.schemas.in
-src/gnome/schemas/apps_gnucash_dialog_totd.schemas.in
-src/gnome/schemas/apps_gnucash_general.schemas.in
-src/gnome/schemas/apps_gnucash_warnings.schemas.in
-src/gnome/schemas/apps_gnucash_window_pages_account_tree.schemas.in
-src/gnome/schemas/apps_gnucash_window_pages_register.schemas.in
src/gnome-search/dialog-search.c
src/gnome-search/gnc-general-search.c
src/gnome-search/gncmod-gnome-search.c
@@ -249,12 +194,12 @@
src/gnome-search/search-core-utils.c
src/gnome-search/search-date.c
src/gnome-search/search-double.c
-src/gnome-search/search.glade
src/gnome-search/search-int64.c
src/gnome-search/search-numeric.c
src/gnome-search/search-reconciled.c
src/gnome-search/search-string.c
-src/gnome/top-level.c
+src/gnome-search/search.glade
+src/gnome-utils/QuickFill.c
src/gnome-utils/account-quickfill.c
src/gnome-utils/cursors.c
src/gnome-utils/dialog-account.c
@@ -296,9 +241,9 @@
src/gnome-utils/gnc-date-delta.c
src/gnome-utils/gnc-date-edit.c
src/gnome-utils/gnc-date-format.c
-src/gnome-utils/gnc-dense-cal.c
src/gnome-utils/gnc-dense-cal-model.c
src/gnome-utils/gnc-dense-cal-store.c
+src/gnome-utils/gnc-dense-cal.c
src/gnome-utils/gnc-dialog.c
src/gnome-utils/gnc-druid-gnome.c
src/gnome-utils/gnc-druid-provider-edge-gnome.c
@@ -316,46 +261,101 @@
src/gnome-utils/gnc-keyring.c
src/gnome-utils/gnc-main-window.c
src/gnome-utils/gnc-menu-extensions.c
-src/gnome-utils/gncmod-gnome-utils.c
src/gnome-utils/gnc-period-select.c
-src/gnome-utils/gnc-plugin.c
src/gnome-utils/gnc-plugin-file-history.c
src/gnome-utils/gnc-plugin-manager.c
src/gnome-utils/gnc-plugin-menu-additions.c
src/gnome-utils/gnc-plugin-page.c
+src/gnome-utils/gnc-plugin.c
src/gnome-utils/gnc-query-list.c
src/gnome-utils/gnc-recurrence.c
src/gnome-utils/gnc-splash.c
src/gnome-utils/gnc-sx-instance-dense-cal-adapter.c
src/gnome-utils/gnc-sx-list-tree-model-adapter.c
+src/gnome-utils/gnc-tree-model-account-types.c
src/gnome-utils/gnc-tree-model-account.c
-src/gnome-utils/gnc-tree-model-account-types.c
src/gnome-utils/gnc-tree-model-budget.c
-src/gnome-utils/gnc-tree-model.c
src/gnome-utils/gnc-tree-model-commodity.c
src/gnome-utils/gnc-tree-model-price.c
+src/gnome-utils/gnc-tree-model.c
src/gnome-utils/gnc-tree-view-account.c
-src/gnome-utils/gnc-tree-view.c
src/gnome-utils/gnc-tree-view-commodity.c
src/gnome-utils/gnc-tree-view-price.c
src/gnome-utils/gnc-tree-view-sx-list.c
+src/gnome-utils/gnc-tree-view.c
src/gnome-utils/gnc-window.c
+src/gnome-utils/gncmod-gnome-utils.c
src/gnome-utils/misc-gnome-utils.c
src/gnome-utils/print-session.c
-src/gnome-utils/QuickFill.c
src/gnome-utils/schemas/apps_gnucash_history.schemas.in
src/gnome-utils/search-param.c
src/gnome-utils/window-main-summarybar.c
+src/gnome/dialog-commodities.c
+src/gnome/dialog-fincalc.c
+src/gnome/dialog-find-transactions.c
+src/gnome/dialog-new-user.c
+src/gnome/dialog-price-edit-db.c
+src/gnome/dialog-price-editor.c
+src/gnome/dialog-print-check.c
+src/gnome/dialog-progress.c
+src/gnome/dialog-sx-editor.c
+src/gnome/dialog-sx-from-trans.c
+src/gnome/dialog-sx-since-last-run.c
+src/gnome/dialog-tax-info.c
+src/gnome/druid-acct-period.c
+src/gnome/druid-hierarchy.c
+src/gnome/druid-loan.c
+src/gnome/druid-stock-split.c
+src/gnome/glade/account.glade
+src/gnome/glade/acctperiod.glade
+src/gnome/glade/autoclear.glade
+src/gnome/glade/budget.glade
+src/gnome/glade/commodities.glade
+src/gnome/glade/fincalc.glade
+src/gnome/glade/lots.glade
+src/gnome/glade/newuser.glade
+src/gnome/glade/price.glade
+src/gnome/glade/print.glade
+src/gnome/glade/progress.glade
+src/gnome/glade/reconcile.glade
+src/gnome/glade/register.glade
+src/gnome/glade/sched-xact.glade
+src/gnome/glade/stocks.glade
+src/gnome/glade/tax.glade
+src/gnome/glade/userpass.glade
+src/gnome/gnc-plugin-account-tree.c
+src/gnome/gnc-plugin-basic-commands.c
+src/gnome/gnc-plugin-budget.c
+src/gnome/gnc-plugin-page-account-tree.c
+src/gnome/gnc-plugin-page-budget.c
+src/gnome/gnc-plugin-page-register.c
+src/gnome/gnc-plugin-page-sx-list.c
+src/gnome/gnc-plugin-register.c
+src/gnome/gnc-split-reg.c
+src/gnome/lot-viewer.c
+src/gnome/reconcile-list.c
+src/gnome/schemas/apps_gnucash_dialog_commodities.schemas.in
+src/gnome/schemas/apps_gnucash_dialog_common.schemas.in
+src/gnome/schemas/apps_gnucash_dialog_prices.schemas.in
+src/gnome/schemas/apps_gnucash_dialog_print_checks.schemas.in
+src/gnome/schemas/apps_gnucash_dialog_reconcile.schemas.in
+src/gnome/schemas/apps_gnucash_dialog_scheduled_transctions.schemas.in
+src/gnome/schemas/apps_gnucash_dialog_totd.schemas.in
+src/gnome/schemas/apps_gnucash_general.schemas.in
+src/gnome/schemas/apps_gnucash_warnings.schemas.in
+src/gnome/schemas/apps_gnucash_window_pages_account_tree.schemas.in
+src/gnome/schemas/apps_gnucash_window_pages_register.schemas.in
+src/gnome/top-level.c
src/gnome/window-autoclear.c
src/gnome/window-reconcile.c
-src/html/gnc-html.c
src/html/gnc-html-factory.c
-src/html/gnc-html-graph-gog.c
src/html/gnc-html-graph-gog-gtkhtml.c
src/html/gnc-html-graph-gog-webkit.c
+src/html/gnc-html-graph-gog.c
src/html/gnc-html-gtkhtml.c
src/html/gnc-html-history.c
src/html/gnc-html-webkit.c
+src/html/gnc-html.c
src/html/gncmod-html.c
src/import-export/aqbanking/aqbanking.glade
src/import-export/aqbanking/dialog-ab-trans.c
@@ -364,20 +364,20 @@
src/import-export/aqbanking/gnc-ab-getbalance.c
src/import-export/aqbanking/gnc-ab-gettrans.c
src/import-export/aqbanking/gnc-ab-kvp.c
+src/import-export/aqbanking/gnc-ab-trans-templ.c
src/import-export/aqbanking/gnc-ab-transfer.c
-src/import-export/aqbanking/gnc-ab-trans-templ.c
src/import-export/aqbanking/gnc-ab-utils.c
src/import-export/aqbanking/gnc-file-aqb-import.c
src/import-export/aqbanking/gnc-gwen-gui.c
+src/import-export/aqbanking/gnc-plugin-aqbanking.c
src/import-export/aqbanking/gncmod-aqbanking.c
-src/import-export/aqbanking/gnc-plugin-aqbanking.c
src/import-export/aqbanking/schemas/apps_gnucash_dialog_hbci.schemas.in
src/import-export/csv/gnc-csv-gnumeric-popup.c
src/import-export/csv/gnc-csv-import.c
src/import-export/csv/gnc-csv-model.c
src/import-export/csv/gnc-csv-preview-dialog.glade
+src/import-export/csv/gnc-plugin-csv.c
src/import-export/csv/gncmod-csv-import.c
-src/import-export/csv/gnc-plugin-csv.c
src/import-export/generic-import.glade
src/import-export/gnc-import-desc-format.c
src/import-export/gnc-import-format-cb.c
@@ -396,11 +396,11 @@
src/import-export/hbci/gnc-hbci-getbalance.c
src/import-export/hbci/gnc-hbci-gettrans.c
src/import-export/hbci/gnc-hbci-kvp.c
+src/import-export/hbci/gnc-hbci-trans-templ.c
src/import-export/hbci/gnc-hbci-transfer.c
-src/import-export/hbci/gnc-hbci-trans-templ.c
src/import-export/hbci/gnc-hbci-utils.c
+src/import-export/hbci/gnc-plugin-hbci.c
src/import-export/hbci/gncmod-hbci.c
-src/import-export/hbci/gnc-plugin-hbci.c
src/import-export/hbci/hbci-interaction.c
src/import-export/hbci/schemas/apps_gnucash_dialog_hbci.schemas.in
src/import-export/import-account-matcher.c
@@ -415,15 +415,15 @@
src/import-export/import-settings.c
src/import-export/import-utilities.c
src/import-export/log-replay/gnc-log-replay.c
+src/import-export/log-replay/gnc-plugin-log-replay.c
src/import-export/log-replay/gncmod-log-replay.c
-src/import-export/log-replay/gnc-plugin-log-replay.c
-src/import-export/ofx/gncmod-ofx-import.c
src/import-export/ofx/gnc-ofx-import.c
src/import-export/ofx/gnc-plugin-ofx.c
+src/import-export/ofx/gncmod-ofx-import.c
src/import-export/qif-import/dialog-account-picker.c
src/import-export/qif-import/druid-qif-import.c
+src/import-export/qif-import/gnc-plugin-qif-import.c
src/import-export/qif-import/gncmod-qif-import.c
-src/import-export/qif-import/gnc-plugin-qif-import.c
src/import-export/qif-import/qif.glade
src/import-export/qif-import/schemas/apps_gnucash_import_qif.schemas.in
src/import-export/qif-io-core/gncmod-qifiocore.c
@@ -434,9 +434,10 @@
src/libqof/qof/gnc-date.c
src/libqof/qof/gnc-numeric.c
src/libqof/qof/guid.c
+src/libqof/qof/kvp-util.c
src/libqof/qof/kvp_frame.c
-src/libqof/qof/kvp-util.c
src/libqof/qof/md5.c
+src/libqof/qof/qof-win32.c
src/libqof/qof/qofbackend.c
src/libqof/qof/qofbook.c
src/libqof/qof/qofbookmerge.c
@@ -453,20 +454,19 @@
src/libqof/qof/qofreference.c
src/libqof/qof/qofsession.c
src/libqof/qof/qofutil.c
-src/libqof/qof/qof-win32.c
src/register/ledger-core/dialog-dup-trans.c
src/register/ledger-core/gnc-ledger-display.c
src/register/ledger-core/gncmod-ledger-core.c
-src/register/ledger-core/split-register.c
src/register/ledger-core/split-register-control.c
src/register/ledger-core/split-register-layout.c
src/register/ledger-core/split-register-load.c
+src/register/ledger-core/split-register-model-save.c
src/register/ledger-core/split-register-model.c
-src/register/ledger-core/split-register-model-save.c
src/register/ledger-core/split-register-util.c
+src/register/ledger-core/split-register.c
src/register/register-core/basiccell.c
+src/register/register-core/cell-factory.c
src/register/register-core/cellblock.c
-src/register/register-core/cell-factory.c
src/register/register-core/checkboxcell.c
src/register/register-core/formulacell.c
src/register/register-core/gncmod-register-core.c
@@ -502,15 +502,15 @@
src/report/report-gnome/dialog-column-view.c
src/report/report-gnome/dialog-custom-report.c
src/report/report-gnome/dialog-style-sheet.c
+src/report/report-gnome/gnc-plugin-page-report.c
src/report/report-gnome/gncmod-report-gnome.c
-src/report/report-gnome/gnc-plugin-page-report.c
src/report/report-gnome/report.glade
src/report/report-gnome/window-report.c
+src/report/report-system/gnc-report.c
src/report/report-system/gncmod-report-system.c
-src/report/report-system/gnc-report.c
src/report/standard-reports/gncmod-standard-reports.c
+src/report/stylesheets/gnc-plugin-stylesheets.c
src/report/stylesheets/gncmod-stylesheets.c
-src/report/stylesheets/gnc-plugin-stylesheets.c
src/report/utility-reports/gncmod-utility-reports.c
src/tax/us/gncmod-tax-us.c
src/gnome/gnucash.desktop.in.in
Modified: gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c
===================================================================
--- gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c 2010-12-03 21:14:54 UTC (rev 19903)
+++ gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c 2010-12-03 23:24:34 UTC (rev 19904)
@@ -1522,7 +1522,10 @@
{
for ( node = dbi_row->gvalue_list; node != NULL; node = node->next )
{
- GValue* value = (GValue*)node->data;
+ GValue* value;
+ if ( !G_IS_VALUE(node->data) )
+ continue;
+ value = (GValue*)node->data;
if ( G_VALUE_HOLDS_STRING(value) )
{
g_free( (gpointer)g_value_get_string( value ) );
Modified: gnucash/trunk/src/backend/sql/gnc-slots-sql.c
===================================================================
--- gnucash/trunk/src/backend/sql/gnc-slots-sql.c 2010-12-03 21:14:54 UTC (rev 19903)
+++ gnucash/trunk/src/backend/sql/gnc-slots-sql.c 2010-12-03 23:24:34 UTC (rev 19904)
@@ -171,12 +171,13 @@
/* Remove trailing /es */
if ( key == NULL ) return str;
- while ( str - key == 0 )
+ while ( str + strlen(str) - key == 1 )
{
*key = '\0';
key = strrchr( str, '/' );
}
if ( key == NULL ) return str;
+/* Now advance key past the last intermediate / to get the post-delimiter string */
while ( *key == '/') ++key;
ret = strdup( key );
Modified: gnucash/trunk/src/bin/gnucash-bin.c
===================================================================
--- gnucash/trunk/src/bin/gnucash-bin.c 2010-12-03 21:14:54 UTC (rev 19903)
+++ gnucash/trunk/src/bin/gnucash-bin.c 2010-12-03 23:24:34 UTC (rev 19904)
@@ -36,6 +36,7 @@
#include "gnc-version.h"
#include "gnc-engine.h"
#include "gnc-filepath-utils.h"
+#include "gnc-ui-util.h"
#include "gnc-file.h"
#include "gnc-hooks.h"
#include "top-level.h"
@@ -286,7 +287,7 @@
NSString *this_locale;
NSString *currency = [locale objectForKey: NSLocaleCurrencyCode];
NSString *money_locale = nil;
- while (this_locale = (NSString*)[locale_iter nextObject])
+ while ((this_locale = (NSString*)[locale_iter nextObject]))
if ([[[[NSLocale alloc] initWithLocaleIdentifier: this_locale]
objectForKey: NSLocaleCurrencyCode]
isEqualToString: currency]) {
@@ -321,17 +322,18 @@
NSString *this_lang;
NSArray *elements;
NSArray *new_languages = [NSArray array];
- while (this_lang = [lang_iter nextObject]) {
+ while ((this_lang = [lang_iter nextObject])) {
this_lang = [this_lang stringByTrimmingCharactersInSet:
[NSCharacterSet characterSetWithCharactersInString:
@"\""]];
elements = [this_lang componentsSeparatedByString: @"-"];
if ([elements count] > 1) {
- if ([[elements objectAtIndex: 0] isEqualToString: @"zh"])
+ if ([[elements objectAtIndex: 0] isEqualToString: @"zh"]) {
if ([[elements objectAtIndex: 1] isEqualToString: @"Hans"])
this_lang = [NSString stringWithString: @"zh_CN"];
else
this_lang = [NSString stringWithString: @"zh_TW"];
+ }
}
else
this_lang = [elements componentsJoinedByString: @"_"];
Modified: gnucash/trunk/src/gnome-utils/gnc-gnome-utils.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-gnome-utils.c 2010-12-03 21:14:54 UTC (rev 19903)
+++ gnucash/trunk/src/gnome-utils/gnc-gnome-utils.c 2010-12-03 23:24:34 UTC (rev 19904)
@@ -330,7 +330,7 @@
NSEnumerator *lang_iter = [languages objectEnumerator];
NSString *path;
NSString *this_lang;
- while(this_lang = [lang_iter nextObject]) {
+ while((this_lang = [lang_iter nextObject])) {
NSArray *elements;
unsigned int paths;
NSString *completed_path = [NSString alloc];
More information about the gnucash-changes
mailing list