gnucash master: Multiple changes pushed

Geert Janssens gjanssens at code.gnucash.org
Sat Jan 31 11:26:45 EST 2015


Updated	 via  https://github.com/Gnucash/gnucash/commit/e1c7d9d1 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/785c6d62 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b3781c16 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/c312b865 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/48b30271 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/87520cdd (commit)
	 via  https://github.com/Gnucash/gnucash/commit/7581436e (commit)
	 via  https://github.com/Gnucash/gnucash/commit/0ff9eba9 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/5e60a234 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/564b9874 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/2494bfc6 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d5da5933 (commit)
	from  https://github.com/Gnucash/gnucash/commit/13303eb3 (commit)



commit e1c7d9d1b9db191d1b627c0e27a11e1ece208e13
Merge: 13303eb 785c6d6
Author: Geert Janssens <janssens-geert at telenet.be>
Date:   Sat Jan 31 18:37:41 2015 +0100

    Merge branch 'maint'
    
    - Bug 731889 - guile 2 exports different autoconf macros than what is expected
    - Bug 742624 - [patch] Scheduled Transaction Editor results in immediate segfault
    - Numeric values with more than commodity smallest fraction get silently dropped.
    - Bug 721196 - Use a regex for checking for a valid numeric value.
    - Bug 727647 - "gncInvoiceGetTotal" is not read-only function?
    - Bug 743609 - Add configure options to disable libsecret detection
    - Switch from guile to xml to manage our iso-currencies source file
    - Rewrite gnc-test-env in perl
    - Bug 619899 - Use normal gettext or intltool toolchain also for scm files
    
    Resolved conflicts:
    	make-gnucash-potfiles.in
    	po/POTFILES.in
    	po/POTFILES.skip
    	src/backend/dbi/test/Makefile.am

diff --cc make-gnucash-potfiles.in
index b78b916,c370cb9..fbed466
--- a/make-gnucash-potfiles.in
+++ b/make-gnucash-potfiles.in
@@@ -14,42 -14,13 +14,42 @@@ use File::Basename
  
  # Note: These are perl regexp patterns, *not* normal shell wildcards!
  my @ignorepatterns = ('gw-', 'test', 'experimental', 'python-bindings', 'swig-.*\.c');
 +my (@skipped_files, @ignored_files);
 +open(IN, "< @-SRCDIR-@/po/POTFILES.skip");
 +while (<IN>) {
 +    push @skipped_files, $_ unless $_ =~ /^\#/;
 +}
 +close IN;
 +open(IN, "< @-SRCDIR-@/po/POTFILES.ignore");
 +while (<IN>) {
 +    push @ignored_files, $_ unless $_ =~ /^\#/;
 +}
 +close IN;
  
 -my @skipped_files = `grep -v \# @-SRCDIR-@/po/POTFILES.skip`;
 -my @ignored_files = `grep -v \# @-SRCDIR-@/po/POTFILES.ignore`;
 +# Sort filenames in POTFILES.in in a consistent way
 +# This reduces the amount of clutter in our version manangement system
 +# The files will be sorted
 +# * per directory
 +# * case-insensitive
 +# * ignoring punctuation (-,_,.)
 +#
 +sub sort_func
 +{
 +    my $stripped_a = $a;
 +    my $stripped_b = $b;
 +    $stripped_a =~ s/[-_.]//g;
 +    $stripped_b =~ s/[-_.]//g;
 +
 +    lc ($stripped_a) cmp lc ($stripped_b)
 +      ||
 +    lc ($a) cmp lc ($b)
 +}
  
 -my @possible_files = `cd @-SRCDIR-@ && find src -name '*.c' -o -name '*.glade' \\
 +my @possible_files = sort sort_func
 +                      `cd @-SRCDIR-@ && find src -name '*.c' \\
 +                      -o -name '*.cpp' -o -name '*.glade' \\
                        -o -name '*.desktop.in' -o -name '*.keys.in' \\
-                       -o -name '*.gschema.xml.in.in' `;
+                       -o -name '*.gschema.xml.in.in' -o -name '*.scm' | sort`;
  ## For perl files add the following:
  # -o -name '*.pl'
  
@@@ -87,6 -58,6 +87,5 @@@ foreach my $file (@possible_files) 
  # These are also added, even though they are outside of src/
  print "src/gnome/gnucash.appdata.xml.in\n";
  print "src/gnome/gnucash.desktop.in.in\n";
 -print "src/libqof/qof/gnc-date.c\n";
  print "src/libqof/qof/qofbookslots.h\n";
- print "intl-scm/guile-strings.c\n";
  print "doc/tip_of_the_day.list.in\n";
diff --cc po/POTFILES.in
index d3c9b84,672be03..c05b02b
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@@ -428,29 -448,41 +451,38 @@@ src/import-export/qif-imp/dialog-accoun
  src/import-export/qif-imp/gncmod-qif-import.c
  src/import-export/qif-imp/gnc-plugin-qif-import.c
  [type: gettext/gsettings]src/import-export/qif-imp/gschemas/org.gnucash.dialogs.import.qif.gschema.xml.in.in
+ src/import-export/qif-imp/qif-dialog-utils.scm
+ src/import-export/qif-imp/qif-file.scm
+ src/import-export/qif-imp/qif-guess-map.scm
+ src/import-export/qif-imp/qif-import.scm
+ src/import-export/qif-imp/qif-merge-groups.scm
+ src/import-export/qif-imp/qif-objects.scm
+ src/import-export/qif-imp/qif-parse.scm
+ src/import-export/qif-imp/qif-to-gnc.scm
+ src/import-export/qif-imp/qif-utils.scm
 -src/import-export/qif/qif-context.c
 -src/import-export/qif/qif-file.c
 -src/import-export/qif/qif-objects.c
 -src/libqof/qof/gnc-date.c
 -src/libqof/qof/gnc-numeric.c
 -src/libqof/qof/guid.c
 -src/libqof/qof/kvp_frame.c
 -src/libqof/qof/kvp-util.c
 -src/libqof/qof/md5.c
 -src/libqof/qof/qofbackend.c
 -src/libqof/qof/qofbook.c
 -src/libqof/qof/qofchoice.c
 -src/libqof/qof/qofclass.c
 -src/libqof/qof/qofevent.c
 -src/libqof/qof/qofid.c
 -src/libqof/qof/qofinstance.c
 -src/libqof/qof/qoflog.c
 -src/libqof/qof/qofmath128.c
 -src/libqof/qof/qofobject.c
 -src/libqof/qof/qofquery.c
 -src/libqof/qof/qofquerycore.c
 -src/libqof/qof/qofreference.c
 -src/libqof/qof/qofsession.c
 -src/libqof/qof/qof-string-cache.c
 -src/libqof/qof/qofutil.c
 -src/libqof/qof/qof-win32.c
 +src/libqof/qof/gnc-date.cpp
 +src/libqof/qof/gnc-int128.cpp
 +src/libqof/qof/gnc-numeric.cpp
 +src/libqof/qof/gnc-rational.cpp
 +src/libqof/qof/guid.cpp
 +src/libqof/qof/kvp_frame.cpp
 +src/libqof/qof/kvp-util.cpp
 +src/libqof/qof/kvp-value.cpp
 +src/libqof/qof/qofbackend.cpp
 +src/libqof/qof/qofbook.cpp
 +src/libqof/qof/qofchoice.cpp
 +src/libqof/qof/qofclass.cpp
 +src/libqof/qof/qofevent.cpp
 +src/libqof/qof/qofid.cpp
 +src/libqof/qof/qofinstance.cpp
 +src/libqof/qof/qoflog.cpp
 +src/libqof/qof/qofobject.cpp
 +src/libqof/qof/qofquerycore.cpp
 +src/libqof/qof/qofquery.cpp
 +src/libqof/qof/qofsession.cpp
 +src/libqof/qof/qof-string-cache.cpp
 +src/libqof/qof/qofutil.cpp
 +src/libqof/qof/qof-win32.cpp
  src/plugins/bi_import/dialog-bi-import.c
  src/plugins/bi_import/dialog-bi-import-gui.c
  src/plugins/bi_import/dialog-bi-import-helper.c
@@@ -508,7 -540,25 +540,27 @@@ src/register/register-gnome/gnucash-sty
  src/register/register-gnome/pricecell-gnome.c
  src/register/register-gnome/quickfillcell-gnome.c
  src/register/register-gnome/table-gnome.c
+ src/report/business-reports/aging.scm
+ src/report/business-reports/balsheet-eg.eguile.scm
+ src/report/business-reports/balsheet-eg.scm
+ src/report/business-reports/business-reports.scm
+ src/report/business-reports/customer-summary.scm
+ src/report/business-reports/easy-invoice.scm
+ src/report/business-reports/fancy-invoice.scm
+ src/report/business-reports/invoice.scm
+ src/report/business-reports/job-report.scm
+ src/report/business-reports/owner-report.scm
+ src/report/business-reports/payables.scm
++src/report/business-reports/receipt.eguile.scm
++src/report/business-reports/receipt.scm
+ src/report/business-reports/receivables.scm
+ src/report/business-reports/taxinvoice.eguile.scm
+ src/report/business-reports/taxinvoice.scm
+ src/report/locale-specific/us/de_DE.scm
  src/report/locale-specific/us/gncmod-locale-reports-us.c
+ src/report/locale-specific/us/taxtxf-de_DE.scm
+ src/report/locale-specific/us/taxtxf.scm
+ src/report/locale-specific/us/us.scm
  src/report/report-gnome/dialog-custom-report.c
  src/report/report-gnome/dialog-custom-report.glade
  src/report/report-gnome/dialog-report-column-view.c
@@@ -516,16 -566,91 +568,91 @@@ src/report/report-gnome/dialog-report.g
  src/report/report-gnome/dialog-report-style-sheet.c
  src/report/report-gnome/gncmod-report-gnome.c
  src/report/report-gnome/gnc-plugin-page-report.c
+ src/report/report-gnome/report-gnome.scm
  src/report/report-gnome/window-report.c
+ src/report/report-system/collectors.scm
+ src/report/report-system/commodity-utilities.scm
+ src/report/report-system/eguile-gnc.scm
+ src/report/report-system/eguile-html-utilities.scm
+ src/report/report-system/eguile-utilities.scm
  src/report/report-system/gncmod-report-system.c
  src/report/report-system/gnc-report.c
+ src/report/report-system/html-acct-table.scm
+ src/report/report-system/html-barchart.scm
+ src/report/report-system/html-document.scm
+ src/report/report-system/html-fonts.scm
+ src/report/report-system/html-jqplot.scm
+ src/report/report-system/html-linechart.scm
+ src/report/report-system/html-piechart.scm
+ src/report/report-system/html-scatter.scm
+ src/report/report-system/html-style-info.scm
+ src/report/report-system/html-style-sheet.scm
+ src/report/report-system/html-table.scm
+ src/report/report-system/html-text.scm
+ src/report/report-system/html-utilities.scm
+ src/report/report-system/list-extras.scm
+ src/report/report-system/options-utilities.scm
+ src/report/report-system/report-collectors.scm
+ src/report/report-system/report.scm
+ src/report/report-system/report-system.scm
+ src/report/report-system/report-utilities.scm
+ src/report/standard-reports/account-piecharts.scm
+ src/report/standard-reports/account-summary.scm
+ src/report/standard-reports/advanced-portfolio.scm
+ src/report/standard-reports/average-balance.scm
+ src/report/standard-reports/balance-sheet.scm
+ src/report/standard-reports/budget-balance-sheet.scm
+ src/report/standard-reports/budget-barchart.scm
+ src/report/standard-reports/budget-flow.scm
+ src/report/standard-reports/budget-income-statement.scm
+ src/report/standard-reports/budget.scm
+ src/report/standard-reports/cash-flow.scm
+ src/report/standard-reports/category-barchart.scm
+ src/report/standard-reports/daily-reports.scm
+ src/report/standard-reports/equity-statement.scm
+ src/report/standard-reports/general-journal.scm
+ src/report/standard-reports/general-ledger.scm
  src/report/standard-reports/gncmod-standard-reports.c
+ src/report/standard-reports/income-statement.scm
+ src/report/standard-reports/net-barchart.scm
+ src/report/standard-reports/net-linechart.scm
+ src/report/standard-reports/portfolio.scm
+ src/report/standard-reports/price-scatter.scm
+ src/report/standard-reports/register.scm
+ src/report/standard-reports/standard-reports.scm
+ src/report/standard-reports/sx-summary.scm
+ src/report/standard-reports/transaction.scm
+ src/report/standard-reports/trial-balance.scm
  src/report/stylesheets/gncmod-stylesheets.c
  src/report/stylesheets/gnc-plugin-stylesheets.c
+ src/report/stylesheets/stylesheet-easy.scm
+ src/report/stylesheets/stylesheet-fancy.scm
+ src/report/stylesheets/stylesheet-footer.scm
++src/report/stylesheets/stylesheet-head-or-tail.scm
+ src/report/stylesheets/stylesheet-plain.scm
+ src/report/stylesheets/stylesheets.scm
  src/report/utility-reports/gncmod-utility-reports.c
+ src/report/utility-reports/hello-world.scm
+ src/report/utility-reports/utility-reports.scm
+ src/report/utility-reports/view-column.scm
+ src/report/utility-reports/welcome-to-gnucash.scm
+ src/scm/fin.scm
+ src/scm/gnumeric/gnumeric-utilities.scm
+ src/scm/gnumeric/table-utils.scm
+ src/scm/main.scm
+ src/scm/price-quotes.scm
+ src/scm/printf.scm
+ src/scm/string.scm
+ src/scm/substring-search.scm
+ src/scm/xml-generator.scm
+ src/tax/us/de_DE.scm
  src/tax/us/gncmod-tax-us.c
+ src/tax/us/txf-de_DE.scm
+ src/tax/us/txf-help-de_DE.scm
+ src/tax/us/txf-help.scm
+ src/tax/us/txf.scm
+ src/tax/us/us.scm
  src/gnome/gnucash.appdata.xml.in
  src/gnome/gnucash.desktop.in.in
 -src/libqof/qof/gnc-date.c
  src/libqof/qof/qofbookslots.h
- intl-scm/guile-strings.c
  doc/tip_of_the_day.list.in
diff --cc po/POTFILES.skip
index 92ba937,f16640c..f2b8c3c
--- a/po/POTFILES.skip
+++ b/po/POTFILES.skip
@@@ -1,26 -1,29 +1,18 @@@
  # These are files that we don't want to translate, because they are
  # not distributed.
 -src/network-utils/gnc-gpg.c
 -src/import-export/csv/gnc-csv2glist.c
 -src/business/business-core/gncBusPeriod.c
 -src/backend/dwi/qofmap.c
 -src/gnome-utils/gnctreemodelsort.c
 -src/gnome-utils/gtktreedatalist.c
 -src/gnome-utils/gnc-tree-model-selection.c
  src/backend/dbi/gncmod-backend-dbi.c
 -src/backend/file/io-gncbin-r.c
  src/backend/xml/gncmod-backend-xml.c
 -src/import-export/binary-import/binary-import.glade
 -src/import-export/binary-import/druid-commodity.c
 -src/import-export/binary-import/gncmod-binary-import.c
 -src/gnome-utils/glade/dialog-database-connection.glade
 -src/libqof/qof/qofgobj.c
 -src/libqof/qof/qofquery-deserial.c
 -src/libqof/qof/qofquery-serialize.c
 -src/libqof/qof/qofsql.c
 +src/gnome-utils/gnc-tree-model-selection.c
 +
 +# These we don't want to translate because they're experimental:
 +src/gnc/.*
 +src/optional/gtkmm/.*
  
- # The scheme files are handled by intl-scm/guile-strings.c because
- # intltool wouldn't scan scheme files. They're here now because
- # intltool 0.50 *does* scan them, and it creates an error during make
- # check. Once the whole world has upgraded to intltool 0.50, intl-scm
- # can be deleted and these files added to POTFILES.in.
+ # Skip softlinks to scm files. These softlinks are created
+ # for testing purposes. Unfortunately distcheck doesn't appear
+ # smart enough to ignore them.
  
- src/app-utils/app-utils.scm
- src/app-utils/business-prefs.scm
- src/app-utils/date-utilities.scm
  src/app-utils/gnucash/app-utils.scm
- src/app-utils/prefs.scm
- src/import-export/qif-imp/qif-dialog-utils.scm
- src/import-export/qif-imp/qif-file.scm
  src/import-export/qif-imp/qif-import/qif-dialog-utils.scm
  src/import-export/qif-imp/qif-import/qif-file.scm
  src/import-export/qif-imp/qif-import/qif-merge-groups.scm
@@@ -120,22 -75,7 +66,8 @@@ src/report/standard-reports/gnucash/rep
  src/report/stylesheets/gnucash/report/stylesheet-easy.scm
  src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
  src/report/stylesheets/gnucash/report/stylesheet-footer.scm
 +src/report/stylesheets/gnucash/report/stylesheet-head-or-tail.scm
  src/report/stylesheets/gnucash/report/stylesheet-plain.scm
- src/report/stylesheets/stylesheet-easy.scm
- src/report/stylesheets/stylesheet-fancy.scm
- src/report/stylesheets/stylesheet-footer.scm
- src/report/stylesheets/stylesheet-head-or-tail.scm
- src/report/stylesheets/stylesheet-plain.scm
  src/report/utility-reports/gnucash/report/hello-world.scm
  src/report/utility-reports/gnucash/report/view-column.scm
  src/report/utility-reports/gnucash/report/welcome-to-gnucash.scm
diff --cc src/backend/sql/test/Makefile.am
index e8f4682,c914a41..a4726c1
--- a/src/backend/sql/test/Makefile.am
+++ b/src/backend/sql/test/Makefile.am
@@@ -24,8 -21,12 +24,8 @@@ GNC_TEST_DEPS = 
  TESTS_ENVIRONMENT = \
    GNC_ACCOUNT_PATH=${top_srcdir}/accounts/C \
    SRCDIR=${srcdir} \
-   $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+   $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
  
 -check_PROGRAMS = $(TESTS)
 -
 -#noinst_HEADERS = test-file-stuff.h
 -
  LDADD = ${top_builddir}/src/test-core/libtest-core.la \
          ${top_builddir}/src/gnc-module/libgnc-module.la \
          ${top_builddir}/src/backend/sql/libgnc-backend-sql.la \
diff --cc src/engine/Makefile.am
index 7a54b9d,fc6e819..0818d65
--- a/src/engine/Makefile.am
+++ b/src/engine/Makefile.am
@@@ -128,13 -128,9 +128,11 @@@ noinst_HEADERS = 
    gnc-pricedb-p.h \
    policy-p.h
  
- noinst_SCRIPTS = iso-currencies-to-c
- 
  libgncmod_engine_la_LDFLAGS = -avoid-version
  if CLANG
 -libgncmod_engine_la_CFLAGS = -Wno-invalid-source-encoding
 +libgncmod_engine_la_CFLAGS = ${AM_CFLAGS} -Wno-invalid-source-encoding
 +else
 +libgncmod_engine_la_CFLAGS = ${AM_CFLAGS}
  endif
  libgncmod_engine_la_LIBADD = \
    ../gnc-module/libgnc-module.la \
diff --cc src/engine/test/Makefile.am
index 3a5dccf,98d7d24..87a2cb5
--- a/src/engine/test/Makefile.am
+++ b/src/engine/test/Makefile.am
@@@ -70,11 -68,33 +70,11 @@@ TESTS_ENVIRONMENT = 
    GUILE="${GUILE}" \
    SRCDIR=${srcdir} \
    GNC_BUILDDIR="${abs_top_builddir}" \
-   $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+   $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
  
 -check_PROGRAMS = \
 -  test-link \
 -  test-commodities \
 -  test-date \
 -  test-recurrence \
 -  test-guid \
 -  test-account-object \
 -  test-group-vs-book \
 -  test-load-engine \
 -  test-lots \
 -  test-numeric \
 -  test-object \
 -  test-query \
 -  test-querynew \
 -  test-scm-query \
 -  test-split-vs-account \
 -  test-transaction-reversal \
 -  test-transaction-voiding \
 -  test-business \
 -  test-address \
 -  test-customer \
 -  test-employee \
 -  test-job \
 -  test-vendor
 +check_PROGRAMS = ${TEST_GROUP_1} ${TEST_GROUP_2}
  
 +TESTS = ${TEST_GROUP_1} test-create-account ${TEST_GROUP_2}
  
  test_link_SOURCES = test-link.c
  test_link_LDADD = ../libgncmod-engine.la \
diff --cc src/scm/Makefile.am
index 09bd916,e45fd59..63320a8
--- a/src/scm/Makefile.am
+++ b/src/scm/Makefile.am
@@@ -50,8 -50,9 +50,8 @@@ GUILE_COMPILE_ENV = 
    --library-dir    ${top_builddir}/src/gnc-module \
    --library-dir    ${top_builddir}/src/libqof/qof
  
 -
  %.go : %.scm .scm-links
- 	$(shell ${top_builddir}/src/gnc-test-env --no-exports ${GUILE_COMPILE_ENV}) \
+ 	$(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GUILE_COMPILE_ENV}) \
  	$(GUILD) compile -o $@ $<
  
  gncscmmodcachedir = ${GNC_SCM_INSTALL_DIR}/ccache/@GUILE_EFFECTIVE_VERSION@/gnucash

commit 785c6d621bf93f4970a167295650777d386d6dbb
Author: Geert Janssens <janssens-geert at telenet.be>
Date:   Sat Jan 31 14:33:33 2015 +0100

    Bug 731889 - guile 2 exports different autoconf macros than what is expected
    
    Check for the now required ltdl.h and bail out if not found

diff --git a/configure.ac b/configure.ac
index e09df33..743419b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -473,6 +473,11 @@ AM_CONDITIONAL(GNC_HAVE_GUILE_2, test "x${gnc_have_guile_2}" = xyes)
 AC_SUBST(GUILE_EFFECTIVE_VERSION)
 AC_SUBST(GUILE, [`pwd`/gnc-guile])
 
+AC_CHECK_HEADERS(ltdl.h,
+         [],
+         [AC_MSG_ERROR([ltdl.h not found. Perhaps you need to install
+the intltool-ltdl development packages ?])])
+
 ### --------------------------------------------------------------------------
 ### SWIG version checks (only when building from SCM)
 #

commit b3781c16d0d84be66bdd4b4a507ca5803f394f57
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Jan 29 13:39:23 2015 -0800

    Bug 731889 - guile 2 exports different autoconf macros than what is expected
    
    Replace the autogen-sh time configuration which doesn't really work
    correctly by making a local interpreter which links whichever library
    pkg-config finds.
    
    Also makes Guile-2.0 the default by looking for it first.

diff --git a/Makefile.am b/Makefile.am
index 432800f..443be45 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -6,6 +6,11 @@ GNC_ETAGS_FILE = @GNC_ETAGS_FILE@
 
 noinst_DATA = make-gnucash-potfiles
 
+noinst_PROGRAMS    = gnc-guile
+gnc_guile_SOURCES = util/guile.c
+gnc_guile_CFLAGS  = ${GUILE_CFLAGS}
+gnc_guile_LDADD   = ${GUILE_LIBS}
+
 dist_doc_DATA = \
   AUTHORS \
   COPYING \
diff --git a/configure.ac b/configure.ac
index dd504a6..e09df33 100644
--- a/configure.ac
+++ b/configure.ac
@@ -452,31 +452,16 @@ AC_CHECK_FUNCS(gethostid link)
 
 # - check minimum version
 # - determine GUILE_CFLAGS and GUILE_LIBS
-# Note: systems that install both guile 1.8 and guile 2 use different
-#       names for the 1.8 and 2.0 autoconf macros to avoid conflicts.
-#       So the tests below will check for known macro names in the order
-#       that we assume will always result in the proper macros being called
-#       for the guile version that has been detected.
 gnc_have_guile_2=no
 gnc_have_guile_www=no
 PKG_CHECK_MODULES(GUILE,
-                  [guile-1.8 >= 1.8.5],
-                  [m4_ifdef([GUILE1_8_PROGS],
-                            [ GUILE1_8_PROGS ],
-                            [ m4_ifdef([GUILE1_PROGS],
-                                       [ GUILE1_PROGS ],
-                                       [ GUILE_PROGS ])])
-                  ], [
-  PKG_CHECK_MODULES(GUILE,
                   [guile-2.0 >= 2.0.0],
-                  [m4_ifdef([GUILE_PROGS],
-                            [ GUILE_PROGS
-                              gnc_have_guile_2=yes ],
-                            [ AC_MSG_ERROR([ guile 2 is found on your system, but we did
-    find the right autoconf macros. Please rerun autogen.sh first. If this
-    does not solve the problem, please report this as a bug
-    in GnuCash, so we can fix this for your platform.]) ])
-                  ],
+		  [gnc_have_guile_2=yes
+		  GUILE_EFFECTIVE_VERSION=2.0
+		  AC_PATH_PROG([GUILD], guild)],
+   [PKG_CHECK_MODULES(GUILE,
+                  [guile-1.8 >= 1.8.5],
+		  [GUILE_EFFECTIVE_VERSION=1.8],
                   [AC_MSG_ERROR([
     guile does not appear to be installed correctly, or is not in the
     correct version range.  Perhaps you have not installed the guile
@@ -484,9 +469,9 @@ PKG_CHECK_MODULES(GUILE,
   ])])
 ])
 
-AM_CONDITIONAL(GNC_HAVE_GUILE_2, test "${gnc_have_guile_2}" = yes)
+AM_CONDITIONAL(GNC_HAVE_GUILE_2, test "x${gnc_have_guile_2}" = xyes)
 AC_SUBST(GUILE_EFFECTIVE_VERSION)
-
+AC_SUBST(GUILE, [`pwd`/gnc-guile])
 
 ### --------------------------------------------------------------------------
 ### SWIG version checks (only when building from SCM)
diff --git a/util/guile.c b/util/guile.c
new file mode 100644
index 0000000..3e01b57
--- /dev/null
+++ b/util/guile.c
@@ -0,0 +1,71 @@
+/* Copyright (C) 1996,1997,2000,2001, 2006, 2008 Free Software Foundation, Inc.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/* This is the 'main' function for the `guile' executable.  It is not
+   included in libguile.a.
+
+   Eventually, we hope this file will be automatically generated,
+   based on the list of installed, statically linked libraries on the
+   system.  For now, please don't put interesting code in here.  */
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#ifdef __MINGW32__
+# define SCM_IMPORT 1
+#endif
+#include <libguile.h>
+
+#ifdef HAVE_CONFIG_H
+#include <libguile/scmconfig.h>
+#endif
+#include <ltdl.h>
+
+#ifdef HAVE_WINSOCK2_H
+#include <winsock2.h>
+#endif
+
+static void
+inner_main (void *closure SCM_UNUSED, int argc, char **argv)
+{
+#ifdef __MINGW32__
+  /* This is necessary to startup the Winsock API under Win32. */
+  WSADATA WSAData;
+  WSAStartup (0x0202, &WSAData);
+#endif /* __MINGW32__ */
+
+  /* module initializations would go here */
+  scm_shell (argc, argv);
+
+#ifdef __MINGW32__
+  WSACleanup ();
+#endif /* __MINGW32__ */
+}
+
+int
+main (int argc, char **argv)
+{
+  scm_boot_guile (argc, argv, inner_main, 0);
+  return 0; /* never reached */
+}
+
+/*
+  Local Variables:
+  c-file-style: "gnu"
+  End:
+*/

commit c312b865d19aeaa7688bff37ae5d07c641481efd
Author: Geert Janssens <info at kobaltwit.be>
Date:   Tue May 31 15:03:09 2011 +0200

    Bug 619899 - Use normal gettext or intltool toolchain also for scm files

diff --git a/.gitignore b/.gitignore
index 11c6728..a7551c8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,7 +40,6 @@ doc/tip_of_the_day.list
 gnucash-*.*.*.tar.*
 gnucash-*.*.*/
 install-sh
-intl-scm/guile-strings.c
 intltool-extract
 intltool-extract.in
 intltool-merge
diff --git a/Makefile.am b/Makefile.am
index 8c1a3b0..432800f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,5 @@
 
-SUBDIRS = . doc lib src intl-scm packaging po accounts checks
+SUBDIRS = . doc lib src packaging po accounts checks
 
 GNC_CTAGS_FILE = @GNC_CTAGS_FILE@
 GNC_ETAGS_FILE = @GNC_ETAGS_FILE@
@@ -190,10 +190,8 @@ $(srcdir)/po/POTFILES.in: make-gnucash-potfiles .potfiles
 
 # Creation rules so that po/gnucash.pot can always be created for
 # make dist.
-po/gnucash.pot: po/POTFILES.in intl-scm/guile-strings.c
+po/gnucash.pot: po/POTFILES.in
 	${MAKE} -C po gnucash.pot
-intl-scm/guile-strings.c:
-	${MAKE} -C intl-scm guile-strings.c
 
 .potfiles:
 
diff --git a/configure.ac b/configure.ac
index 015fc89..dd504a6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1426,7 +1426,6 @@ AC_CONFIG_FILES(
   checks/Makefile
   doc/Makefile
   doc/examples/Makefile
-  intl-scm/Makefile
   lib/Makefile
   lib/libc/Makefile
   lib/stf/Makefile
diff --git a/intl-scm/Makefile.am b/intl-scm/Makefile.am
deleted file mode 100644
index b6772ac..0000000
--- a/intl-scm/Makefile.am
+++ /dev/null
@@ -1,22 +0,0 @@
-abs_top_srcdir=@abs_top_srcdir@
-
-EXTRA_DIST = \
-  guile-strings.c \
-  xgettext.scm
-
-# Cause automake to generate correct rules
-# for maintainers
-noinst_HEADERS = guile-strings.c
-
-BUILT_SOURCES = guile-strings.c
-
-SCMFILES = $(shell find ${abs_top_srcdir}/src -name test -prune -o -name '*.scm' -print | sort)
-
-if BUILDING_FROM_SCM
-# This needs to be generated in srcdir
-guile-strings.c: $(SCMFILES)
-	rm -f guile-strings.c
-	cd ${srcdir} && rm -f guile-strings.c \
-	&& ${GUILE} -s ./xgettext.scm ${abs_top_srcdir} $(SCMFILES)
-
-endif
diff --git a/intl-scm/xgettext.scm b/intl-scm/xgettext.scm
deleted file mode 100644
index 8e70cce..0000000
--- a/intl-scm/xgettext.scm
+++ /dev/null
@@ -1,75 +0,0 @@
-;; Find translatable strings in guile files
-(define *base-dir-len* 0)
-
-(define (expand-newlines string out-port)
-  (define (output-prefix-newlines chars)
-    (if (and (pair? chars) (char=? (car chars) #\newline))
-        (begin
-          (display "\\n" out-port)
-          (output-prefix-newlines (cdr chars)))
-        chars))
-
-  (let loop ((chars (string->list string))
-             (accum '()))
-    (cond
-     ((null? chars)
-      (if (not (null? accum))
-          (write (list->string (reverse accum)) out-port)))
-     ((char=? (car chars) #\newline)
-      (write (list->string (reverse accum)) out-port)
-      (display "\"" out-port)
-      (set! chars (output-prefix-newlines chars))
-      (display "\"" out-port)
-      (if (not (null? chars))
-          (display "\n  " out-port))
-      (loop chars '()))
-     (else
-      (loop (cdr chars) (cons (car chars) accum))))))
-
-(define (write-string string out-port filename line-number)
-  (display (string-append "/* " (substring filename *base-dir-len*)) out-port)
-  ;;(display line-number out-port)
-  (display " */\n" out-port)
-  (display "_(" out-port)
-  (expand-newlines string out-port)
-  (display ")\n" out-port))
-
-(define (find-strings-in-item item out-port filename line-no)
-  (define (find-internal rest)
-    (cond
-     ((and (list? rest)                    ; if it's a list
-           (= (length rest) 2)             ; of length 2
-           (symbol? (car rest))            ; starting with a symbol
-           (string? (cadr rest))           ; and ending with a string
-           (or (eqv? '_ (car rest))        ; and the symbol is _
-               (eqv? 'N_ (car rest))))     ; or N_
-      (write-string (cadr rest) out-port filename line-no)) ; then write it out
-
-     ((pair? rest)                         ; otherwise, recurse
-      (find-internal (car rest))
-      (find-internal (cdr rest)))))
-
-  (find-internal item))
-
-(define (count-newlines string)
-  (define (count-internal from)
-    (let ((index (string-index string #\newline from)))
-      (if index
-	  (+ 1 (count-internal (+ 1 index)))
-	  0)))
-  (count-internal 0))
-
-(define (find-strings in-port out-port filename)
-  (do ((item (read in-port) (read in-port))
-       (line-no 1 (+ 1 line-no)))
-      ((eof-object? item) #t)
-    (find-strings-in-item item out-port filename line-no)))
-
-(let ((out-port (open "guile-strings.c" (logior O_WRONLY O_CREAT O_TRUNC)))
-      (base-dir (cadr (command-line)))
-      (in-files (cddr (command-line))))
-  (set! *base-dir-len* (+ (string-length base-dir) 1))
-  (for-each (lambda (file)
-              (call-with-input-file file (lambda (port)
-                                           (find-strings port out-port file))))
-            in-files))
diff --git a/make-gnucash-potfiles.in b/make-gnucash-potfiles.in
index 65ce1ca..c370cb9 100644
--- a/make-gnucash-potfiles.in
+++ b/make-gnucash-potfiles.in
@@ -20,7 +20,7 @@ my @ignored_files = `grep -v \# @-SRCDIR-@/po/POTFILES.ignore`;
 
 my @possible_files = `cd @-SRCDIR-@ && find src -name '*.c' -o -name '*.glade' \\
                       -o -name '*.desktop.in' -o -name '*.keys.in' \\
-                      -o -name '*.gschema.xml.in.in' |sort`;
+                      -o -name '*.gschema.xml.in.in' -o -name '*.scm' | sort`;
 ## For perl files add the following:
 # -o -name '*.pl'
 
@@ -60,5 +60,4 @@ print "src/gnome/gnucash.appdata.xml.in\n";
 print "src/gnome/gnucash.desktop.in.in\n";
 print "src/libqof/qof/gnc-date.c\n";
 print "src/libqof/qof/qofbookslots.h\n";
-print "intl-scm/guile-strings.c\n";
 print "doc/tip_of_the_day.list.in\n";
diff --git a/po/POTFILES.in b/po/POTFILES.in
index fcb1a5a..672be03 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,10 +1,17 @@
 # This is a list of files which contain translatable strings.
 # This file was generated by ../make-gnucash-potfiles.
+src/app-utils/app-utils.scm
 src/app-utils/business-helpers.c
 src/app-utils/business-options.c
+src/app-utils/business-options.scm
+src/app-utils/business-prefs.scm
 src/app-utils/calculation/expression_parser.c
 src/app-utils/calculation/fin.c
+src/app-utils/c-interface.scm
+src/app-utils/config-var.scm
+src/app-utils/date-utilities.scm
 src/app-utils/file-utils.c
+src/app-utils/gettext.scm
 src/app-utils/gfec.c
 src/app-utils/gnc-accounting-period.c
 src/app-utils/gnc-account-merge.c
@@ -24,8 +31,13 @@ src/app-utils/gnc-sx-instance-model.c
 src/app-utils/gnc-ui-balances.c
 src/app-utils/gnc-ui-util.c
 src/app-utils/guile-util.c
+src/app-utils/hooks.scm
+src/app-utils/migrate-prefs.scm
+src/app-utils/options.scm
 src/app-utils/option-util.c
+src/app-utils/prefs.scm
 src/app-utils/QuickFill.c
+src/app-utils/simple-obj.scm
 src/backend/dbi/gnc-backend-dbi.c
 src/backend/sql/escape.c
 src/backend/sql/gnc-account-sql.c
@@ -85,6 +97,7 @@ src/backend/xml/sixtp-stack.c
 src/backend/xml/sixtp-to-dom-parser.c
 src/backend/xml/sixtp-utils.c
 src/bin/gnucash-bin.c
+src/business/business-gnome/business-gnome.scm
 src/business/business-gnome/business-gnome-utils.c
 src/business/business-gnome/business-options-gnome.c
 src/business/business-gnome/business-urls.c
@@ -123,6 +136,7 @@ src/business/business-ledger/gncEntryLedgerLayout.c
 src/business/business-ledger/gncEntryLedgerLoad.c
 src/business/business-ledger/gncEntryLedgerModel.c
 src/core-utils/binreloc.c
+src/core-utils/core-utils.scm
 src/core-utils/gnc-environment.c
 src/core-utils/gnc-features.c
 src/core-utils/gnc-filepath-utils.c
@@ -137,9 +151,14 @@ src/core-utils/gnc-prefs.c
 src/core-utils/gnc-uri-utils.c
 src/doc/doxygen_main_page.c
 src/engine/Account.c
+src/engine/business-core.scm
 src/engine/cap-gains.c
 src/engine/cashobjects.c
+src/engine/commodity-table.scm
 src/engine/engine-helpers.c
+src/engine/engine-interface.scm
+src/engine/engine.scm
+src/engine/engine-utilities.scm
 src/engine/glib-helpers.c
 src/engine/gncAddress.c
 src/engine/gncBillTerm.c
@@ -158,6 +177,7 @@ src/engine/gncInvoice.c
 src/engine/gncJob.c
 src/engine/gnc-lot.c
 src/engine/gncmod-engine.c
+src/engine/gnc-numeric.scm
 src/engine/gncOrder.c
 src/engine/gncOwner.c
 src/engine/gnc-pricedb.c
@@ -179,6 +199,7 @@ src/engine/SX-ttinfo.c
 src/engine/Transaction.c
 src/engine/TransLog.c
 src/gnc-module/gnc-module.c
+src/gnc-module/gnc-module.scm
 src/gnome/assistant-acct-period.c
 src/gnome/assistant-hierarchy.c
 src/gnome/assistant-loan.c
@@ -301,6 +322,7 @@ src/gnome-utils/gnc-icons.c
 src/gnome-utils/gnc-keyring.c
 src/gnome-utils/gnc-main-window.c
 src/gnome-utils/gnc-menu-extensions.c
+src/gnome-utils/gnc-menu-extensions.scm
 src/gnome-utils/gncmod-gnome-utils.c
 src/gnome-utils/gnc-period-select.c
 src/gnome-utils/gnc-plugin.c
@@ -331,6 +353,7 @@ src/gnome-utils/gnc-tree-view-price.c
 src/gnome-utils/gnc-tree-view-split-reg.c
 src/gnome-utils/gnc-tree-view-sx-list.c
 src/gnome-utils/gnc-window.c
+src/gnome-utils/gnome-utils.scm
 [type: gettext/gsettings]src/gnome-utils/gschemas/org.gnucash.history.gschema.xml.in.in
 [type: gettext/gsettings]src/gnome-utils/gschemas/org.gnucash.warnings.gschema.xml.in.in
 src/gnome-utils/gtkbuilder/assistant-xml-encoding.glade
@@ -425,6 +448,15 @@ src/import-export/qif-imp/dialog-account-picker.glade
 src/import-export/qif-imp/gncmod-qif-import.c
 src/import-export/qif-imp/gnc-plugin-qif-import.c
 [type: gettext/gsettings]src/import-export/qif-imp/gschemas/org.gnucash.dialogs.import.qif.gschema.xml.in.in
+src/import-export/qif-imp/qif-dialog-utils.scm
+src/import-export/qif-imp/qif-file.scm
+src/import-export/qif-imp/qif-guess-map.scm
+src/import-export/qif-imp/qif-import.scm
+src/import-export/qif-imp/qif-merge-groups.scm
+src/import-export/qif-imp/qif-objects.scm
+src/import-export/qif-imp/qif-parse.scm
+src/import-export/qif-imp/qif-to-gnc.scm
+src/import-export/qif-imp/qif-utils.scm
 src/import-export/qif/qif-context.c
 src/import-export/qif/qif-file.c
 src/import-export/qif/qif-objects.c
@@ -508,7 +540,25 @@ src/register/register-gnome/gnucash-style.c
 src/register/register-gnome/pricecell-gnome.c
 src/register/register-gnome/quickfillcell-gnome.c
 src/register/register-gnome/table-gnome.c
+src/report/business-reports/aging.scm
+src/report/business-reports/balsheet-eg.eguile.scm
+src/report/business-reports/balsheet-eg.scm
+src/report/business-reports/business-reports.scm
+src/report/business-reports/customer-summary.scm
+src/report/business-reports/easy-invoice.scm
+src/report/business-reports/fancy-invoice.scm
+src/report/business-reports/invoice.scm
+src/report/business-reports/job-report.scm
+src/report/business-reports/owner-report.scm
+src/report/business-reports/payables.scm
+src/report/business-reports/receivables.scm
+src/report/business-reports/taxinvoice.eguile.scm
+src/report/business-reports/taxinvoice.scm
+src/report/locale-specific/us/de_DE.scm
 src/report/locale-specific/us/gncmod-locale-reports-us.c
+src/report/locale-specific/us/taxtxf-de_DE.scm
+src/report/locale-specific/us/taxtxf.scm
+src/report/locale-specific/us/us.scm
 src/report/report-gnome/dialog-custom-report.c
 src/report/report-gnome/dialog-custom-report.glade
 src/report/report-gnome/dialog-report-column-view.c
@@ -516,17 +566,91 @@ src/report/report-gnome/dialog-report.glade
 src/report/report-gnome/dialog-report-style-sheet.c
 src/report/report-gnome/gncmod-report-gnome.c
 src/report/report-gnome/gnc-plugin-page-report.c
+src/report/report-gnome/report-gnome.scm
 src/report/report-gnome/window-report.c
+src/report/report-system/collectors.scm
+src/report/report-system/commodity-utilities.scm
+src/report/report-system/eguile-gnc.scm
+src/report/report-system/eguile-html-utilities.scm
+src/report/report-system/eguile-utilities.scm
 src/report/report-system/gncmod-report-system.c
 src/report/report-system/gnc-report.c
+src/report/report-system/html-acct-table.scm
+src/report/report-system/html-barchart.scm
+src/report/report-system/html-document.scm
+src/report/report-system/html-fonts.scm
+src/report/report-system/html-jqplot.scm
+src/report/report-system/html-linechart.scm
+src/report/report-system/html-piechart.scm
+src/report/report-system/html-scatter.scm
+src/report/report-system/html-style-info.scm
+src/report/report-system/html-style-sheet.scm
+src/report/report-system/html-table.scm
+src/report/report-system/html-text.scm
+src/report/report-system/html-utilities.scm
+src/report/report-system/list-extras.scm
+src/report/report-system/options-utilities.scm
+src/report/report-system/report-collectors.scm
+src/report/report-system/report.scm
+src/report/report-system/report-system.scm
+src/report/report-system/report-utilities.scm
+src/report/standard-reports/account-piecharts.scm
+src/report/standard-reports/account-summary.scm
+src/report/standard-reports/advanced-portfolio.scm
+src/report/standard-reports/average-balance.scm
+src/report/standard-reports/balance-sheet.scm
+src/report/standard-reports/budget-balance-sheet.scm
+src/report/standard-reports/budget-barchart.scm
+src/report/standard-reports/budget-flow.scm
+src/report/standard-reports/budget-income-statement.scm
+src/report/standard-reports/budget.scm
+src/report/standard-reports/cash-flow.scm
+src/report/standard-reports/category-barchart.scm
+src/report/standard-reports/daily-reports.scm
+src/report/standard-reports/equity-statement.scm
+src/report/standard-reports/general-journal.scm
+src/report/standard-reports/general-ledger.scm
 src/report/standard-reports/gncmod-standard-reports.c
+src/report/standard-reports/income-statement.scm
+src/report/standard-reports/net-barchart.scm
+src/report/standard-reports/net-linechart.scm
+src/report/standard-reports/portfolio.scm
+src/report/standard-reports/price-scatter.scm
+src/report/standard-reports/register.scm
+src/report/standard-reports/standard-reports.scm
+src/report/standard-reports/sx-summary.scm
+src/report/standard-reports/transaction.scm
+src/report/standard-reports/trial-balance.scm
 src/report/stylesheets/gncmod-stylesheets.c
 src/report/stylesheets/gnc-plugin-stylesheets.c
+src/report/stylesheets/stylesheet-easy.scm
+src/report/stylesheets/stylesheet-fancy.scm
+src/report/stylesheets/stylesheet-footer.scm
+src/report/stylesheets/stylesheet-plain.scm
+src/report/stylesheets/stylesheets.scm
 src/report/utility-reports/gncmod-utility-reports.c
+src/report/utility-reports/hello-world.scm
+src/report/utility-reports/utility-reports.scm
+src/report/utility-reports/view-column.scm
+src/report/utility-reports/welcome-to-gnucash.scm
+src/scm/fin.scm
+src/scm/gnumeric/gnumeric-utilities.scm
+src/scm/gnumeric/table-utils.scm
+src/scm/main.scm
+src/scm/price-quotes.scm
+src/scm/printf.scm
+src/scm/string.scm
+src/scm/substring-search.scm
+src/scm/xml-generator.scm
+src/tax/us/de_DE.scm
 src/tax/us/gncmod-tax-us.c
+src/tax/us/txf-de_DE.scm
+src/tax/us/txf-help-de_DE.scm
+src/tax/us/txf-help.scm
+src/tax/us/txf.scm
+src/tax/us/us.scm
 src/gnome/gnucash.appdata.xml.in
 src/gnome/gnucash.desktop.in.in
 src/libqof/qof/gnc-date.c
 src/libqof/qof/qofbookslots.h
-intl-scm/guile-strings.c
 doc/tip_of_the_day.list.in
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
index a3d3331..f16640c 100644
--- a/po/POTFILES.skip
+++ b/po/POTFILES.skip
@@ -19,34 +19,16 @@ src/libqof/qof/qofquery-deserial.c
 src/libqof/qof/qofquery-serialize.c
 src/libqof/qof/qofsql.c
 
-# The scheme files are handled by intl-scm/guile-strings.c because
-# intltool wouldn't scan scheme files. They're here now because
-# intltool 0.50 *does* scan them, and it creates an error during make
-# check. Once the whole world has upgraded to intltool 0.50, intl-scm
-# can be deleted and these files added to POTFILES.in.
+# Skip softlinks to scm files. These softlinks are created
+# for testing purposes. Unfortunately distcheck doesn't appear
+# smart enough to ignore them.
 
-src/app-utils/app-utils.scm
-src/app-utils/business-prefs.scm
-src/app-utils/date-utilities.scm
 src/app-utils/gnucash/app-utils.scm
-src/app-utils/prefs.scm
-src/import-export/qif-imp/qif-dialog-utils.scm
-src/import-export/qif-imp/qif-file.scm
 src/import-export/qif-imp/qif-import/qif-dialog-utils.scm
 src/import-export/qif-imp/qif-import/qif-file.scm
 src/import-export/qif-imp/qif-import/qif-merge-groups.scm
 src/import-export/qif-imp/qif-import/qif-parse.scm
 src/import-export/qif-imp/qif-import/qif-to-gnc.scm
-src/import-export/qif-imp/qif-merge-groups.scm
-src/import-export/qif-imp/qif-parse.scm
-src/import-export/qif-imp/qif-to-gnc.scm
-src/report/business-reports/aging.scm
-src/report/business-reports/balsheet-eg.eguile.scm
-src/report/business-reports/balsheet-eg.scm
-src/report/business-reports/business-reports.scm
-src/report/business-reports/customer-summary.scm
-src/report/business-reports/easy-invoice.scm
-src/report/business-reports/fancy-invoice.scm
 src/report/business-reports/gnucash/report/aging.scm
 src/report/business-reports/gnucash/report/balsheet-eg.eguile.scm
 src/report/business-reports/gnucash/report/balsheet-eg.scm
@@ -61,44 +43,10 @@ src/report/business-reports/gnucash/report/payables.scm
 src/report/business-reports/gnucash/report/receivables.scm
 src/report/business-reports/gnucash/report/taxinvoice.eguile.scm
 src/report/business-reports/gnucash/report/taxinvoice.scm
-src/report/business-reports/invoice.scm
-src/report/business-reports/job-report.scm
-src/report/business-reports/owner-report.scm
-src/report/business-reports/payables.scm
-src/report/business-reports/receivables.scm
-src/report/business-reports/taxinvoice.eguile.scm
-src/report/business-reports/taxinvoice.scm
 src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm
 src/report/locale-specific/us/gnucash/report/taxtxf.scm
-src/report/locale-specific/us/taxtxf-de_DE.scm
-src/report/locale-specific/us/taxtxf.scm
 src/report/report-gnome/gnucash/report/report-gnome.scm
-src/report/report-gnome/report-gnome.scm
-src/report/report-system/eguile-gnc.scm
 src/report/report-system/gnucash/report/eguile-gnc.scm
-src/report/report-system/html-acct-table.scm
-src/report/report-system/html-fonts.scm
-src/report/report-system/html-style-sheet.scm
-src/report/report-system/html-utilities.scm
-src/report/report-system/options-utilities.scm
-src/report/report-system/report-utilities.scm
-src/report/report-system/report.scm
-src/report/standard-reports/account-piecharts.scm
-src/report/standard-reports/account-summary.scm
-src/report/standard-reports/advanced-portfolio.scm
-src/report/standard-reports/average-balance.scm
-src/report/standard-reports/balance-sheet.scm
-src/report/standard-reports/budget-balance-sheet.scm
-src/report/standard-reports/budget-barchart.scm
-src/report/standard-reports/budget-flow.scm
-src/report/standard-reports/budget-income-statement.scm
-src/report/standard-reports/budget.scm
-src/report/standard-reports/cash-flow.scm
-src/report/standard-reports/category-barchart.scm
-src/report/standard-reports/daily-reports.scm
-src/report/standard-reports/equity-statement.scm
-src/report/standard-reports/general-journal.scm
-src/report/standard-reports/general-ledger.scm
 src/report/standard-reports/gnucash/report/standard-reports/account-piecharts.scm
 src/report/standard-reports/gnucash/report/standard-reports/account-summary.scm
 src/report/standard-reports/gnucash/report/standard-reports/advanced-portfolio.scm
@@ -124,36 +72,14 @@ src/report/standard-reports/gnucash/report/standard-reports/register.scm
 src/report/standard-reports/gnucash/report/standard-reports/sx-summary.scm
 src/report/standard-reports/gnucash/report/standard-reports/transaction.scm
 src/report/standard-reports/gnucash/report/standard-reports/trial-balance.scm
-src/report/standard-reports/income-statement.scm
-src/report/standard-reports/net-barchart.scm
-src/report/standard-reports/net-linechart.scm
-src/report/standard-reports/portfolio.scm
-src/report/standard-reports/price-scatter.scm
-src/report/standard-reports/register.scm
-src/report/standard-reports/sx-summary.scm
-src/report/standard-reports/transaction.scm
-src/report/standard-reports/trial-balance.scm
 src/report/stylesheets/gnucash/report/stylesheet-easy.scm
 src/report/stylesheets/gnucash/report/stylesheet-fancy.scm
 src/report/stylesheets/gnucash/report/stylesheet-footer.scm
 src/report/stylesheets/gnucash/report/stylesheet-plain.scm
-src/report/stylesheets/stylesheet-easy.scm
-src/report/stylesheets/stylesheet-fancy.scm
-src/report/stylesheets/stylesheet-footer.scm
-src/report/stylesheets/stylesheet-plain.scm
 src/report/utility-reports/gnucash/report/hello-world.scm
 src/report/utility-reports/gnucash/report/view-column.scm
 src/report/utility-reports/gnucash/report/welcome-to-gnucash.scm
-src/report/utility-reports/hello-world.scm
-src/report/utility-reports/view-column.scm
-src/report/utility-reports/welcome-to-gnucash.scm
 src/scm/build-config.scm
 src/scm/build-config.scm.in
-src/scm/command-line.scm
 src/scm/gnucash/price-quotes.scm
-src/scm/main-window.scm
-src/scm/price-quotes.scm
-src/tax/us/de_DE.scm
 src/tax/us/gnucash/tax/de_DE.scm
-src/tax/us/txf-de_DE.scm
-src/tax/us/txf.scm

commit 48b30271e0427dde058a475849869454fcf4e851
Author: Geert Janssens <janssens-geert at telenet.be>
Date:   Fri Jan 30 11:49:41 2015 +0100

    Rewrite gnc-test-env in perl
    
    This eliminates another guile dependency in the build chain
    
    Conflicts:
    	src/backend/dbi/test/Makefile.am

diff --git a/configure.ac b/configure.ac
index 444d7fa..015fc89 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1575,7 +1575,6 @@ AC_CONFIG_FILES(
   dnl # init-commands go here
 )
 # A few files need extra actions at creation time
-AC_CONFIG_FILES([src/gnc-test-env], [chmod u+x src/gnc-test-env])
 AC_CONFIG_FILES([src/bin/overrides/gnucash-make-guids], [chmod u+x src/bin/overrides/gnucash-make-guids])
 LDFLAGS="${LDFLAGS} ${NOUNDEF}"
 AC_OUTPUT
diff --git a/src/Makefile.am b/src/Makefile.am
index acc4ac5..ab000a3 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -51,8 +51,6 @@ endif
 noinst_HEADERS = \
   swig-runtime.h
 
-noinst_DATA = gnc-test-env
-
 if BUILDING_FROM_SCM
 swig-runtime.h:
 	$(SWIG) -guile -external-runtime $@
@@ -62,6 +60,6 @@ MAINTAINERCLEANFILES = swig-runtime.h
 EXTRA_DIST = \
   base-typemaps.i \
   README.modules \
-  gnc-test-env \
+  gnc-test-env.pl \
   guile-mappings.h \
   platform.h
diff --git a/src/app-utils/Makefile.am b/src/app-utils/Makefile.am
index a899cec..026a6e1 100644
--- a/src/app-utils/Makefile.am
+++ b/src/app-utils/Makefile.am
@@ -219,7 +219,7 @@ GUILE_COMPILE_ENV = \
 %.go : %.scm .scm-links $(pkglib_LTLIBRARIES)
 	GNC_UNINSTALLED=yes \
 	GNC_BUILDDIR=${top_builddir} \
-	$(shell ${top_builddir}/src/gnc-test-env --no-exports ${GUILE_COMPILE_ENV}) \
+	$(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GUILE_COMPILE_ENV}) \
 	$(GUILD) compile -o $@ $<
 
 gncscmmodcachedir = ${GNC_SCM_INSTALL_DIR}/ccache/@GUILE_EFFECTIVE_VERSION@/gnucash
diff --git a/src/app-utils/test/Makefile.am b/src/app-utils/test/Makefile.am
index 8510dff..9304048 100644
--- a/src/app-utils/test/Makefile.am
+++ b/src/app-utils/test/Makefile.am
@@ -32,7 +32,7 @@ TESTS_ENVIRONMENT = \
   GUILE="${GUILE}" \
   SRCDIR=${srcdir} \
   GNC_BUILDDIR="${abs_top_builddir}" \
-  $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 LDADD = \
    ${top_builddir}/src/libqof/qof/libgnc-qof.la \
diff --git a/src/backend/dbi/test/Makefile.am b/src/backend/dbi/test/Makefile.am
index b10fa9f..8c5332c 100644
--- a/src/backend/dbi/test/Makefile.am
+++ b/src/backend/dbi/test/Makefile.am
@@ -41,7 +41,7 @@ TESTS_ENVIRONMENT = \
   GNC_ACCOUNT_PATH=${top_srcdir}/accounts/C \
   SRCDIR=${srcdir} \
   ${gnc_dbd_dir_override} \
-  $(shell ${top_builddir}/src/gnc-test-env ${GNC_TEST_DEPS})
+  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 EXTRA_DIST += \
     test-dbi-stuff.h \
diff --git a/src/backend/sql/test/Makefile.am b/src/backend/sql/test/Makefile.am
index 4424649..c914a41 100644
--- a/src/backend/sql/test/Makefile.am
+++ b/src/backend/sql/test/Makefile.am
@@ -21,7 +21,7 @@ GNC_TEST_DEPS = \
 TESTS_ENVIRONMENT = \
   GNC_ACCOUNT_PATH=${top_srcdir}/accounts/C \
   SRCDIR=${srcdir} \
-  $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 check_PROGRAMS = $(TESTS)
 
diff --git a/src/backend/xml/test/Makefile.am b/src/backend/xml/test/Makefile.am
index 0575f90..d399353 100644
--- a/src/backend/xml/test/Makefile.am
+++ b/src/backend/xml/test/Makefile.am
@@ -217,7 +217,7 @@ TESTS_ENVIRONMENT = \
   GNC_TEST_FILES=test-files/xml2 \
   SRCDIR=${srcdir} \
   GNC_BUILDDIR="${abs_top_builddir}" \
-  $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 check_LTLIBRARIES = libgnc-test-file-stuff.la
 
diff --git a/src/bin/overrides/gnucash-build-env.in b/src/bin/overrides/gnucash-build-env.in
index cb8e769..99fdb7a 100644
--- a/src/bin/overrides/gnucash-build-env.in
+++ b/src/bin/overrides/gnucash-build-env.in
@@ -30,7 +30,7 @@ then
 fi
 
 set +x
-eval `${top_builddir}/src/gnc-test-env \
+eval `${top_srcdir}/src/gnc-test-env.pl \
   --gnc-module-dir ${top_builddir}/src/engine \
   --gnc-module-dir ${top_builddir}/src/backend/xml \
   --gnc-module-dir ${top_builddir}/src/network-utils \
diff --git a/src/business/business-gnome/Makefile.am b/src/business/business-gnome/Makefile.am
index 4eeb61a..13dabac 100644
--- a/src/business/business-gnome/Makefile.am
+++ b/src/business/business-gnome/Makefile.am
@@ -141,7 +141,7 @@ GUILE_COMPILE_ENV = \
 %.go : %.scm .scm-links $(pkglib_LTLIBRARIES)
 	GNC_UNINSTALLED=yes \
 	GNC_BUILDDIR=${top_builddir} \
-	$(shell ${top_builddir}/src/gnc-test-env --no-exports ${GUILE_COMPILE_ENV}) \
+	$(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GUILE_COMPILE_ENV}) \
 	$(GUILD) compile -o $@ $<
 
 gncscmmodcachedir = ${GNC_SCM_INSTALL_DIR}/ccache/@GUILE_EFFECTIVE_VERSION@/gnucash
diff --git a/src/core-utils/Makefile.am b/src/core-utils/Makefile.am
index 144b8b9..4b7ce86 100644
--- a/src/core-utils/Makefile.am
+++ b/src/core-utils/Makefile.am
@@ -121,7 +121,7 @@ GUILE_COMPILE_ENV = \
 %.go : %.scm .scm-links $(lib_LTLIBRARIES)
 	GNC_UNINSTALLED=yes \
 	GNC_BUILDDIR=${top_builddir} \
-	$(shell ${top_builddir}/src/gnc-test-env --no-exports ${GUILE_COMPILE_ENV})  \
+	$(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GUILE_COMPILE_ENV})  \
 	$(GUILD) compile -o $@ $<
 
 gncscmmodcachedir = ${GNC_SCM_INSTALL_DIR}/ccache/@GUILE_EFFECTIVE_VERSION@/gnucash
diff --git a/src/core-utils/test/Makefile.am b/src/core-utils/test/Makefile.am
index e104597..f1f6d1b 100644
--- a/src/core-utils/test/Makefile.am
+++ b/src/core-utils/test/Makefile.am
@@ -27,7 +27,7 @@ GNC_TEST_DEPS = \
 
 TESTS_ENVIRONMENT = \
   SRCDIR=${srcdir} \
-  $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 check_PROGRAMS = \
   test-gnc-uri-utils \
diff --git a/src/engine/Makefile.am b/src/engine/Makefile.am
index edccd18..fc6e819 100644
--- a/src/engine/Makefile.am
+++ b/src/engine/Makefile.am
@@ -198,7 +198,7 @@ GUILE_COMPILE_ENV = \
 %.go : %.scm .scm-links $(pkglib_LTLIBRARIES)
 	GNC_UNINSTALLED=yes \
 	GNC_BUILDDIR=${top_builddir} \
-	$(shell ${top_builddir}/src/gnc-test-env --no-exports ${GUILE_COMPILE_ENV}) \
+	$(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GUILE_COMPILE_ENV}) \
 	$(GUILD) compile -o $@ $<
 
 gncscmmodcachedir = ${GNC_SCM_INSTALL_DIR}/ccache/@GUILE_EFFECTIVE_VERSION@/gnucash
diff --git a/src/engine/test/Makefile.am b/src/engine/test/Makefile.am
index 2a1ce64..98d7d24 100644
--- a/src/engine/test/Makefile.am
+++ b/src/engine/test/Makefile.am
@@ -68,7 +68,7 @@ TESTS_ENVIRONMENT = \
   GUILE="${GUILE}" \
   SRCDIR=${srcdir} \
   GNC_BUILDDIR="${abs_top_builddir}" \
-  $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 check_PROGRAMS = \
   test-link \
diff --git a/src/gnc-module/Makefile.am b/src/gnc-module/Makefile.am
index 71f0048..def4016 100644
--- a/src/gnc-module/Makefile.am
+++ b/src/gnc-module/Makefile.am
@@ -74,7 +74,7 @@ GUILE_COMPILE_ENV = \
 %.go : %.scm .scm-links $(lib_LTLIBRARIES)
 	GNC_UNINSTALLED=yes \
 	GNC_BUILDDIR=${top_builddir} \
-	$(shell ${top_builddir}/src/gnc-test-env --no-exports ${GUILE_COMPILE_ENV}) \
+	$(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GUILE_COMPILE_ENV}) \
 	$(GUILD) compile -o $@ $<
 
 gncscmmodcachedir = ${GNC_SCM_INSTALL_DIR}/ccache/@GUILE_EFFECTIVE_VERSION@/gnucash
diff --git a/src/gnc-module/test/Makefile.am b/src/gnc-module/test/Makefile.am
index e4f2c8b..843a5d8 100644
--- a/src/gnc-module/test/Makefile.am
+++ b/src/gnc-module/test/Makefile.am
@@ -49,7 +49,7 @@ GNC_TEST_DEPS = \
 TESTS_ENVIRONMENT = \
   GUILE_WARN_DEPRECATED=no \
   GUILE="${GUILE}" \
-  $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 check_PROGRAMS = \
   test-load-c \
diff --git a/src/gnc-test-env.in b/src/gnc-test-env.in
deleted file mode 100755
index 596dd3a..0000000
--- a/src/gnc-test-env.in
+++ /dev/null
@@ -1,139 +0,0 @@
-#!/bin/sh
-exec @GUILE@ -s $0 "$@"
-!#
-
-;; Spit out the environment variable settings needed based on
-;; arguments listing gnc-module-dirs, guile-load-dirs, and
-;; library-dirs
-
-(use-modules (srfi srfi-13) (srfi srfi-14)) ;; for string-tokenize
-;; 'debug is deprecated and unused since guile 2
-(cond-expand
-  (guile-2 )
-  (else
-    (debug-enable 'debug)))
-(debug-enable 'backtrace)
-(read-enable 'positions)
-
-;; Are we on MS Windows here? If yes, make this a #t.
-;; (utsname:sysname (uname)) wasn't available in my guile-1.6.7 on
-;; mingw, so I don't know an automated way to do this so far.
-(define is-windows?
-  (let ((ostype (getenv "OSTYPE")))
-    (and ostype
-         (string=? ostype "msys"))))
-
-(define args (cdr (command-line)))
-(define display-exports? #t)
-
-(define gnc-module-dirs '())
-(define guile-load-dirs '())
-(define library-dirs '())
-
-(define (usage-death)
-  (display "Usage: gnc-test-env [ --no-exports ]\n")
-  (display "                    [ (--gnc-module-dir dir | \n")
-  (display "                       --guile-load-dir dir | \n")
-  (display "                       --library-dir dir) ... ]\n")
-  (exit 1))
-
-(define (process-args! args)
-  (let loop ((rest args))
-    (cond
-     ((null? rest) #t)
-     ((string=? "--gnc-module-dir" (car rest))
-      (set! gnc-module-dirs (cons (cadr rest) gnc-module-dirs))
-      (loop (cddr rest)))
-     ((string=? "--guile-load-dir" (car rest))
-      (set! guile-load-dirs (cons (cadr rest) guile-load-dirs))
-      (loop (cddr rest)))
-     ((string=? "--library-dir" (car rest))
-      (set! library-dirs (cons (cadr rest) library-dirs))
-      (loop (cddr rest)))
-     (else (usage-death))))
-  (set! gnc-module-dirs (reverse gnc-module-dirs))
-  (set! guile-load-dirs (reverse guile-load-dirs)))
-
-;; The character set of everything except a directory separator as
-;; necessary for string-tokenize below
-(define char-set-path
-  (char-set-adjoin
-   (char-set-delete char-set:graphic #\/)
-   #\ ))
-
-;; The directory separator string.
-(define dir-separator-string
-  (if is-windows?
-      "\\\\" ;; Needs to be quoted twice because of additional shell quoting
-      "/"))
-
-;; The path separator string; only needed for GUILE_LOAD_PATH
-(define path-sep-str
-  (if is-windows?
-      ";"
-      ":"))
-
-;; Adapt the directory separator character in the given PATH and
-;; return the result.
-(define (adapt-dirsep path)
-  (string-join
-   (string-tokenize path char-set-path)
-   dir-separator-string))
-
-(if (and (not (null? args))
-         (string=? "--no-exports" (car args)))
-    (begin
-      (set! display-exports? #f)
-      (set! args (cdr args))))
-
-(if (null? args) (exit 0))
-
-(process-args! args)
-
-(define (get-dir-adder env-name dir-list item-suffix separator)
-  (string-append env-name "=\""
-                 (apply string-append
-                        (map
-                         (lambda (dir)
-                           (string-append dir item-suffix separator))
-                         dir-list))
-                 "${" env-name "}\" "))
-
-(display
- (adapt-dirsep
-  (get-dir-adder "GNC_MODULE_PATH" gnc-module-dirs "/.libs" path-sep-str)))
-
-(display
- (adapt-dirsep
-  (get-dir-adder "GUILE_LOAD_PATH" guile-load-dirs "" path-sep-str)))
-
-(display
- (adapt-dirsep
-  (get-dir-adder "GUILE_LOAD_COMPILED_PATH" guile-load-dirs "" path-sep-str)))
-
-(display
- (adapt-dirsep
-  (get-dir-adder "LD_LIBRARY_PATH" library-dirs "/.libs" path-sep-str)))
-
-(display
- (adapt-dirsep
-  (get-dir-adder "DYLD_LIBRARY_PATH" library-dirs "/.libs" path-sep-str)))
-
-(if is-windows?
-    (display
-     (get-dir-adder "PATH" library-dirs "/.libs" ":")))
-
-(if display-exports?
-    (begin
-      (display "; ")
-      (display " export GNC_MODULE_PATH;")
-      (display " export GUILE_LOAD_PATH;")
-      (display " export GUILE_LOAD_COMPILED_PATH;")
-      (display " export LD_LIBRARY_PATH;")
-      (display " export DYLD_LIBRARY_PATH;")
-      (if is-windows?
-          (display " export PATH;"))))
-
-;; Local Variables:
-;; mode: scheme
-;; End:
diff --git a/src/gnc-test-env.pl b/src/gnc-test-env.pl
new file mode 100755
index 0000000..1440831
--- /dev/null
+++ b/src/gnc-test-env.pl
@@ -0,0 +1,61 @@
+#!/usr/bin/perl
+
+# Spit out the environment variable settings needed based on
+# arguments listing @gnc_module_dirs, @guile_load_dirs, and
+# @library_dirs
+use Getopt::Long;
+
+my $define_exports=1;
+my @gnc_module_dirs=();
+my @guile_load_dirs=();
+my @library_dirs=();
+GetOptions ("exports!"       => \$define_exports,  # flag
+            "gnc-module-dir=s" => \@gnc_module_dirs, # arry of strings
+            "guile-load-dir=s" => \@guile_load_dirs, # arry of strings
+            "library-dir=s"    => \@library_dirs,    # arry of strings
+            "verbose" => \$verbose) # flag
+or die(
+"Usage: gnc-test-env.pl [ --exports | --noexports ]\n" .
+"                       [ (--gnc-module-dir dir | --guile-load-dir dir | --library-dir dir) ... ]\n");
+
+if ( $^O =~ /MSWin32/ ) {
+    $path_separator=";";
+} else {
+    $path_separator=":";
+}
+
+sub print_env_var {
+    ($env_name, $dir_suffix, $separator, @dir_list) = @_;
+    return if not @dir_list;
+    my @suffixed_dir_list = map {
+        my $dir = $_ . $dir_suffix;
+        if ( $^O =~ /MSWin32/ ) {
+           $dir =~ s!/!\\\\!g; } # Backslashes need to be escaped for the environment
+        $dir;
+    } @dir_list;
+    print $env_name . '="' .
+          join($separator, @suffixed_dir_list) .
+          $separator . '${' . $env_name . '}" ';
+}
+
+print_env_var "GNC_MODULE_PATH", "/.libs", $path_separator, @gnc_module_dirs;
+print_env_var "GUILE_LOAD_PATH", "", $path_separator, @guile_load_dirs;
+print_env_var "GUILE_LOAD_COMPILED_PATH", "", $path_separator, @guile_load_dirs;
+print_env_var "LD_LIBRARY_PATH", "/.libs", $path_separator, @library_dirs;
+print_env_var "DYLD_LIBRARY_PATH", "/.libs", $path_separator, @library_dirs;
+
+if ( $^O =~ /MSWin32/ ) {
+    print_env_var "PATH", "/.libs", ":", @library_dirs;
+}
+
+if ($define_exports) {
+    print ";\n";
+    print "export GNC_MODULE_PATH;\n" if @gnc_module_dirs;
+    print "export GUILE_LOAD_PATH;\n" if @guile_load_dirs;
+    print "export GUILE_LOAD_COMPILED_PATH;\n" if @guile_load_dirs;
+    print "export LD_LIBRARY_PATH;\n" if @library_dirs;
+    print "export DYLD_LIBRARY_PATH;\n" if @library_dirs;
+    if ( $^O =~ /MSWin32/ ) {
+        print "export PATH;\n" if @library_dirs;
+    }
+}
\ No newline at end of file
diff --git a/src/gnome-utils/Makefile.am b/src/gnome-utils/Makefile.am
index b46ed7a..b0e873f 100644
--- a/src/gnome-utils/Makefile.am
+++ b/src/gnome-utils/Makefile.am
@@ -290,7 +290,7 @@ GUILE_COMPILE_ENV = \
 %.go : %.scm .scm-links $(pkglib_LTLIBRARIES)
 	GNC_UNINSTALLED=yes \
 	GNC_BUILDDIR=${top_builddir} \
-	$(shell ${top_builddir}/src/gnc-test-env --no-exports ${GUILE_COMPILE_ENV}) \
+	$(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GUILE_COMPILE_ENV}) \
 	$(GUILD) compile -o $@ $<
 
 gncscmmodcachedir = ${GNC_SCM_INSTALL_DIR}/ccache/@GUILE_EFFECTIVE_VERSION@/gnucash
diff --git a/src/gnome-utils/test/Makefile.am b/src/gnome-utils/test/Makefile.am
index d3383c7..02ea939 100644
--- a/src/gnome-utils/test/Makefile.am
+++ b/src/gnome-utils/test/Makefile.am
@@ -32,7 +32,7 @@ TESTS_ENVIRONMENT = \
   GUILE="${GUILE}" \
   SRCDIR=${srcdir} \
   GNC_BUILDDIR="${abs_top_builddir}" \
-  $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 check_PROGRAMS = \
   test-link-module test-gnc-recurrence
diff --git a/src/import-export/qif-imp/Makefile.am b/src/import-export/qif-imp/Makefile.am
index 2ea474b..242d5f4 100644
--- a/src/import-export/qif-imp/Makefile.am
+++ b/src/import-export/qif-imp/Makefile.am
@@ -125,7 +125,7 @@ GUILE_COMPILE_ENV = \
 %.go : %.scm .scm-links $(pkglib_LTLIBRARIES)
 	GNC_UNINSTALLED=yes \
 	GNC_BUILDDIR=${top_builddir} \
-	$(shell ${top_builddir}/src/gnc-test-env --no-exports ${GUILE_COMPILE_ENV}) \
+	$(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GUILE_COMPILE_ENV}) \
 	$(GUILD) compile -o $@ $<
 
 gncscmmodcachedir = ${GNC_SCM_INSTALL_DIR}/ccache/@GUILE_EFFECTIVE_VERSION@/gnucash/import-export
diff --git a/src/import-export/qif/test/Makefile.am b/src/import-export/qif/test/Makefile.am
index bd5e7c0..13bdda2 100644
--- a/src/import-export/qif/test/Makefile.am
+++ b/src/import-export/qif/test/Makefile.am
@@ -41,7 +41,7 @@ GNC_TEST_DEPS = --gnc-module-dir ${top_builddir}/src/core-utils \
 
 TESTS_ENVIRONMENT = \
   GNC_TEST_FILES=${srcdir}/test-files \
-  $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 check_PROGRAMS = \
   test-link \
diff --git a/src/import-export/test/Makefile.am b/src/import-export/test/Makefile.am
index 5363e8a..420b66b 100644
--- a/src/import-export/test/Makefile.am
+++ b/src/import-export/test/Makefile.am
@@ -48,7 +48,7 @@ GNC_TEST_DEPS = --gnc-module-dir ${top_builddir}/src/engine \
 TESTS_ENVIRONMENT = \
   GUILE_WARN_DEPRECATED=no \
   GNC_BUILDDIR="${abs_top_builddir}" \
-  $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 check_PROGRAMS = \
   test-link \
diff --git a/src/optional/python-bindings/tests/Makefile.am b/src/optional/python-bindings/tests/Makefile.am
index d828941..13a23f4 100644
--- a/src/optional/python-bindings/tests/Makefile.am
+++ b/src/optional/python-bindings/tests/Makefile.am
@@ -23,7 +23,7 @@ TESTS_ENVIRONMENT = \
   PYTHONPATH=$$PYTHONPATH:$(top_builddir)/src/test-core/ \
   PYTHONPATH=$$PYTHONPATH:$(top_srcdir)/src/test-core/ \
   PYTHONPATH=$$PYTHONPATH:$(top_builddir)/src/test-core/.libs \
-  $(shell $(top_builddir)/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
   
 ## We borrow guile's convention and use @-...-@ as the substitution
 ## brackets below, instead of the usual @... at .  This prevents autoconf
diff --git a/src/register/register-core/test/Makefile.am b/src/register/register-core/test/Makefile.am
index f7e6ecf..fe485bc 100644
--- a/src/register/register-core/test/Makefile.am
+++ b/src/register/register-core/test/Makefile.am
@@ -6,7 +6,7 @@ TESTS =  \
 #
 
 #TESTS_ENVIRONMENT := \
-#  $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+#  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 check_PROGRAMS = \
   test-link-module
diff --git a/src/register/register-gnome/test/Makefile.am b/src/register/register-gnome/test/Makefile.am
index 12d4b1b..b21e628 100644
--- a/src/register/register-gnome/test/Makefile.am
+++ b/src/register/register-gnome/test/Makefile.am
@@ -6,7 +6,7 @@ TESTS =  \
 #
 
 #TESTS_ENVIRONMENT := \
-#  $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+#  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 check_PROGRAMS = \
   test-link-module
diff --git a/src/report/business-reports/Makefile.am b/src/report/business-reports/Makefile.am
index 8ea9dfe..225f9e5 100644
--- a/src/report/business-reports/Makefile.am
+++ b/src/report/business-reports/Makefile.am
@@ -74,7 +74,7 @@ GUILE_COMPILE_ENV = \
 %.go : %.scm .scm-links $(pkglib_LTLIBRARIES)
 	GNC_UNINSTALLED=yes \
 	GNC_BUILDDIR=${top_builddir} \
-	$(shell ${top_builddir}/src/gnc-test-env --no-exports ${GUILE_COMPILE_ENV}) \
+	$(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GUILE_COMPILE_ENV}) \
 	$(GUILD) compile -o $@ $<
 
 gncscmmodcachedir = ${GNC_SCM_INSTALL_DIR}/ccache/@GUILE_EFFECTIVE_VERSION@/gnucash/report
diff --git a/src/report/locale-specific/us/Makefile.am b/src/report/locale-specific/us/Makefile.am
index fe0e87f..187e3e5 100644
--- a/src/report/locale-specific/us/Makefile.am
+++ b/src/report/locale-specific/us/Makefile.am
@@ -81,7 +81,7 @@ GUILE_COMPILE_ENV = \
 %.go : %.scm .scm-links $(pkglib_LTLIBRARIES)
 	GNC_UNINSTALLED=yes \
 	GNC_BUILDDIR=${top_builddir} \
-	$(shell ${top_builddir}/src/gnc-test-env --no-exports ${GUILE_COMPILE_ENV}) \
+	$(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GUILE_COMPILE_ENV}) \
 	$(GUILD) compile -o $@ $<
 
 gncscmmodcachedir = ${GNC_SCM_INSTALL_DIR}/ccache/@GUILE_EFFECTIVE_VERSION@/gnucash/report
diff --git a/src/report/locale-specific/us/test/Makefile.am b/src/report/locale-specific/us/test/Makefile.am
index fd998db..712490e 100644
--- a/src/report/locale-specific/us/test/Makefile.am
+++ b/src/report/locale-specific/us/test/Makefile.am
@@ -16,7 +16,7 @@ GNC_TEST_DEPS = --gnc-module-dir ${top_builddir}/src/engine \
 TESTS_ENVIRONMENT = \
   GUILE_WARN_DEPRECATED=no \
   GUILE="${GUILE}" \
-  $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 check_PROGRAMS = test-link-module
 
diff --git a/src/report/report-gnome/Makefile.am b/src/report/report-gnome/Makefile.am
index 0e7a566..8a8e33c 100644
--- a/src/report/report-gnome/Makefile.am
+++ b/src/report/report-gnome/Makefile.am
@@ -129,7 +129,7 @@ GUILE_COMPILE_ENV = \
 %.go : %.scm .scm-links $(pkglib_LTLIBRARIES)
 	GNC_UNINSTALLED=yes \
 	GNC_BUILDDIR=${top_builddir} \
-	$(shell ${top_builddir}/src/gnc-test-env --no-exports ${GUILE_COMPILE_ENV}) \
+	$(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GUILE_COMPILE_ENV}) \
 	$(GUILD) compile -o $@ $<
 
 gncscmmodcachedir = ${GNC_SCM_INSTALL_DIR}/ccache/@GUILE_EFFECTIVE_VERSION@/gnucash/report
diff --git a/src/report/report-gnome/test/Makefile.am b/src/report/report-gnome/test/Makefile.am
index d713f76..5c03452 100644
--- a/src/report/report-gnome/test/Makefile.am
+++ b/src/report/report-gnome/test/Makefile.am
@@ -55,7 +55,7 @@ TESTS_ENVIRONMENT = \
   GUILE_WARN_DEPRECATED=no \
   GUILE="${GUILE}" \
   GNC_BUILDDIR="${abs_top_builddir}" \
-  $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 
 check_PROGRAMS = test-link-module
diff --git a/src/report/report-system/Makefile.am b/src/report/report-system/Makefile.am
index d1539f8..c464ee0 100644
--- a/src/report/report-system/Makefile.am
+++ b/src/report/report-system/Makefile.am
@@ -134,7 +134,7 @@ GUILE_COMPILE_ENV = \
 %.go : %.scm .scm-links $(pkglib_LTLIBRARIES)
 	GNC_UNINSTALLED=yes \
 	GNC_BUILDDIR=${top_builddir} \
-	$(shell ${top_builddir}/src/gnc-test-env --no-exports ${GUILE_COMPILE_ENV}) \
+	$(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GUILE_COMPILE_ENV}) \
 	$(GUILD) compile -o $@ $<
 
 gncscmmodcachedir = ${GNC_SCM_INSTALL_DIR}/ccache/@GUILE_EFFECTIVE_VERSION@/gnucash/report
diff --git a/src/report/report-system/test/Makefile.am b/src/report/report-system/test/Makefile.am
index 1df692f..a01900e 100644
--- a/src/report/report-system/test/Makefile.am
+++ b/src/report/report-system/test/Makefile.am
@@ -59,7 +59,7 @@ TESTS_ENVIRONMENT = \
   GUILE_WARN_DEPRECATED=no \
   GUILE="${GUILE}" \
   GNC_BUILDDIR="${abs_top_builddir}" \
-  $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 
 check_PROGRAMS = test-link-module
diff --git a/src/report/standard-reports/Makefile.am b/src/report/standard-reports/Makefile.am
index a39c2e7..917d401 100644
--- a/src/report/standard-reports/Makefile.am
+++ b/src/report/standard-reports/Makefile.am
@@ -102,7 +102,7 @@ GUILE_COMPILE_ENV = \
 %.go : %.scm .scm-links $(pkglib_LTLIBRARIES)
 	GNC_UNINSTALLED=yes \
 	GNC_BUILDDIR=${top_builddir} \
-	$(shell ${top_builddir}/src/gnc-test-env --no-exports ${GUILE_COMPILE_ENV}) \
+	$(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GUILE_COMPILE_ENV}) \
 	$(GUILD) compile -o $@ $<
 
 gncscmmodcachedir = ${GNC_SCM_INSTALL_DIR}/ccache/@GUILE_EFFECTIVE_VERSION@/gnucash/report
diff --git a/src/report/standard-reports/test/Makefile.am b/src/report/standard-reports/test/Makefile.am
index c0bbe49..6f89e4d 100644
--- a/src/report/standard-reports/test/Makefile.am
+++ b/src/report/standard-reports/test/Makefile.am
@@ -50,7 +50,7 @@ TESTS_ENVIRONMENT = \
   GUILE_WARN_DEPRECATED=no \
   GUILE="${GUILE}" \
   GNC_BUILDDIR="${abs_top_builddir}" \
-  $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 
 SCM_TEST_HELPERS = \
diff --git a/src/report/stylesheets/Makefile.am b/src/report/stylesheets/Makefile.am
index c0fcf76..9ea4300 100644
--- a/src/report/stylesheets/Makefile.am
+++ b/src/report/stylesheets/Makefile.am
@@ -89,7 +89,7 @@ GUILE_COMPILE_ENV = \
 %.go : %.scm .scm-links $(pkglib_LTLIBRARIES)
 	GNC_UNINSTALLED=yes \
 	GNC_BUILDDIR=${top_builddir} \
-	$(shell ${top_builddir}/src/gnc-test-env --no-exports ${GUILE_COMPILE_ENV}) \
+	$(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GUILE_COMPILE_ENV}) \
 	$(GUILD) compile -o $@ $<
 
 gncscmmodcachedir = ${GNC_SCM_INSTALL_DIR}/ccache/@GUILE_EFFECTIVE_VERSION@/gnucash/report
diff --git a/src/report/stylesheets/test/Makefile.am b/src/report/stylesheets/test/Makefile.am
index 092b7be..3211592 100644
--- a/src/report/stylesheets/test/Makefile.am
+++ b/src/report/stylesheets/test/Makefile.am
@@ -34,6 +34,6 @@ TESTS_ENVIRONMENT = \
   GUILE_WARN_DEPRECATED=no \
   GUILE="${GUILE}" \
   GNC_BUILDDIR="${abs_top_builddir}" \
-  $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 EXTRA_DIST = test-load-module
diff --git a/src/report/utility-reports/Makefile.am b/src/report/utility-reports/Makefile.am
index 6204ea4..15edc5d 100644
--- a/src/report/utility-reports/Makefile.am
+++ b/src/report/utility-reports/Makefile.am
@@ -74,7 +74,7 @@ GUILE_COMPILE_ENV = \
 %.go : %.scm .scm-links $(pkglib_LTLIBRARIES)
 	GNC_UNINSTALLED=yes \
 	GNC_BUILDDIR=${top_builddir} \
-	$(shell ${top_builddir}/src/gnc-test-env --no-exports ${GUILE_COMPILE_ENV}) \
+	$(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GUILE_COMPILE_ENV}) \
 	$(GUILD) compile -o $@ $<
 
 gncscmmodcachedir = ${GNC_SCM_INSTALL_DIR}/ccache/@GUILE_EFFECTIVE_VERSION@/gnucash/report
diff --git a/src/report/utility-reports/test/Makefile.am b/src/report/utility-reports/test/Makefile.am
index e4bfad4..ec5e232 100644
--- a/src/report/utility-reports/test/Makefile.am
+++ b/src/report/utility-reports/test/Makefile.am
@@ -30,6 +30,6 @@ TESTS_ENVIRONMENT = \
   GUILE_WARN_DEPRECATED=no \
   GUILE="${GUILE}" \
   GNC_BUILDDIR="${abs_top_builddir}" \
-  $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 EXTRA_DIST = test-load-module
diff --git a/src/scm/Makefile.am b/src/scm/Makefile.am
index ea07c85..e45fd59 100644
--- a/src/scm/Makefile.am
+++ b/src/scm/Makefile.am
@@ -52,7 +52,7 @@ GUILE_COMPILE_ENV = \
 
 
 %.go : %.scm .scm-links
-	$(shell ${top_builddir}/src/gnc-test-env --no-exports ${GUILE_COMPILE_ENV}) \
+	$(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GUILE_COMPILE_ENV}) \
 	$(GUILD) compile -o $@ $<
 
 gncscmmodcachedir = ${GNC_SCM_INSTALL_DIR}/ccache/@GUILE_EFFECTIVE_VERSION@/gnucash
diff --git a/src/tax/us/Makefile.am b/src/tax/us/Makefile.am
index 66451d5..1d1a02d 100644
--- a/src/tax/us/Makefile.am
+++ b/src/tax/us/Makefile.am
@@ -61,7 +61,7 @@ GUILE_COMPILE_ENV = \
 %.go : %.scm .scm-links $(pkglib_LTLIBRARIES)
 	GNC_UNINSTALLED=yes \
 	GNC_BUILDDIR=${top_builddir} \
-	$(shell ${top_builddir}/src/gnc-test-env --no-exports ${GUILE_COMPILE_ENV}) \
+	$(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GUILE_COMPILE_ENV}) \
 	$(GUILD) compile -o $@ $<
 
 gncscmmodcachedir = ${GNC_SCM_INSTALL_DIR}/ccache/@GUILE_EFFECTIVE_VERSION@/gnucash/tax
diff --git a/src/tax/us/test/Makefile.am b/src/tax/us/test/Makefile.am
index 7330674..bab6a0e 100644
--- a/src/tax/us/test/Makefile.am
+++ b/src/tax/us/test/Makefile.am
@@ -10,7 +10,7 @@ GNC_TEST_DEPS = \
 
 TESTS_ENVIRONMENT = \
   GUILE="${GUILE}" \
-  $(shell ${top_builddir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
+  $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
 check_PROGRAMS=test-link-module
 test_link_module_SOURCES=test-link-module.c
diff --git a/src/test-core/Makefile.am b/src/test-core/Makefile.am
index cfa7f6d..0bc589a 100644
--- a/src/test-core/Makefile.am
+++ b/src/test-core/Makefile.am
@@ -106,7 +106,7 @@ GUILE_COMPILE_ENV = \
 %.go : %.scm .scm-links $(noinst_LTLIBRARIES)
 	GNC_UNINSTALLED=yes \
 	GNC_BUILDDIR=${top_builddir} \
-	$(shell ${top_builddir}/src/gnc-test-env --no-exports ${GUILE_COMPILE_ENV}) \
+	$(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GUILE_COMPILE_ENV}) \
 	$(GUILD) compile -o $@ $<
 
 gncscmmodcachedir = ${GNC_SCM_INSTALL_DIR}/ccache/@GUILE_EFFECTIVE_VERSION@/gnucash

commit 87520cdde4bd85731a8f82393be90b316ffefa05
Author: Geert Janssens <janssens-geert at telenet.be>
Date:   Thu Jan 29 21:07:07 2015 +0100

    Switch from guile to xml to manage our iso-currencies source file

diff --git a/configure.ac b/configure.ac
index 073e8ae..444d7fa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1550,7 +1550,6 @@ AC_CONFIG_FILES(
   dnl # non-makefiles
   src/bin/gnucash.rc
   src/app-utils/migratable-prefs.xml
-  src/engine/iso-currencies-to-c
   src/gnome/gnucash.desktop.in
   dnl # GSettings schema files
   src/business/business-gnome/gschemas/org.gnucash.dialogs.business.gschema.xml.in
diff --git a/src/engine/Makefile.am b/src/engine/Makefile.am
index 150e09a..edccd18 100644
--- a/src/engine/Makefile.am
+++ b/src/engine/Makefile.am
@@ -128,8 +128,6 @@ noinst_HEADERS = \
   gnc-pricedb-p.h \
   policy-p.h
 
-noinst_SCRIPTS = iso-currencies-to-c
-
 libgncmod_engine_la_LDFLAGS = -avoid-version
 if CLANG
 libgncmod_engine_la_CFLAGS = -Wno-invalid-source-encoding
@@ -158,8 +156,8 @@ EXTRA_DIST = \
   README.query-api \
   design.txt \
   extensions.txt \
-  iso-4217-currencies.scm \
-  iso-currencies-to-c \
+  iso-4217-currencies.xml \
+  iso-currencies-to-c.xsl \
   kvp_doc.txt \
   SX-book-p.h \
   engine.i \
@@ -168,10 +166,8 @@ EXTRA_DIST = \
   ${gncscm_DATA}
 
 if GNUCASH_SEPARATE_BUILDDIR
-#For compiling
-SCM_FILE_LINKS = iso-4217-currencies.scm
 #For executing test cases
-SCM_FILE_LINKS += \
+SCM_FILE_LINKS = \
   ${gncscmmod_DATA} \
   ${gncscm_DATA}
 endif
@@ -237,9 +233,9 @@ endif
 endif
 endif
 
-iso-4217-currencies.c: iso-4217-currencies.scm iso-currencies-to-c
-	-chmod u+x ./iso-currencies-to-c
-	./iso-currencies-to-c "${srcdir}"
+
+iso-4217-currencies.c: iso-4217-currencies.xml iso-currencies-to-c.xsl
+	$(XSLTPROC) -o $@ $(srcdir)/iso-currencies-to-c.xsl $<
 
 BUILT_SOURCES = iso-4217-currencies.c
 
diff --git a/src/engine/iso-4217-currencies.scm b/src/engine/iso-4217-currencies.scm
deleted file mode 100644
index 616a9e0..0000000
--- a/src/engine/iso-4217-currencies.scm
+++ /dev/null
@@ -1,253 +0,0 @@
-;; currency descriptions for ISO4217 currencies.
-;;
-;; This file is not currently used at runtime.  It's used to generate
-;; the contents of iso-4217-currencies.c.
-;;
-;; You can find Currency Information from the following sites:
-;;   http://www.evertype.com/standards/iso4217/iso4217-en.html
-;;   http://www.xe.com/iso4217.htm
-;;   http://www.thefinancials.com/vortex/CurrencyFormats.html
-;; But currently used was
-;;   http://en.wikipedia.org/wiki/ISO4217 and relatives and the official at
-;;   http://www.iso.org/iso/support/faqs/faqs_widely_used_standards/widely_used_standards_other/currency_codes/currency_codes_list-1.htm
-;;
-;; Learned from some bugs (543061, 564450), please keep in mind:
-;; If there are no coins for subunits, subunits might still be in use on the paper
-;;
-;; Format:
-;; (fullname, unitname*, partname*, namespace, mnemonic, exchange-code, parts-per-unit*, smallest-fraction, local-symbol)
-;; planed extensions: replace-date, by-ISO, frozen-rate [x old : 1 new]
-;;
-;; where * means currently unused;
-;; fullname should be the same as in /usr/share/xml/iso-codes/iso_4217.xml from package iso-codes
-;; exchange-code is stored in ISIN/CUSIP;
-;; see iso-currencies-to-c for details and recent changes.
-;; Sort order by ISO codes for simpler maintainance
-;;
-( "Andorran Franc" "franc" "centime" "ISO4217" "ADF" "950" 100 100 "â‚£" ) ;; 2002-01-01 "FRF" 1  ;; = 1/1 French Franc replaced by EUR
-( "Andorran Peseta" "peseta" "centimo"  "ISO4217" "ADP" "724" 100 100 "₧" ) ;; 2002-01-01 "ESP" 1 ;; = 1/1 Spanish Peseta replaced by EUR
-( "UAE Dirham" "dirham" "fil" "ISO4217" "AED" "784" 100 100 "Dhs" ) ;; There is also an arabic symbol for "Dhs"
-( "Afghani" "afghani" "pul" "ISO4217" "AFA" "004" 100 100 "" ) ;; through 2003-01-02 "AFN" 1000
-( "Afghani" "afghani" "pul" "ISO4217" "AFN" "971" 1 1 "" )
-( "Lek" "lek" "qindarka" "ISO4217" "ALL" "008" 100 100 "" )
-( "Armenian Dram" "dram" "Luma" "ISO4217" "AMD" "051" 100 100 "Õ¤Ö€." )
-( "Netherlands Antillian Guilder" "guilder" "cent" "ISO4217" "ANG" "532" 100 100 "NAÆ’" ) ;; through 2010-10 ???
-( "Kwanza" "kwanza" "cêntimos" "ISO4217" "AOA" "973" 100 100 "Kz" )
-( "Angola New Kwanza" "new kwanza" "lwei" "ISO4217" "AON" "024" 100 100 "" ) ;; 1995-07-01 "AOR" 1000
-( "Angola Kwanza Reajustado" "reajustado kwanza" "centimos" "ISO4217" "AOR" "982" 100 100 "" ) ;; 2000-02-01 "AOA" 1000000
-( "Argentine Austral" "austral" "centavo" "ISO4217" "ARA" "XXX" 100 100 "" ) ;; 1992-01-01 "ARS" 10000
-( "Argentine Peso" "peso" "centavo"  "ISO4217" "ARS" "032" 100 100 "" )
-( "Austrian Schilling" "shilling" "groschen"  "ISO4217" "ATS" "040" 100 100 "öS" ) ;; 2002-01-01 "EUR" 13.7603
-( "Australian Dollar" "dollar" "cent" "ISO4217" "AUD" "036" 100 100 "$" )
-( "Aruban Guilder" "florin" "cent" "ISO4217" "AWG" "533" 100 100 "Afl." ) ;; ""
-( "Azerbaijanian Manat" "manat" "qəpik" "ISO4217" "AZM" "031" 100 100 "" ) ;; 2006-01-01 "AZN" 5000
-( "Azerbaijanian Manat" "manat" "qəpik" "ISO4217" "AZN" "944" 100 100 "m" ) ;; "m" should be  a 90° rotated € sign, but currently not encoded in Unicode
-( "Bosnia and Herzegovina Dinar" "B.H. dinar" "para" "ISO4217" "BAD" "070" 100 100 "" ) ;; 1998-06-22 "BAM" 100 ;; there was a revaluation 1994-08: 10000:1
-( "Convertible Marks" "B.H. mark" "fening" "ISO4217" "BAM" "977" 100 100 "KM" )
-( "Barbados Dollar" "dollar" "cent"  "ISO4217" "BBD" "052" 100 100 "Bds$" )
-( "Taka" "taka" "paisa"  "ISO4217" "BDT" "050" 100 100 "৳" )
-( "Belgian Franc" "franc" "centime" "ISO4217" "BEF" "056" 100 100 "fr." ) ;; 2002-01-01 "EUR" 40.3399
-( "Bulgarian Lev A/99" "lev" "stotinki" "ISO4217" "BGL" "100" 100 100 "" ) ;; 1999-07-05 "BGN" 1000
-( "Bulgarian Lev" "lev" "stotinki" "ISO4217" "BGN" "975" 100 100 "лв" ) ;; scheduled replacement: 2012-01-01 "EUR" 1.95583 (=DEM)
-( "Bahraini Dinar" "dinar" "fil"  "ISO4217" "BHD" "048" 1000 1000 "BD" ) ;; ar:.د.ب
-( "Burundi Franc" "franc" "centime" "ISO4217" "BIF" "108" 100 100 "FBu" )
-( "Bermudian Dollar" "dollar" "cent" "ISO4217" "BMD" "060" 100 100 "BD$" )
-( "Brunei Dollar" "dollar" "sen" "ISO4217" "BND" "096" 100 100 "B$" )
-( "Boliviano" "boliviano"  "centavo" "ISO4217" "BOB" "068" 100 100 "Bs." )
-( "Mvdol" "mvdol"  "centavo" "ISO4217" "BOV" "984" 100 100 "" ) ;; Mantenimiento de Valor respecto al Dólar
-( "Brazilian Cruzeiro" "cruzeiro" "centavo" "ISO4217" "BRE" "076" 100 100 "" ) ;; 1993-08-01 "BRR" 1000
-( "Brazilian Real" "real" "centavo"  "ISO4217" "BRL" "986" 100 100 "R$" )
-( "Brazilian Cruzeiro Real" "cruzeiro" "centavo" "ISO4217" "BRR" "987" 100 100 "" ) ;; 1994-07-01 "BRL" 2750
-( "Bahamian Dollar" "dollar" "cent"  "ISO4217" "BSD" "044" 100 100 "B$" )
-( "Ngultrum" "ngultrum" "chetrum" "ISO4217" "BTN" "064" 100 100 "Nu." )
-( "Pula" "pula" "thebe" "ISO4217" "BWP" "072" 100 100 "P" )
-( "Belarussian Rouble" "ruble" "kapeyka" "ISO4217" "BYB" "" 100 1 "" ) ;; 2000-01-01 "BYR" 1000
-( "Belarussian Ruble" "ruble" "ruble" "ISO4217" "BYR" "974" 1 100 "Br" )
-( "Belize Dollar" "dollar" "cent" "ISO4217" "BZD" "084" 100 100 "BZ$" )
-( "Canadian Dollar" "dollar" "cent" "ISO4217" "CAD" "124" 100 100 "C$" )
-( "Franc Congolais" "franc" "centime" "ISO4217" "CDF" "976" 100 100 "FC" )
-( "WIR Euro" "euro" "cent" "ISO4217" "CHE" "974" 100 100 "" ) ;; complementary currency by WIR Wirtschaftsring-Genossenschaft
-( "Swiss Franc" "franc" "centime" "ISO4217" "CHF" "756" 100 100 "SFr." )
-( "WIR Franc" "franc" "centime" "ISO4217" "CHW" "948" 100 100 "" ) ;; complementary currency by WIR Wirtschaftsring-Genossenschaft
-( "Unidades de fomento" "UF" "" "ISO4217" "CLF" "990" 10000 10000 "" ) ;; international secured loans; decimals not defined but required for conversion as of 2011-03-18 1 CLF = 21,560.19 CLP
-( "Chilean Peso" "peso" "centavo" "ISO4217" "CLP" "152" 100 1 "$" ) ;; "$" should have 2 strokes
-( "Yuan Renminbi" "renminbi" "fen" "ISO4217" "CNY" "156" 100 100 "å…ƒ" )
-( "Colombian Peso" "peso" "centavo" "ISO4217" "COP" "170" 100 100 "$" )
-( "Unidad de Valor Real" "UVR" "???" "ISO4217" "COU" "970" 100 100 "" ) ;;
-( "Costa Rican Colon" "colon" "centimo" "ISO4217" "CRC" "188" 100 100 "â‚¡" )
-( "Cuban Peso" "peso" "centavo" "ISO4217" "CUP" "192" 100 100 "$MN" )
-( "Cuban Convertible Peso" "peso" "centavo" "ISO4217" "CUC" "931" 100 100 "CUC$" )
-( "Cape Verde Escudo" "escudo" "centavo" "ISO4217" "CVE" "132" 100 100 "Esc" )
-( "Cyprus Pound" "pound" "pence"  "ISO4217" "CYP" "196" 100 100 "£" ) ;; 2008-01-01 "EUR" 0.585274
-( "Czech Koruna" "koruna" "haleru" "ISO4217" "CZK" "203" 100 100  "Kč" )
-( "Deutsche Mark" "deutschemark" "pfennig" "ISO4217" "DEM" "280" 100 100 "DM" ) ;; 2002-01-01 "EUR" 1.95583
-( "Djibouti Franc" "franc" "centime" "ISO4217" "DJF" "262" 100 1 "Fdj" )
-( "Danish Krone" "krone" "øre" "ISO4217" "DKK" "208" 100 100 "kr" )
-( "Dominican Peso" "peso" "centavo"  "ISO4217" "DOP" "214" 100 100 "RD$" )
-( "Algerian Dinar" "dinar" "santeem"  "ISO4217" "DZD" "012" 100 100 "DA" ) ;; ar.: 	دج
-( "Ecuador Sucre" "sucre" "centavo" "ISO4217" "ECS" "218" 100 100 "S/." ) ;; 2000-09-15 "USD" 25000
-( "Kroon" "kroon" "sent" "ISO4217" "EEK" "233" 100 100 "kr" ) ;; 2011-01-01 "EUR" 15.6466
-( "Egyptian Pound" "pound" "qirsh"  "ISO4217" "EGP" "818" 100 100 "£E" ) ;; ar.:ج.م maleem=0.001 £E for accounting?
-( "Nakfa" "nakfa" "cent" "ISO4217" "ERN" "232" 100 100 "Nfa" )
-( "Spanish Peseta" "peseta" "centimo"  "ISO4217" "ESP" "724" 100 100 "₧" ) ;; 2002-01-01 "EUR" 166.386
-( "Ethiopian Birr" "birr" "santim" "ISO4217" "ETB" "230" 100 100 "Br" )
-( "Euro" "euro" "euro-cent" "ISO4217" "EUR" "978" 100 100 "€" )
-( "Finnish Markka" "markka" "penni"  "ISO4217" "FIM" "246" 100 100 "mk" ) ;; 2002-01-01 "EUR" 5.94573
-( "Fiji Dollar" "dollar" "cent" "ISO4217" "FJD" "242" 100 100 "FJ$" )
-( "Falkland Islands Pound" "pound" "pence" "ISO4217" "FKP" "238" 100 100 "FK£" )
-( "French Franc" "franc" "centime" "ISO4217" "FRF" "250" 100 100 "â‚£" ) ;; 2002-01-01 "EUR" 6.55957
-( "Pound Sterling" "pound" "pence" "ISO4217" "GBP" "826" 100 100 "£" )
-( "Lari" "lari" "tetri" "ISO4217" "GEL" "981" 100 100 "" )
-( "Cedi" "cedi" "pesewa" "ISO4217" "GHC" "288" 100 100 "" ) ;; 2007-07-01 "GHS" 10000
-( "Ghana Cedi" "cedi" "pesewa" "ISO4217" "GHS" "936" 100 100 "GH₵" )
-( "Gibraltar Pound" "pound" "pence"  "ISO4217" "GIP" "292" 100 100 "£" )
-( "Dalasi" "dalasi" "butut" "ISO4217" "GMD" "270" 100 100 "D" )
-( "Guinea Franc" "franc" "centime" "ISO4217" "GNF" "324" 100 100 "FG" )
-( "Greek Drachma" "drachma" "lepta" "ISO4217" "GRD" "200" 100 100 "Δρ." ) ;; 2002-01-01 "EUR" 340.750
-( "Quetzal" "quetzal" "centavo" "ISO4217" "GTQ" "320" 100 100 "Q" )
-( "Guinea-Bissau Peso" "peso" "centavo" "ISO4217" "GWP" "624" 100 100"" ) ;; 1997-01-01 "XOF" 65
-( "Guyana Dollar" "dollar" "cent" "ISO4217" "GYD" "328" 100 100 "G$" )
-( "Hong Kong Dollar" "dollar" "cent"  "ISO4217" "HKD" "344" 100 100 "HK$" )
-( "Lempira" "lempira" "centavo"  "ISO4217" "HNL" "340" 100 100 "L" )
-( "Croatian Kuna" "kuna" "lipa" "ISO4217" "HRK" "191" 100 100 "kn" )
-( "Gourde" "gourde" "centime"  "ISO4217" "HTG" "332" 100 100 "G" )
-( "Forint" "forint" "fillér" "ISO4217" "HUF" "348" 1 100 "Ft" )
-( "Rupiah" "rupiah" "sen" "ISO4217" "IDR" "360" 1 100 "Rp" )
-( "Irish Pound" "punt" "pingin" "ISO4217" "IEP" "372" 100 100 "£" ) ;; 2002-01-01 "EUR" 0.787564
-( "New Israeli Sheqel" "new shekel" "agora"  "ISO4217" "ILS" "376" 100 100 "₪" )
-( "Indian Rupee" "rupee" "paisa" "ISO4217" "INR" "356" 100 100 "₹" )
-( "Iraqi Dinar" "dinar" "fil"  "ISO4217" "IQD" "368" 1000 1000 "ع.د" )
-( "Iranian Rial" "rial" "dinar" "ISO4217" "IRR" "364" 1 1 "﷼﷼" )
-( "Iceland Krona" "krona" "aur" "ISO4217" "ISK" "352" 1 100 "kr" )
-( "Italian Lira" "lira" "lira" "ISO4217" "ITL" "380" 1 1 "₤" ) ;; 2002-01-01 "EUR" 1936.27
-( "Jamaican Dollar" "dollar" "cent" "ISO4217" "JMD" "388" 100 100 "J$" )
-( "Jordanian Dinar" "dinar" "fil"  "ISO4217" "JOD" "400" 1000 1000 "JD" )
-( "Yen" "yen" "sen"  "ISO4217" "JPY" "392" 100 1 "Â¥" )
-( "Kenyan Shilling" "shilling" "cent" "ISO4217" "KES" "404" 100 100 "Ksh" )
-( "Som" "som" "tyiyn" "ISO4217" "KGS" "417" 100 100 "" )
-( "Riel" "riel" "sen" "ISO4217" "KHR" "116" 100 100 "" )
-( "Comoro Franc" "franc" "centime" "ISO4217" "KMF" "174" 100 1  "FC" )
-( "North Korean Won" "won" "chon" "ISO4217" "KPW" "408" 100 100 "â‚©" )
-( "Won" "won" "chon"  "ISO4217" "KRW" "410" 1 100 "â‚©" )
-( "Kuwaiti Dinar" "dinar" "fils"  "ISO4217" "KWD" "414" 1000 1000 "د.ك" )
-( "Cayman Islands Dollar" "dollar" "cent"  "ISO4217" "KYD" "136" 100 100 "CI$" )
-( "Tenge" "tenge" "tiyn" "ISO4217" "KZT" "398" 100 100 "₸" )
-( "Kip" "kip" "att" "ISO4217" "LAK" "418" 100 100 "â‚­" )
-( "Lebanese Pound" "pound" "piastre"  "ISO4217" "LBP" "422" 100 100 "Ù„.Ù„" )
-( "Sri Lanka Rupee" "rupee" "cent"  "ISO4217" "LKR" "144" 100 100 "₨" )
-( "Liberian Dollar" "dollar" "cent" "ISO4217" "LRD" "430" 100 100 "L$" )
-( "Loti" "loti" "sente" "ISO4217" "LSL" "426" 100 100 "M" )
-( "Lithuanian Litas" "litas" "centas" "ISO4217" "LTL" "440" 100 100 "Lt" )
-( "Luxembourg Franc" "frang" "centime" "ISO4217" "LUF" "442" 100 100  "Flux" ) ;; 2002-01-01 "EUR" 40.3399
-( "Latvian Lats" "lats" "santīms" "ISO4217" "LVL" "428" 100 100 "Ls" ) ;; Valid from 2. may 2009. till 31. december 2013, now "EUR" 0.702804
-( "Libyan Dinar" "dinar" "dirham" "ISO4217" "LYD" "434" 1000 1000 "ل.د" )
-( "Moroccan Dirham" "dirham" "centime"  "ISO4217" "MAD" "504" 100 100 "د.م" )
-( "Moldovan Leu" "leu" "ban" "ISO4217" "MDL" "498" 100 100 "" )
-( "Malagasy Ariary" "ariary" "iraimbilanja" "ISO4217" "MGA" "969" 5 5 "" )
-( "Malagasy Franc" "franc" "centime" "ISO4217" "MGF" "450" 500 500 "" ) ;; 2003-07-31 "MGA" 5
-( "Denar" "denar" "deni" "ISO4217" "MKD" "807" 100 100 "ден" )
-( "Mali Franc" "franc" "centime" "ISO4217" "MLF" "466" 100 100 "" ) ;; 1984-07-01 "XOF" 2
-( "Kyat" "kyat" "pya" "ISO4217" "MMK" "104" 100 100 "K" )
-( "Tugrik" "tugrik" "mongo" "ISO4217" "MNT" "496" 100 100 "â‚®" )
-( "Pataca" "pataca" "avo"  "ISO4217" "MOP" "446" 100 100 "MOP$" )
-( "Ouguiya" "ouguiya" "khoum"  "ISO4217" "MRO" "478" 5 5 "UM" )
-( "Maltese Lira" "lira" "cent"  "ISO4217" "MTL" "470" 100 100 "Lm" ) ;; 2008-01-01 "EUR" 0.4293
-( "Mauritius Rupee" "rupee" "cent"  "ISO4217" "MUR" "480" 100 100 "R" )
-( "Rufiyaa" "rufiyaa" "laari" "ISO4217" "MVR" "462" 100 100 ".Þƒ" )
-( "Kwacha" "kwacha" "tambala"  "ISO4217" "MWK" "454" 100 100 "MK" )
-( "Mexican Peso" "peso" "centavo" "ISO4217" "MXN" "484" 100 100 "Mex$" ) ;;since Jan 1993 (1000 MXP = 1 MXN)
-( "Mexican Unidad de Inversion (UDI)" "UDI" "centavo" "ISO4217" "MXV" "979" 100 100 "" ) ;;fund index based; used for credits, not subject to inflation
-( "Malaysian Ringgit" "ringgit" "sen"  "ISO4217" "MYR" "458" 100 100 "RM" )
-( "Mozambique Metical" "metical" "centavo" "ISO4217" "MZM" "508" 100 100 "" ) ;; 2006-07-01 "MZN" 1000
-( "Metical" "metical" "centavo" "ISO4217" "MZN" "943" 100 100 "MTn" )
-( "Namibia Dollar" "dollar" "cent" "ISO4217" "NAD" "516" 100 100 "N$" )
-( "Naira" "naira" "kobo"  "ISO4217" "NGN" "566" 100 100 "₦" )
-( "Nicaraguan Cordoba" "cordoba" "centavo" "ISO4217" "NIC" "558" 100 100 "" ) ;; 1990-10-13 "NIO" 5000000
-( "Cordoba Oro" "cordoba" "centavo" "ISO4217" "NIO" "558" 100 100 "C$" )
-( "Netherlands Guilder" "guilder" "cent" "ISO4217" "NLG" "528" 100 100 "" ) ;; 2002-01-01 "EUR" 2.20371
-( "Norwegian Krone" "krone" "ore"  "ISO4217" "NOK" "578" 100 100 "kr" )
-( "Nepalese Rupee" "rupee" "paise" "ISO4217" "NPR" "524" 100 100 "₨" )
-( "New Zealand Dollar" "dollar" "cent" "ISO4217" "NZD" "554" 100 100 "NZ$" )
-( "Rial Omani" "rial" "baisa" "ISO4217" "OMR" "512" 1000 1000 "ر.ع." )
-( "Balboa" "balboa" "centésimo" "ISO4217" "PAB" "590" 100 100 "฿" )
-( "Nuevo Sol" "nuevo sol" "centimo"  "ISO4217" "PEN" "604" 100 100 "S/." )
-( "Kina" "kina" "toea" "ISO4217" "PGK" "598" 100 100 "K" )
-( "Philippine Peso" "peso" "centavo" "ISO4217" "PHP" "608" 100 100 "₱" )
-( "Pakistan Rupee" "rupee" "paisa" "ISO4217" "PKR" "586" 100 100 "Rs" )
-( "Zloty" "zloty" "grosz" "ISO4217" "PLN" "985" 100 100 "zł" )
-( "Portuguese Escudo" "escudo" "centavo" "ISO4217" "PTE" "620" 100 100 "$" ) ;; 2002-01-01 "EUR" 200.482
-( "Guarani" "guarani" "centimo" "ISO4217" "PYG" "600" 100 100 "₲" ) ;; scheduled revaluation 2011
-( "Qatari Rial" "rial" "dirham" "ISO4217" "QAR" "634" 100 100 "ر.ق" )
-( "Romanian Old Leu" "leu" "ban"  "ISO4217" "ROL" "642" 100 100 "" ) ;; 2005-07-01 "RON" 10000
-( "New Leu" "leu" "ban"  "ISO4217" "RON" "946" 100 100 "" ) ;; scheduled 2012..14: EUR
-( "Serbian Dinar" "dinar" "para"  "ISO4217" "RSD"  "941" 100 100 "" )
-( "Russian Rouble" "rouble" "kopek" "ISO4217" "RUB" "643" 100 100 "руб" ) ;; RUR: 1998-01-1 "RUB" 1000; see bug #393185
-( "Rwanda Franc" "franc" "centime" "ISO4217" "RWF" "646" 100 100 "RF" )
-( "Saudi Riyal" "riyal" "halala"  "ISO4217" "SAR" "682" 100 100 "ر.س" )
-( "Solomon Islands Dollar" "dollar" "cent"  "ISO4217" "SBD" "090" 100 100 "SI$" )
-( "Seychelles Rupee" "rupee" "cent" "ISO4217" "SCR" "690" 100 100 "SR" )
-( "Sudanese Dinar" "dinar" "piastre"  "ISO4217" "SDD" "736" 100 100 "" ) ;; 2007-07-01 "SDG" 100, reunite with South
-( "Sudanese Pound" "pound" "qirsh"  "ISO4217" "SDG" "938" 100 100 "" )
-( "Sudanese Pound" "pound" "piastre"  "ISO4217" "SDP" "736" 100 100 "" ) ;; 1992-01-01 "SDD" 10, but only in the North
-( "Swedish Krona" "krona" "ore"  "ISO4217" "SEK" "752" 100 100 "kr" )
-( "Singapore Dollar" "dollar" "cent" "ISO4217" "SGD" "702" 100 100 "S$" )
-( "Saint Helena Pound" "pound" "penny"  "ISO4217" "SHP"  "654" 100 100 "£" )
-( "Slovenian Tolar" "tolar" "stotin"  "ISO4217" "SIT" "705" 100 100 "" ) ;; 2007-01-01 "EUR" 239.640
-( "Slovak Koruna" "koruna" "halier"  "ISO4217" "SKK" "703" 100 100 "" ) ;; 2009-01-01 "EUR" 30.126
-( "Leone" "leone" "cent"  "ISO4217" "SLL" "694" 100 100 "Le" )
-( "Somali Shilling" "shilling" "centisimi" "ISO4217" "SOS" "706" 100 100 "SoSh" )
-( "Surinam Dollar" "dollar" "cent"  "ISO4217" "SRD" "968" 100 100 "$" )
-( "Suriname Guilder" "guilder" "cent"  "ISO4217" "SRG" "740" 100 100 "" ) ;; 2004-01-01 "SRD" 1000
-( "Dobra" "dobra" "centimo" "ISO4217" "STD" "678" 100 100 "Db" )
-( "El Salvador Colon" "colon" "centavo" "ISO4217" "SVC" "222" 100 100 "" ) ;; 2001-01-01 "USD" 8.75
-( "Syrian Pound" "pound" "qirsh"  "ISO4217" "SYP" "760" 100 100 "" )
-( "Lilangeni" "lilangeni" "cent"  "ISO4217" "SZL" "748" 100 100 "L" )
-( "Baht" "baht" "satang" "ISO4217" "THB" "764" 100 100 "฿" )
-( "Tajik Rouble" "ruble" "ruble" "ISO4217" "TJR" "762" 1 1 "" ) ;; 2002-11-01 "TJS" 1000
-( "Somoni" "somoni" "diram" "ISO4217" "TJS" "972" 100 100 "" )
-( "Manat" "manat" "tenga" "ISO4217" "TMM" "795" 100 100 "" ) ;; 2009-01-01 "TMT" 5000
-( "Manat" "manat" "teňňe" "ISO4217" "TMT" "934" 100 100 "m" )
-( "Tunisian Dinar" "dinar" "milim" "ISO4217" "TND" "788" 1000 1000 "د.ت" )
-( "Pa'anga" "Pa'anga" "seniti" "ISO4217" "TOP" "776" 100 100 "T$" )
-( "Turkish Lira" "lira" "kuruş" "ISO4217" "TRY" "949" 100 100 "₤" )
-( "Trinidad and Tobago Dollar" "dollar" "cent" "ISO4217" "TTD" "780" 100 100 "TT$" )
-( "New Taiwan Dollar" "dollar" "cent" "ISO4217" "TWD" "901" 100 100 "NT$" )
-( "Tanzanian Shilling" "shilling" "senti"  "ISO4217" "TZS" "834" 100 100 "/" )
-( "Hryvnia" "hryvnia" "kopiyka"  "ISO4217" "UAH" "980" 100 100 "â‚´" )
-( "Uganda Shilling" "shilling" "cent"  "ISO4217" "UGX" "800" 100 100  "USh" )
-( "US Dollar" "dollar" "cent" "ISO4217" "USD" "840" 100 100 "$" )
-( "US Dollar (Next day)" "dollar" "cent" "ISO4217" "USN" "997" 100 100 "$n" ) ;; funds code
-( "US Dollar (Same day)" "dollar" "cent" "ISO4217" "USS" "998" 100 100 "$s" ) ;; funds code
-( "Uruguay Peso en Unidades Indexadas" "UI" "centesimo" "ISO4217" "UYI" "940" 100 100 "UI" )
-( "Peso Uruguayo" "peso" "centesimo" "ISO4217" "UYU" "858" 100 100 "$U" )
-( "Uzbekistan Sum" "so‘m" "tiyin" "ISO4217" "UZS" "860" 100 100 "som" )
-( "Venezuela Bolívar" "bolivar" "centimo" "ISO4217" "VEB" "862" 100 100 "" ) ;; 2008-01-01 "VEF" 1000
-( "Bolivar Fuerte" "bolivar" "centimo" "ISO4217" "VEF" "937" 100 100 "Bs." )
-( "Dong" "đồng" "xu" "ISO4217" "VND" "704" 100 100 "₫" )
-( "Vatu" "vatu" "centime" "ISO4217" "VUV" "548" 1 1 "Vt" )
-( "Tala" "tala" "sene" "ISO4217" "WST" "882" 100 100 "WS$" )
-( "Yemeni Rial" "riyal" "fils" "ISO4217" "YER" "886" 100 100 "Rl" )
-( "Yugoslavian Dinar" "dinar" "para"  "ISO4217" "YUM"  "890" 100 100 "" ) ;; 2003 replaced by RSD 1
-( "Rand" "rand" "cent" "ISO4217" "ZAR" "710" 100 100 "R" )
-( "Kwacha (old)" "kwacha" "ngwee"  "ISO4217" "ZMK" "894" 100 100 "ZK" ) ;; replaced by ZMW from 2013-01-01 onwards
-( "Zambian Kwacha" "kwacha" "ngwee" "ISO4217" "ZMW" "967" 100 100 "ZK" ) ;; replaced ZMK from 2013-01-01 onwards
-( "Zimbabwe Dollar" "dollar" "cent" "ISO4217" "ZWD" "716" 100 100 "" ) ;; 2006-08-01 "ZWN" 1000, 2008-08-01 "ZWR" 10000000000, 2009-02-01 "ZWD" 1000000000000
-( "Zimbabwe Dollar" "dollar" "cent" "ISO4217" "ZWL" "716" 100 100 "Z.$" ) ;; 2009-04 suspended for at least 1 year
-
-;; multinational
-( "CFA Franc BEAC" "franc" "centime" "ISO4217" "XAF" "950" 1 100 "" ) ;; Banque des États de l'Afrique Centrale
-;; XB* should be replaced by EUR, if I am right
-( "East Caribbean Dollar" "dollar" "cent" "ISO4217" "XCD" "951" 100 100 "EC$" ) ;; Organisation of Eastern Caribbean States
-( "SDR" "SDR" "SDR" "ISO4217" "XDR" "960" 1 1 "" ) ;; International Monetary Funds Special Drawing Rights
-( "Gold-Franc" "franc" "centime" "ISO4217" "XFO" "nil" 1 100 "" ) ;; Bank for International Settlements
-( "UIC-Franc" "franc" "centime" "ISO4217" "XFU" "nil" 1 100 "" ) ;; Union Internationale des Chemins de fer
-( "CFA Franc BCEAO" "franc" "centime" "ISO4217" "XOF" "952" 1 100 "" ) ;; Banque Centrale des États de l'Afrique de l'Ouest
-( "CFP Franc" "franc" "centime" "ISO4217" "XPF" "953" 1 100 "" ) ;; Communauté Financière du Pacifique
-( "Code for testing purposes" "TEST" "test" "ISO4217" "XTS" "963" 1 1000000 "" ) ;; Code reserved for testing purposes
-( "No currency" "" "" "ISO4217" "XXX" "999" 1 1000000 "" )
-
-;; precious metals
-( "Silver" "ounce" "ounce" "ISO4217" "XAG" "961" 1 1000000 "" )
-( "Gold" "ounce" "ounce" "ISO4217" "XAU" "959" 1 1000000 "" )
-( "Palladium" "ounce" "ounce" "ISO4217" "XPD" "964" 1 1000000 "" )
-( "Platinum" "ounce" "ounce" "ISO4217" "XPT" "962" 1 1000000 "" )
diff --git a/src/engine/iso-4217-currencies.xml b/src/engine/iso-4217-currencies.xml
new file mode 100644
index 0000000..9a9a263
--- /dev/null
+++ b/src/engine/iso-4217-currencies.xml
@@ -0,0 +1,3009 @@
+<!-- currency descriptions for ISO4217 currencies.
+
+  This file is not currently used at runtime.  It's used to generate
+  the contents of iso-4217-currencies.c.
+
+  You can find Currency Information from the following sites:
+    http://www.evertype.com/standards/iso4217/iso4217-en.html
+    http://www.xe.com/iso4217.htm
+    http://www.thefinancials.com/vortex/CurrencyFormats.html
+  But currently used was
+    http://en.wikipedia.org/wiki/ISO4217 and relatives and the official at
+    http://www.iso.org/iso/support/faqs/faqs_widely_used_standards/widely_used_standards_other/currency_codes/currency_codes_list-1.htm
+
+  Learned from some bugs (543061, 564450), please keep in mind:
+  If there are no coins for subunits, subunits might still be in use on the paper
+
+  Format:
+  <currency
+    isocode
+    fullname
+    unitname*
+    partname*
+    namespace
+    exchange-code
+    parts-per-unit*
+    smallest-fraction
+    local-symbol
+  />
+  planned extensions: replace-date, by-ISO, frozen-rate [x old : 1 new]
+
+  where * means currently unused;
+  fullname should be the same as in /usr/share/xml/iso-codes/iso_4217.xml from package iso-codes
+  exchange-code is stored in ISIN/CUSIP;
+  see iso-currencies-to-c for details and recent changes.
+  Sort order by ISO codes for simpler maintainance
+-->
+
+
+<currencylist>
+<!-- "ADF" - "Andorran Franc"
+  2002-01-01 "FRF" 1  ;; = 1/1 French Franc replaced by EUR
+-->
+<currency
+  isocode="ADF"
+  fullname="Andorran Franc"
+  unitname="franc"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="950"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="â‚£"
+/>
+<!-- "ADP" - "Andorran Peseta"
+  2002-01-01 "ESP" 1 ;; = 1/1 Spanish Peseta replaced by EUR
+-->
+<currency
+  isocode="ADP"
+  fullname="Andorran Peseta"
+  unitname="peseta"
+  partname="centimo"
+  namespace="ISO4217"
+  exchange-code="724"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="₧"
+/>
+<!-- "AED" - "UAE Dirham"
+  There is also an arabic symbol for "Dhs"
+-->
+<currency
+  isocode="AED"
+  fullname="UAE Dirham"
+  unitname="dirham"
+  partname="fil"
+  namespace="ISO4217"
+  exchange-code="784"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Dhs"
+/>
+<!-- "AFA" - "Afghani"
+  through 2003-01-02 "AFN" 1000
+-->
+<currency
+  isocode="AFA"
+  fullname="Afghani"
+  unitname="afghani"
+  partname="pul"
+  namespace="ISO4217"
+  exchange-code="004"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "AFN" - "Afghani"
+-->
+<currency
+  isocode="AFN"
+  fullname="Afghani"
+  unitname="afghani"
+  partname="pul"
+  namespace="ISO4217"
+  exchange-code="971"
+  parts-per-unit="1"
+  smallest-fraction="1"
+  local-symbol=""
+/>
+<!-- "ALL" - "Lek"
+-->
+<currency
+  isocode="ALL"
+  fullname="Lek"
+  unitname="lek"
+  partname="qindarka"
+  namespace="ISO4217"
+  exchange-code="008"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "AMD" - "Armenian Dram"
+-->
+<currency
+  isocode="AMD"
+  fullname="Armenian Dram"
+  unitname="dram"
+  partname="Luma"
+  namespace="ISO4217"
+  exchange-code="051"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Õ¤Ö€."
+/>
+<!-- "ANG" - "Netherlands Antillian Guilder"
+  through 2010-10 ???
+-->
+<currency
+  isocode="ANG"
+  fullname="Netherlands Antillian Guilder"
+  unitname="guilder"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="532"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="NAÆ’"
+/>
+<!-- "AOA" - "Kwanza"
+-->
+<currency
+  isocode="AOA"
+  fullname="Kwanza"
+  unitname="kwanza"
+  partname="cêntimos"
+  namespace="ISO4217"
+  exchange-code="973"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Kz"
+/>
+<!-- "AON" - "Angola New Kwanza"
+  1995-07-01 "AOR" 1000
+-->
+<currency
+  isocode="AON"
+  fullname="Angola New Kwanza"
+  unitname="new kwanza"
+  partname="lwei"
+  namespace="ISO4217"
+  exchange-code="024"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "AOR" - "Angola Kwanza Reajustado"
+  2000-02-01 "AOA" 1000000
+-->
+<currency
+  isocode="AOR"
+  fullname="Angola Kwanza Reajustado"
+  unitname="reajustado kwanza"
+  partname="centimos"
+  namespace="ISO4217"
+  exchange-code="982"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "ARA" - "Argentine Austral"
+  1992-01-01 "ARS" 10000
+-->
+<currency
+  isocode="ARA"
+  fullname="Argentine Austral"
+  unitname="austral"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="XXX"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "ARS" - "Argentine Peso"
+-->
+<currency
+  isocode="ARS"
+  fullname="Argentine Peso"
+  unitname="peso"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="032"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "ATS" - "Austrian Schilling"
+  2002-01-01 "EUR" 13.7603
+-->
+<currency
+  isocode="ATS"
+  fullname="Austrian Schilling"
+  unitname="shilling"
+  partname="groschen"
+  namespace="ISO4217"
+  exchange-code="040"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="öS"
+/>
+<!-- "AUD" - "Australian Dollar"
+-->
+<currency
+  isocode="AUD"
+  fullname="Australian Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="036"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="$"
+/>
+<!-- "AWG" - "Aruban Guilder"
+  ""
+-->
+<currency
+  isocode="AWG"
+  fullname="Aruban Guilder"
+  unitname="florin"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="533"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Afl."
+/>
+<!-- "AZM" - "Azerbaijanian Manat"
+  2006-01-01 "AZN" 5000
+-->
+<currency
+  isocode="AZM"
+  fullname="Azerbaijanian Manat"
+  unitname="manat"
+  partname="qəpik"
+  namespace="ISO4217"
+  exchange-code="031"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "AZN" - "Azerbaijanian Manat"
+  "m" should be  a 90° rotated € sign, but currently not encoded in Unicode
+-->
+<currency
+  isocode="AZN"
+  fullname="Azerbaijanian Manat"
+  unitname="manat"
+  partname="qəpik"
+  namespace="ISO4217"
+  exchange-code="944"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="m"
+/>
+<!-- "BAD" - "Bosnia and Herzegovina Dinar"
+  1998-06-22 "BAM" 100 ;; there was a revaluation 1994-08: 10000:1
+-->
+<currency
+  isocode="BAD"
+  fullname="Bosnia and Herzegovina Dinar"
+  unitname="B.H. dinar"
+  partname="para"
+  namespace="ISO4217"
+  exchange-code="070"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "BAM" - "Convertible Marks"
+-->
+<currency
+  isocode="BAM"
+  fullname="Convertible Marks"
+  unitname="B.H. mark"
+  partname="fening"
+  namespace="ISO4217"
+  exchange-code="977"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="KM"
+/>
+<!-- "BBD" - "Barbados Dollar"
+-->
+<currency
+  isocode="BBD"
+  fullname="Barbados Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="052"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Bds$"
+/>
+<!-- "BDT" - "Taka"
+-->
+<currency
+  isocode="BDT"
+  fullname="Taka"
+  unitname="taka"
+  partname="paisa"
+  namespace="ISO4217"
+  exchange-code="050"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="৳"
+/>
+<!-- "BEF" - "Belgian Franc"
+  2002-01-01 "EUR" 40.3399
+-->
+<currency
+  isocode="BEF"
+  fullname="Belgian Franc"
+  unitname="franc"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="056"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="fr."
+/>
+<!-- "BGL" - "Bulgarian Lev A/99"
+  1999-07-05 "BGN" 1000
+-->
+<currency
+  isocode="BGL"
+  fullname="Bulgarian Lev A/99"
+  unitname="lev"
+  partname="stotinki"
+  namespace="ISO4217"
+  exchange-code="100"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "BGN" - "Bulgarian Lev"
+  scheduled replacement: 2012-01-01 "EUR" 1.95583 (=DEM)
+-->
+<currency
+  isocode="BGN"
+  fullname="Bulgarian Lev"
+  unitname="lev"
+  partname="stotinki"
+  namespace="ISO4217"
+  exchange-code="975"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="лв"
+/>
+<!-- "BHD" - "Bahraini Dinar"
+  ar:.د.ب
+-->
+<currency
+  isocode="BHD"
+  fullname="Bahraini Dinar"
+  unitname="dinar"
+  partname="fil"
+  namespace="ISO4217"
+  exchange-code="048"
+  parts-per-unit="1000"
+  smallest-fraction="1000"
+  local-symbol="BD"
+/>
+<!-- "BIF" - "Burundi Franc"
+-->
+<currency
+  isocode="BIF"
+  fullname="Burundi Franc"
+  unitname="franc"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="108"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="FBu"
+/>
+<!-- "BMD" - "Bermudian Dollar"
+-->
+<currency
+  isocode="BMD"
+  fullname="Bermudian Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="060"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="BD$"
+/>
+<!-- "BND" - "Brunei Dollar"
+-->
+<currency
+  isocode="BND"
+  fullname="Brunei Dollar"
+  unitname="dollar"
+  partname="sen"
+  namespace="ISO4217"
+  exchange-code="096"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="B$"
+/>
+<!-- "BOB" - "Boliviano"
+-->
+<currency
+  isocode="BOB"
+  fullname="Boliviano"
+  unitname="boliviano"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="068"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Bs."
+/>
+<!-- "BOV" - "Mvdol"
+  Mantenimiento de Valor respecto al Dólar
+-->
+<currency
+  isocode="BOV"
+  fullname="Mvdol"
+  unitname="mvdol"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="984"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "BRE" - "Brazilian Cruzeiro"
+  1993-08-01 "BRR" 1000
+-->
+<currency
+  isocode="BRE"
+  fullname="Brazilian Cruzeiro"
+  unitname="cruzeiro"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="076"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "BRL" - "Brazilian Real"
+-->
+<currency
+  isocode="BRL"
+  fullname="Brazilian Real"
+  unitname="real"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="986"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="R$"
+/>
+<!-- "BRR" - "Brazilian Cruzeiro Real"
+  1994-07-01 "BRL" 2750
+-->
+<currency
+  isocode="BRR"
+  fullname="Brazilian Cruzeiro Real"
+  unitname="cruzeiro"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="987"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "BSD" - "Bahamian Dollar"
+-->
+<currency
+  isocode="BSD"
+  fullname="Bahamian Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="044"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="B$"
+/>
+<!-- "BTN" - "Ngultrum"
+-->
+<currency
+  isocode="BTN"
+  fullname="Ngultrum"
+  unitname="ngultrum"
+  partname="chetrum"
+  namespace="ISO4217"
+  exchange-code="064"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Nu."
+/>
+<!-- "BWP" - "Pula"
+-->
+<currency
+  isocode="BWP"
+  fullname="Pula"
+  unitname="pula"
+  partname="thebe"
+  namespace="ISO4217"
+  exchange-code="072"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="P"
+/>
+<!-- "BYB" - "Belarussian Rouble"
+  2000-01-01 "BYR" 1000
+-->
+<currency
+  isocode="BYB"
+  fullname="Belarussian Rouble"
+  unitname="ruble"
+  partname="kapeyka"
+  namespace="ISO4217"
+  exchange-code=""
+  parts-per-unit="100"
+  smallest-fraction="1"
+  local-symbol=""
+/>
+<!-- "BYR" - "Belarussian Ruble"
+-->
+<currency
+  isocode="BYR"
+  fullname="Belarussian Ruble"
+  unitname="ruble"
+  partname="ruble"
+  namespace="ISO4217"
+  exchange-code="974"
+  parts-per-unit="1"
+  smallest-fraction="100"
+  local-symbol="Br"
+/>
+<!-- "BZD" - "Belize Dollar"
+-->
+<currency
+  isocode="BZD"
+  fullname="Belize Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="084"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="BZ$"
+/>
+<!-- "CAD" - "Canadian Dollar"
+-->
+<currency
+  isocode="CAD"
+  fullname="Canadian Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="124"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="C$"
+/>
+<!-- "CDF" - "Franc Congolais"
+-->
+<currency
+  isocode="CDF"
+  fullname="Franc Congolais"
+  unitname="franc"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="976"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="FC"
+/>
+<!-- "CHE" - "WIR Euro"
+  complementary currency by WIR Wirtschaftsring-Genossenschaft
+-->
+<currency
+  isocode="CHE"
+  fullname="WIR Euro"
+  unitname="euro"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="974"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "CHF" - "Swiss Franc"
+-->
+<currency
+  isocode="CHF"
+  fullname="Swiss Franc"
+  unitname="franc"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="756"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="SFr."
+/>
+<!-- "CHW" - "WIR Franc"
+  complementary currency by WIR Wirtschaftsring-Genossenschaft
+-->
+<currency
+  isocode="CHW"
+  fullname="WIR Franc"
+  unitname="franc"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="948"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "CLF" - "Unidades de fomento"
+  international secured loans; decimals not defined but required for conversion as of 2011-03-18 1 CLF = 21,560.19 CLP
+-->
+<currency
+  isocode="CLF"
+  fullname="Unidades de fomento"
+  unitname="UF"
+  partname=""
+  namespace="ISO4217"
+  exchange-code="990"
+  parts-per-unit="10000"
+  smallest-fraction="10000"
+  local-symbol=""
+/>
+<!-- "CLP" - "Chilean Peso"
+  "$" should have 2 strokes
+-->
+<currency
+  isocode="CLP"
+  fullname="Chilean Peso"
+  unitname="peso"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="152"
+  parts-per-unit="100"
+  smallest-fraction="1"
+  local-symbol="$"
+/>
+<!-- "CNY" - "Yuan Renminbi"
+-->
+<currency
+  isocode="CNY"
+  fullname="Yuan Renminbi"
+  unitname="renminbi"
+  partname="fen"
+  namespace="ISO4217"
+  exchange-code="156"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="å…ƒ"
+/>
+<!-- "COP" - "Colombian Peso"
+-->
+<currency
+  isocode="COP"
+  fullname="Colombian Peso"
+  unitname="peso"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="170"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="$"
+/>
+<!-- "COU" - "Unidad de Valor Real"
+-->
+<currency
+  isocode="COU"
+  fullname="Unidad de Valor Real"
+  unitname="UVR"
+  partname="???"
+  namespace="ISO4217"
+  exchange-code="970"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "CRC" - "Costa Rican Colon"
+-->
+<currency
+  isocode="CRC"
+  fullname="Costa Rican Colon"
+  unitname="colon"
+  partname="centimo"
+  namespace="ISO4217"
+  exchange-code="188"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="â‚¡"
+/>
+<!-- "CUP" - "Cuban Peso"
+-->
+<currency
+  isocode="CUP"
+  fullname="Cuban Peso"
+  unitname="peso"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="192"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="$MN"
+/>
+<!-- "CUC" - "Cuban Convertible Peso"
+-->
+<currency
+  isocode="CUC"
+  fullname="Cuban Convertible Peso"
+  unitname="peso"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="931"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="CUC$"
+/>
+<!-- "CVE" - "Cape Verde Escudo"
+-->
+<currency
+  isocode="CVE"
+  fullname="Cape Verde Escudo"
+  unitname="escudo"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="132"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Esc"
+/>
+<!-- "CYP" - "Cyprus Pound"
+  2008-01-01 "EUR" 0.585274
+-->
+<currency
+  isocode="CYP"
+  fullname="Cyprus Pound"
+  unitname="pound"
+  partname="pence"
+  namespace="ISO4217"
+  exchange-code="196"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="£"
+/>
+<!-- "CZK" - "Czech Koruna"
+-->
+<currency
+  isocode="CZK"
+  fullname="Czech Koruna"
+  unitname="koruna"
+  partname="haleru"
+  namespace="ISO4217"
+  exchange-code="203"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Kč"
+/>
+<!-- "DEM" - "Deutsche Mark"
+  2002-01-01 "EUR" 1.95583
+-->
+<currency
+  isocode="DEM"
+  fullname="Deutsche Mark"
+  unitname="deutschemark"
+  partname="pfennig"
+  namespace="ISO4217"
+  exchange-code="280"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="DM"
+/>
+<!-- "DJF" - "Djibouti Franc"
+-->
+<currency
+  isocode="DJF"
+  fullname="Djibouti Franc"
+  unitname="franc"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="262"
+  parts-per-unit="100"
+  smallest-fraction="1"
+  local-symbol="Fdj"
+/>
+<!-- "DKK" - "Danish Krone"
+-->
+<currency
+  isocode="DKK"
+  fullname="Danish Krone"
+  unitname="krone"
+  partname="øre"
+  namespace="ISO4217"
+  exchange-code="208"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="kr"
+/>
+<!-- "DOP" - "Dominican Peso"
+-->
+<currency
+  isocode="DOP"
+  fullname="Dominican Peso"
+  unitname="peso"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="214"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="RD$"
+/>
+<!-- "DZD" - "Algerian Dinar"
+  ar.: 	دج
+-->
+<currency
+  isocode="DZD"
+  fullname="Algerian Dinar"
+  unitname="dinar"
+  partname="santeem"
+  namespace="ISO4217"
+  exchange-code="012"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="DA"
+/>
+<!-- "ECS" - "Ecuador Sucre"
+  2000-09-15 "USD" 25000
+-->
+<currency
+  isocode="ECS"
+  fullname="Ecuador Sucre"
+  unitname="sucre"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="218"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="S/."
+/>
+<!-- "EEK" - "Kroon"
+  2011-01-01 "EUR" 15.6466
+-->
+<currency
+  isocode="EEK"
+  fullname="Kroon"
+  unitname="kroon"
+  partname="sent"
+  namespace="ISO4217"
+  exchange-code="233"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="kr"
+/>
+<!-- "EGP" - "Egyptian Pound"
+  ar.:ج.م maleem=0.001 £E for accounting?
+-->
+<currency
+  isocode="EGP"
+  fullname="Egyptian Pound"
+  unitname="pound"
+  partname="qirsh"
+  namespace="ISO4217"
+  exchange-code="818"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="£E"
+/>
+<!-- "ERN" - "Nakfa"
+-->
+<currency
+  isocode="ERN"
+  fullname="Nakfa"
+  unitname="nakfa"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="232"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Nfa"
+/>
+<!-- "ESP" - "Spanish Peseta"
+  2002-01-01 "EUR" 166.386
+-->
+<currency
+  isocode="ESP"
+  fullname="Spanish Peseta"
+  unitname="peseta"
+  partname="centimo"
+  namespace="ISO4217"
+  exchange-code="724"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="₧"
+/>
+<!-- "ETB" - "Ethiopian Birr"
+-->
+<currency
+  isocode="ETB"
+  fullname="Ethiopian Birr"
+  unitname="birr"
+  partname="santim"
+  namespace="ISO4217"
+  exchange-code="230"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Br"
+/>
+<!-- "EUR" - "Euro"
+-->
+<currency
+  isocode="EUR"
+  fullname="Euro"
+  unitname="euro"
+  partname="euro-cent"
+  namespace="ISO4217"
+  exchange-code="978"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="€"
+/>
+<!-- "FIM" - "Finnish Markka"
+  2002-01-01 "EUR" 5.94573
+-->
+<currency
+  isocode="FIM"
+  fullname="Finnish Markka"
+  unitname="markka"
+  partname="penni"
+  namespace="ISO4217"
+  exchange-code="246"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="mk"
+/>
+<!-- "FJD" - "Fiji Dollar"
+-->
+<currency
+  isocode="FJD"
+  fullname="Fiji Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="242"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="FJ$"
+/>
+<!-- "FKP" - "Falkland Islands Pound"
+-->
+<currency
+  isocode="FKP"
+  fullname="Falkland Islands Pound"
+  unitname="pound"
+  partname="pence"
+  namespace="ISO4217"
+  exchange-code="238"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="FK£"
+/>
+<!-- "FRF" - "French Franc"
+  2002-01-01 "EUR" 6.55957
+-->
+<currency
+  isocode="FRF"
+  fullname="French Franc"
+  unitname="franc"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="250"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="â‚£"
+/>
+<!-- "GBP" - "Pound Sterling"
+-->
+<currency
+  isocode="GBP"
+  fullname="Pound Sterling"
+  unitname="pound"
+  partname="pence"
+  namespace="ISO4217"
+  exchange-code="826"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="£"
+/>
+<!-- "GEL" - "Lari"
+-->
+<currency
+  isocode="GEL"
+  fullname="Lari"
+  unitname="lari"
+  partname="tetri"
+  namespace="ISO4217"
+  exchange-code="981"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "GHC" - "Cedi"
+  2007-07-01 "GHS" 10000
+-->
+<currency
+  isocode="GHC"
+  fullname="Cedi"
+  unitname="cedi"
+  partname="pesewa"
+  namespace="ISO4217"
+  exchange-code="288"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "GHS" - "Ghana Cedi"
+-->
+<currency
+  isocode="GHS"
+  fullname="Ghana Cedi"
+  unitname="cedi"
+  partname="pesewa"
+  namespace="ISO4217"
+  exchange-code="936"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="GH₵"
+/>
+<!-- "GIP" - "Gibraltar Pound"
+-->
+<currency
+  isocode="GIP"
+  fullname="Gibraltar Pound"
+  unitname="pound"
+  partname="pence"
+  namespace="ISO4217"
+  exchange-code="292"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="£"
+/>
+<!-- "GMD" - "Dalasi"
+-->
+<currency
+  isocode="GMD"
+  fullname="Dalasi"
+  unitname="dalasi"
+  partname="butut"
+  namespace="ISO4217"
+  exchange-code="270"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="D"
+/>
+<!-- "GNF" - "Guinea Franc"
+-->
+<currency
+  isocode="GNF"
+  fullname="Guinea Franc"
+  unitname="franc"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="324"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="FG"
+/>
+<!-- "GRD" - "Greek Drachma"
+  2002-01-01 "EUR" 340.750
+-->
+<currency
+  isocode="GRD"
+  fullname="Greek Drachma"
+  unitname="drachma"
+  partname="lepta"
+  namespace="ISO4217"
+  exchange-code="200"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Δρ."
+/>
+<!-- "GTQ" - "Quetzal"
+-->
+<currency
+  isocode="GTQ"
+  fullname="Quetzal"
+  unitname="quetzal"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="320"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Q"
+/>
+<!-- "GWP" - "Guinea-Bissau Peso"
+  1997-01-01 "XOF" 65
+-->
+<currency
+  isocode="GWP"
+  fullname="Guinea-Bissau Peso"
+  unitname="peso"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="624"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "GYD" - "Guyana Dollar"
+-->
+<currency
+  isocode="GYD"
+  fullname="Guyana Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="328"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="G$"
+/>
+<!-- "HKD" - "Hong Kong Dollar"
+-->
+<currency
+  isocode="HKD"
+  fullname="Hong Kong Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="344"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="HK$"
+/>
+<!-- "HNL" - "Lempira"
+-->
+<currency
+  isocode="HNL"
+  fullname="Lempira"
+  unitname="lempira"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="340"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="L"
+/>
+<!-- "HRK" - "Croatian Kuna"
+-->
+<currency
+  isocode="HRK"
+  fullname="Croatian Kuna"
+  unitname="kuna"
+  partname="lipa"
+  namespace="ISO4217"
+  exchange-code="191"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="kn"
+/>
+<!-- "HTG" - "Gourde"
+-->
+<currency
+  isocode="HTG"
+  fullname="Gourde"
+  unitname="gourde"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="332"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="G"
+/>
+<!-- "HUF" - "Forint"
+-->
+<currency
+  isocode="HUF"
+  fullname="Forint"
+  unitname="forint"
+  partname="fillér"
+  namespace="ISO4217"
+  exchange-code="348"
+  parts-per-unit="1"
+  smallest-fraction="100"
+  local-symbol="Ft"
+/>
+<!-- "IDR" - "Rupiah"
+-->
+<currency
+  isocode="IDR"
+  fullname="Rupiah"
+  unitname="rupiah"
+  partname="sen"
+  namespace="ISO4217"
+  exchange-code="360"
+  parts-per-unit="1"
+  smallest-fraction="100"
+  local-symbol="Rp"
+/>
+<!-- "IEP" - "Irish Pound"
+  2002-01-01 "EUR" 0.787564
+-->
+<currency
+  isocode="IEP"
+  fullname="Irish Pound"
+  unitname="punt"
+  partname="pingin"
+  namespace="ISO4217"
+  exchange-code="372"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="£"
+/>
+<!-- "ILS" - "New Israeli Sheqel"
+-->
+<currency
+  isocode="ILS"
+  fullname="New Israeli Sheqel"
+  unitname="new shekel"
+  partname="agora"
+  namespace="ISO4217"
+  exchange-code="376"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="₪"
+/>
+<!-- "INR" - "Indian Rupee"
+-->
+<currency
+  isocode="INR"
+  fullname="Indian Rupee"
+  unitname="rupee"
+  partname="paisa"
+  namespace="ISO4217"
+  exchange-code="356"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="₹"
+/>
+<!-- "IQD" - "Iraqi Dinar"
+-->
+<currency
+  isocode="IQD"
+  fullname="Iraqi Dinar"
+  unitname="dinar"
+  partname="fil"
+  namespace="ISO4217"
+  exchange-code="368"
+  parts-per-unit="1000"
+  smallest-fraction="1000"
+  local-symbol="ع.د"
+/>
+<!-- "IRR" - "Iranian Rial"
+-->
+<currency
+  isocode="IRR"
+  fullname="Iranian Rial"
+  unitname="rial"
+  partname="dinar"
+  namespace="ISO4217"
+  exchange-code="364"
+  parts-per-unit="1"
+  smallest-fraction="1"
+  local-symbol="﷼﷼"
+/>
+<!-- "ISK" - "Iceland Krona"
+-->
+<currency
+  isocode="ISK"
+  fullname="Iceland Krona"
+  unitname="krona"
+  partname="aur"
+  namespace="ISO4217"
+  exchange-code="352"
+  parts-per-unit="1"
+  smallest-fraction="100"
+  local-symbol="kr"
+/>
+<!-- "ITL" - "Italian Lira"
+  2002-01-01 "EUR" 1936.27
+-->
+<currency
+  isocode="ITL"
+  fullname="Italian Lira"
+  unitname="lira"
+  partname="lira"
+  namespace="ISO4217"
+  exchange-code="380"
+  parts-per-unit="1"
+  smallest-fraction="1"
+  local-symbol="₤"
+/>
+<!-- "JMD" - "Jamaican Dollar"
+-->
+<currency
+  isocode="JMD"
+  fullname="Jamaican Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="388"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="J$"
+/>
+<!-- "JOD" - "Jordanian Dinar"
+-->
+<currency
+  isocode="JOD"
+  fullname="Jordanian Dinar"
+  unitname="dinar"
+  partname="fil"
+  namespace="ISO4217"
+  exchange-code="400"
+  parts-per-unit="1000"
+  smallest-fraction="1000"
+  local-symbol="JD"
+/>
+<!-- "JPY" - "Yen"
+-->
+<currency
+  isocode="JPY"
+  fullname="Yen"
+  unitname="yen"
+  partname="sen"
+  namespace="ISO4217"
+  exchange-code="392"
+  parts-per-unit="100"
+  smallest-fraction="1"
+  local-symbol="Â¥"
+/>
+<!-- "KES" - "Kenyan Shilling"
+-->
+<currency
+  isocode="KES"
+  fullname="Kenyan Shilling"
+  unitname="shilling"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="404"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Ksh"
+/>
+<!-- "KGS" - "Som"
+-->
+<currency
+  isocode="KGS"
+  fullname="Som"
+  unitname="som"
+  partname="tyiyn"
+  namespace="ISO4217"
+  exchange-code="417"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "KHR" - "Riel"
+-->
+<currency
+  isocode="KHR"
+  fullname="Riel"
+  unitname="riel"
+  partname="sen"
+  namespace="ISO4217"
+  exchange-code="116"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "KMF" - "Comoro Franc"
+-->
+<currency
+  isocode="KMF"
+  fullname="Comoro Franc"
+  unitname="franc"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="174"
+  parts-per-unit="100"
+  smallest-fraction="1"
+  local-symbol="FC"
+/>
+<!-- "KPW" - "North Korean Won"
+-->
+<currency
+  isocode="KPW"
+  fullname="North Korean Won"
+  unitname="won"
+  partname="chon"
+  namespace="ISO4217"
+  exchange-code="408"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="â‚©"
+/>
+<!-- "KRW" - "Won"
+-->
+<currency
+  isocode="KRW"
+  fullname="Won"
+  unitname="won"
+  partname="chon"
+  namespace="ISO4217"
+  exchange-code="410"
+  parts-per-unit="1"
+  smallest-fraction="100"
+  local-symbol="â‚©"
+/>
+<!-- "KWD" - "Kuwaiti Dinar"
+-->
+<currency
+  isocode="KWD"
+  fullname="Kuwaiti Dinar"
+  unitname="dinar"
+  partname="fils"
+  namespace="ISO4217"
+  exchange-code="414"
+  parts-per-unit="1000"
+  smallest-fraction="1000"
+  local-symbol="د.ك"
+/>
+<!-- "KYD" - "Cayman Islands Dollar"
+-->
+<currency
+  isocode="KYD"
+  fullname="Cayman Islands Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="136"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="CI$"
+/>
+<!-- "KZT" - "Tenge"
+-->
+<currency
+  isocode="KZT"
+  fullname="Tenge"
+  unitname="tenge"
+  partname="tiyn"
+  namespace="ISO4217"
+  exchange-code="398"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="₸"
+/>
+<!-- "LAK" - "Kip"
+-->
+<currency
+  isocode="LAK"
+  fullname="Kip"
+  unitname="kip"
+  partname="att"
+  namespace="ISO4217"
+  exchange-code="418"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="â‚­"
+/>
+<!-- "LBP" - "Lebanese Pound"
+-->
+<currency
+  isocode="LBP"
+  fullname="Lebanese Pound"
+  unitname="pound"
+  partname="piastre"
+  namespace="ISO4217"
+  exchange-code="422"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Ù„.Ù„"
+/>
+<!-- "LKR" - "Sri Lanka Rupee"
+-->
+<currency
+  isocode="LKR"
+  fullname="Sri Lanka Rupee"
+  unitname="rupee"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="144"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="₨"
+/>
+<!-- "LRD" - "Liberian Dollar"
+-->
+<currency
+  isocode="LRD"
+  fullname="Liberian Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="430"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="L$"
+/>
+<!-- "LSL" - "Loti"
+-->
+<currency
+  isocode="LSL"
+  fullname="Loti"
+  unitname="loti"
+  partname="sente"
+  namespace="ISO4217"
+  exchange-code="426"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="M"
+/>
+<!-- "LTL" - "Lithuanian Litas"
+-->
+<currency
+  isocode="LTL"
+  fullname="Lithuanian Litas"
+  unitname="litas"
+  partname="centas"
+  namespace="ISO4217"
+  exchange-code="440"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Lt"
+/>
+<!-- "LUF" - "Luxembourg Franc"
+  2002-01-01 "EUR" 40.3399
+-->
+<currency
+  isocode="LUF"
+  fullname="Luxembourg Franc"
+  unitname="frang"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="442"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Flux"
+/>
+<!-- "LVL" - "Latvian Lats"
+  Valid from 2. may 2009. till 31. december 2013, now "EUR" 0.702804
+-->
+<currency
+  isocode="LVL"
+  fullname="Latvian Lats"
+  unitname="lats"
+  partname="santīms"
+  namespace="ISO4217"
+  exchange-code="428"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Ls"
+/>
+<!-- "LYD" - "Libyan Dinar"
+-->
+<currency
+  isocode="LYD"
+  fullname="Libyan Dinar"
+  unitname="dinar"
+  partname="dirham"
+  namespace="ISO4217"
+  exchange-code="434"
+  parts-per-unit="1000"
+  smallest-fraction="1000"
+  local-symbol="ل.د"
+/>
+<!-- "MAD" - "Moroccan Dirham"
+-->
+<currency
+  isocode="MAD"
+  fullname="Moroccan Dirham"
+  unitname="dirham"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="504"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="د.م"
+/>
+<!-- "MDL" - "Moldovan Leu"
+-->
+<currency
+  isocode="MDL"
+  fullname="Moldovan Leu"
+  unitname="leu"
+  partname="ban"
+  namespace="ISO4217"
+  exchange-code="498"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "MGA" - "Malagasy Ariary"
+-->
+<currency
+  isocode="MGA"
+  fullname="Malagasy Ariary"
+  unitname="ariary"
+  partname="iraimbilanja"
+  namespace="ISO4217"
+  exchange-code="969"
+  parts-per-unit="5"
+  smallest-fraction="5"
+  local-symbol=""
+/>
+<!-- "MGF" - "Malagasy Franc"
+  2003-07-31 "MGA" 5
+-->
+<currency
+  isocode="MGF"
+  fullname="Malagasy Franc"
+  unitname="franc"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="450"
+  parts-per-unit="500"
+  smallest-fraction="500"
+  local-symbol=""
+/>
+<!-- "MKD" - "Denar"
+-->
+<currency
+  isocode="MKD"
+  fullname="Denar"
+  unitname="denar"
+  partname="deni"
+  namespace="ISO4217"
+  exchange-code="807"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="ден"
+/>
+<!-- "MLF" - "Mali Franc"
+  1984-07-01 "XOF" 2
+-->
+<currency
+  isocode="MLF"
+  fullname="Mali Franc"
+  unitname="franc"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="466"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "MMK" - "Kyat"
+-->
+<currency
+  isocode="MMK"
+  fullname="Kyat"
+  unitname="kyat"
+  partname="pya"
+  namespace="ISO4217"
+  exchange-code="104"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="K"
+/>
+<!-- "MNT" - "Tugrik"
+-->
+<currency
+  isocode="MNT"
+  fullname="Tugrik"
+  unitname="tugrik"
+  partname="mongo"
+  namespace="ISO4217"
+  exchange-code="496"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="â‚®"
+/>
+<!-- "MOP" - "Pataca"
+-->
+<currency
+  isocode="MOP"
+  fullname="Pataca"
+  unitname="pataca"
+  partname="avo"
+  namespace="ISO4217"
+  exchange-code="446"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="MOP$"
+/>
+<!-- "MRO" - "Ouguiya"
+-->
+<currency
+  isocode="MRO"
+  fullname="Ouguiya"
+  unitname="ouguiya"
+  partname="khoum"
+  namespace="ISO4217"
+  exchange-code="478"
+  parts-per-unit="5"
+  smallest-fraction="5"
+  local-symbol="UM"
+/>
+<!-- "MTL" - "Maltese Lira"
+  2008-01-01 "EUR" 0.4293
+-->
+<currency
+  isocode="MTL"
+  fullname="Maltese Lira"
+  unitname="lira"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="470"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Lm"
+/>
+<!-- "MUR" - "Mauritius Rupee"
+-->
+<currency
+  isocode="MUR"
+  fullname="Mauritius Rupee"
+  unitname="rupee"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="480"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="R"
+/>
+<!-- "MVR" - "Rufiyaa"
+-->
+<currency
+  isocode="MVR"
+  fullname="Rufiyaa"
+  unitname="rufiyaa"
+  partname="laari"
+  namespace="ISO4217"
+  exchange-code="462"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=".Þƒ"
+/>
+<!-- "MWK" - "Kwacha"
+-->
+<currency
+  isocode="MWK"
+  fullname="Kwacha"
+  unitname="kwacha"
+  partname="tambala"
+  namespace="ISO4217"
+  exchange-code="454"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="MK"
+/>
+<!-- "MXN" - "Mexican Peso"
+  since Jan 1993 (1000 MXP = 1 MXN)
+-->
+<currency
+  isocode="MXN"
+  fullname="Mexican Peso"
+  unitname="peso"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="484"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Mex$"
+/>
+<!-- "MXV" - "Mexican Unidad de Inversion (UDI)"
+  fund index based; used for credits, not subject to inflation
+-->
+<currency
+  isocode="MXV"
+  fullname="Mexican Unidad de Inversion (UDI)"
+  unitname="UDI"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="979"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "MYR" - "Malaysian Ringgit"
+-->
+<currency
+  isocode="MYR"
+  fullname="Malaysian Ringgit"
+  unitname="ringgit"
+  partname="sen"
+  namespace="ISO4217"
+  exchange-code="458"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="RM"
+/>
+<!-- "MZM" - "Mozambique Metical"
+  2006-07-01 "MZN" 1000
+-->
+<currency
+  isocode="MZM"
+  fullname="Mozambique Metical"
+  unitname="metical"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="508"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "MZN" - "Metical"
+-->
+<currency
+  isocode="MZN"
+  fullname="Metical"
+  unitname="metical"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="943"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="MTn"
+/>
+<!-- "NAD" - "Namibia Dollar"
+-->
+<currency
+  isocode="NAD"
+  fullname="Namibia Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="516"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="N$"
+/>
+<!-- "NGN" - "Naira"
+-->
+<currency
+  isocode="NGN"
+  fullname="Naira"
+  unitname="naira"
+  partname="kobo"
+  namespace="ISO4217"
+  exchange-code="566"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="₦"
+/>
+<!-- "NIC" - "Nicaraguan Cordoba"
+  1990-10-13 "NIO" 5000000
+-->
+<currency
+  isocode="NIC"
+  fullname="Nicaraguan Cordoba"
+  unitname="cordoba"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="558"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "NIO" - "Cordoba Oro"
+-->
+<currency
+  isocode="NIO"
+  fullname="Cordoba Oro"
+  unitname="cordoba"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="558"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="C$"
+/>
+<!-- "NLG" - "Netherlands Guilder"
+  2002-01-01 "EUR" 2.20371
+-->
+<currency
+  isocode="NLG"
+  fullname="Netherlands Guilder"
+  unitname="guilder"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="528"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "NOK" - "Norwegian Krone"
+-->
+<currency
+  isocode="NOK"
+  fullname="Norwegian Krone"
+  unitname="krone"
+  partname="ore"
+  namespace="ISO4217"
+  exchange-code="578"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="kr"
+/>
+<!-- "NPR" - "Nepalese Rupee"
+-->
+<currency
+  isocode="NPR"
+  fullname="Nepalese Rupee"
+  unitname="rupee"
+  partname="paise"
+  namespace="ISO4217"
+  exchange-code="524"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="₨"
+/>
+<!-- "NZD" - "New Zealand Dollar"
+-->
+<currency
+  isocode="NZD"
+  fullname="New Zealand Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="554"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="NZ$"
+/>
+<!-- "OMR" - "Rial Omani"
+-->
+<currency
+  isocode="OMR"
+  fullname="Rial Omani"
+  unitname="rial"
+  partname="baisa"
+  namespace="ISO4217"
+  exchange-code="512"
+  parts-per-unit="1000"
+  smallest-fraction="1000"
+  local-symbol="ر.ع."
+/>
+<!-- "PAB" - "Balboa"
+-->
+<currency
+  isocode="PAB"
+  fullname="Balboa"
+  unitname="balboa"
+  partname="centésimo"
+  namespace="ISO4217"
+  exchange-code="590"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="฿"
+/>
+<!-- "PEN" - "Nuevo Sol"
+-->
+<currency
+  isocode="PEN"
+  fullname="Nuevo Sol"
+  unitname="nuevo sol"
+  partname="centimo"
+  namespace="ISO4217"
+  exchange-code="604"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="S/."
+/>
+<!-- "PGK" - "Kina"
+-->
+<currency
+  isocode="PGK"
+  fullname="Kina"
+  unitname="kina"
+  partname="toea"
+  namespace="ISO4217"
+  exchange-code="598"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="K"
+/>
+<!-- "PHP" - "Philippine Peso"
+-->
+<currency
+  isocode="PHP"
+  fullname="Philippine Peso"
+  unitname="peso"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="608"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="₱"
+/>
+<!-- "PKR" - "Pakistan Rupee"
+-->
+<currency
+  isocode="PKR"
+  fullname="Pakistan Rupee"
+  unitname="rupee"
+  partname="paisa"
+  namespace="ISO4217"
+  exchange-code="586"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Rs"
+/>
+<!-- "PLN" - "Zloty"
+-->
+<currency
+  isocode="PLN"
+  fullname="Zloty"
+  unitname="zloty"
+  partname="grosz"
+  namespace="ISO4217"
+  exchange-code="985"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="zł"
+/>
+<!-- "PTE" - "Portuguese Escudo"
+  2002-01-01 "EUR" 200.482
+-->
+<currency
+  isocode="PTE"
+  fullname="Portuguese Escudo"
+  unitname="escudo"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="620"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="$"
+/>
+<!-- "PYG" - "Guarani"
+  scheduled revaluation 2011
+-->
+<currency
+  isocode="PYG"
+  fullname="Guarani"
+  unitname="guarani"
+  partname="centimo"
+  namespace="ISO4217"
+  exchange-code="600"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="₲"
+/>
+<!-- "QAR" - "Qatari Rial"
+-->
+<currency
+  isocode="QAR"
+  fullname="Qatari Rial"
+  unitname="rial"
+  partname="dirham"
+  namespace="ISO4217"
+  exchange-code="634"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="ر.ق"
+/>
+<!-- "ROL" - "Romanian Old Leu"
+  2005-07-01 "RON" 10000
+-->
+<currency
+  isocode="ROL"
+  fullname="Romanian Old Leu"
+  unitname="leu"
+  partname="ban"
+  namespace="ISO4217"
+  exchange-code="642"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "RON" - "New Leu"
+  scheduled 2012..14: EUR
+-->
+<currency
+  isocode="RON"
+  fullname="New Leu"
+  unitname="leu"
+  partname="ban"
+  namespace="ISO4217"
+  exchange-code="946"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "RSD" - "Serbian Dinar"
+-->
+<currency
+  isocode="RSD"
+  fullname="Serbian Dinar"
+  unitname="dinar"
+  partname="para"
+  namespace="ISO4217"
+  exchange-code="941"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "RUB" - "Russian Rouble"
+  RUR: 1998-01-1 "RUB" 1000; see bug #393185
+-->
+<currency
+  isocode="RUB"
+  fullname="Russian Rouble"
+  unitname="rouble"
+  partname="kopek"
+  namespace="ISO4217"
+  exchange-code="643"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="руб"
+/>
+<!-- "RWF" - "Rwanda Franc"
+-->
+<currency
+  isocode="RWF"
+  fullname="Rwanda Franc"
+  unitname="franc"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="646"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="RF"
+/>
+<!-- "SAR" - "Saudi Riyal"
+-->
+<currency
+  isocode="SAR"
+  fullname="Saudi Riyal"
+  unitname="riyal"
+  partname="halala"
+  namespace="ISO4217"
+  exchange-code="682"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="ر.س"
+/>
+<!-- "SBD" - "Solomon Islands Dollar"
+-->
+<currency
+  isocode="SBD"
+  fullname="Solomon Islands Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="090"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="SI$"
+/>
+<!-- "SCR" - "Seychelles Rupee"
+-->
+<currency
+  isocode="SCR"
+  fullname="Seychelles Rupee"
+  unitname="rupee"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="690"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="SR"
+/>
+<!-- "SDD" - "Sudanese Dinar"
+  2007-07-01 "SDG" 100, reunite with South
+-->
+<currency
+  isocode="SDD"
+  fullname="Sudanese Dinar"
+  unitname="dinar"
+  partname="piastre"
+  namespace="ISO4217"
+  exchange-code="736"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "SDG" - "Sudanese Pound"
+-->
+<currency
+  isocode="SDG"
+  fullname="Sudanese Pound"
+  unitname="pound"
+  partname="qirsh"
+  namespace="ISO4217"
+  exchange-code="938"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "SDP" - "Sudanese Pound"
+  1992-01-01 "SDD" 10, but only in the North
+-->
+<currency
+  isocode="SDP"
+  fullname="Sudanese Pound"
+  unitname="pound"
+  partname="piastre"
+  namespace="ISO4217"
+  exchange-code="736"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "SEK" - "Swedish Krona"
+-->
+<currency
+  isocode="SEK"
+  fullname="Swedish Krona"
+  unitname="krona"
+  partname="ore"
+  namespace="ISO4217"
+  exchange-code="752"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="kr"
+/>
+<!-- "SGD" - "Singapore Dollar"
+-->
+<currency
+  isocode="SGD"
+  fullname="Singapore Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="702"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="S$"
+/>
+<!-- "SHP" - "Saint Helena Pound"
+-->
+<currency
+  isocode="SHP"
+  fullname="Saint Helena Pound"
+  unitname="pound"
+  partname="penny"
+  namespace="ISO4217"
+  exchange-code="654"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="£"
+/>
+<!-- "SIT" - "Slovenian Tolar"
+  2007-01-01 "EUR" 239.640
+-->
+<currency
+  isocode="SIT"
+  fullname="Slovenian Tolar"
+  unitname="tolar"
+  partname="stotin"
+  namespace="ISO4217"
+  exchange-code="705"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "SKK" - "Slovak Koruna"
+  2009-01-01 "EUR" 30.126
+-->
+<currency
+  isocode="SKK"
+  fullname="Slovak Koruna"
+  unitname="koruna"
+  partname="halier"
+  namespace="ISO4217"
+  exchange-code="703"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "SLL" - "Leone"
+-->
+<currency
+  isocode="SLL"
+  fullname="Leone"
+  unitname="leone"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="694"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Le"
+/>
+<!-- "SOS" - "Somali Shilling"
+-->
+<currency
+  isocode="SOS"
+  fullname="Somali Shilling"
+  unitname="shilling"
+  partname="centisimi"
+  namespace="ISO4217"
+  exchange-code="706"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="SoSh"
+/>
+<!-- "SRD" - "Surinam Dollar"
+-->
+<currency
+  isocode="SRD"
+  fullname="Surinam Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="968"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="$"
+/>
+<!-- "SRG" - "Suriname Guilder"
+  2004-01-01 "SRD" 1000
+-->
+<currency
+  isocode="SRG"
+  fullname="Suriname Guilder"
+  unitname="guilder"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="740"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "STD" - "Dobra"
+-->
+<currency
+  isocode="STD"
+  fullname="Dobra"
+  unitname="dobra"
+  partname="centimo"
+  namespace="ISO4217"
+  exchange-code="678"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Db"
+/>
+<!-- "SVC" - "El Salvador Colon"
+  2001-01-01 "USD" 8.75
+-->
+<currency
+  isocode="SVC"
+  fullname="El Salvador Colon"
+  unitname="colon"
+  partname="centavo"
+  namespace="ISO4217"
+  exchange-code="222"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "SYP" - "Syrian Pound"
+-->
+<currency
+  isocode="SYP"
+  fullname="Syrian Pound"
+  unitname="pound"
+  partname="qirsh"
+  namespace="ISO4217"
+  exchange-code="760"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "SZL" - "Lilangeni"
+-->
+<currency
+  isocode="SZL"
+  fullname="Lilangeni"
+  unitname="lilangeni"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="748"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="L"
+/>
+<!-- "THB" - "Baht"
+-->
+<currency
+  isocode="THB"
+  fullname="Baht"
+  unitname="baht"
+  partname="satang"
+  namespace="ISO4217"
+  exchange-code="764"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="฿"
+/>
+<!-- "TJR" - "Tajik Rouble"
+  2002-11-01 "TJS" 1000
+-->
+<currency
+  isocode="TJR"
+  fullname="Tajik Rouble"
+  unitname="ruble"
+  partname="ruble"
+  namespace="ISO4217"
+  exchange-code="762"
+  parts-per-unit="1"
+  smallest-fraction="1"
+  local-symbol=""
+/>
+<!-- "TJS" - "Somoni"
+-->
+<currency
+  isocode="TJS"
+  fullname="Somoni"
+  unitname="somoni"
+  partname="diram"
+  namespace="ISO4217"
+  exchange-code="972"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "TMM" - "Manat"
+  2009-01-01 "TMT" 5000
+-->
+<currency
+  isocode="TMM"
+  fullname="Manat"
+  unitname="manat"
+  partname="tenga"
+  namespace="ISO4217"
+  exchange-code="795"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "TMT" - "Manat"
+-->
+<currency
+  isocode="TMT"
+  fullname="Manat"
+  unitname="manat"
+  partname="teňňe"
+  namespace="ISO4217"
+  exchange-code="934"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="m"
+/>
+<!-- "TND" - "Tunisian Dinar"
+-->
+<currency
+  isocode="TND"
+  fullname="Tunisian Dinar"
+  unitname="dinar"
+  partname="milim"
+  namespace="ISO4217"
+  exchange-code="788"
+  parts-per-unit="1000"
+  smallest-fraction="1000"
+  local-symbol="د.ت"
+/>
+<!-- "TOP" - "Pa'anga"
+-->
+<currency
+  isocode="TOP"
+  fullname="Pa'anga"
+  unitname="Pa'anga"
+  partname="seniti"
+  namespace="ISO4217"
+  exchange-code="776"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="T$"
+/>
+<!-- "TRY" - "Turkish Lira"
+-->
+<currency
+  isocode="TRY"
+  fullname="Turkish Lira"
+  unitname="lira"
+  partname="kuruÅŸ"
+  namespace="ISO4217"
+  exchange-code="949"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="₤"
+/>
+<!-- "TTD" - "Trinidad and Tobago Dollar"
+-->
+<currency
+  isocode="TTD"
+  fullname="Trinidad and Tobago Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="780"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="TT$"
+/>
+<!-- "TWD" - "New Taiwan Dollar"
+-->
+<currency
+  isocode="TWD"
+  fullname="New Taiwan Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="901"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="NT$"
+/>
+<!-- "TZS" - "Tanzanian Shilling"
+-->
+<currency
+  isocode="TZS"
+  fullname="Tanzanian Shilling"
+  unitname="shilling"
+  partname="senti"
+  namespace="ISO4217"
+  exchange-code="834"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="/"
+/>
+<!-- "UAH" - "Hryvnia"
+-->
+<currency
+  isocode="UAH"
+  fullname="Hryvnia"
+  unitname="hryvnia"
+  partname="kopiyka"
+  namespace="ISO4217"
+  exchange-code="980"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="â‚´"
+/>
+<!-- "UGX" - "Uganda Shilling"
+-->
+<currency
+  isocode="UGX"
+  fullname="Uganda Shilling"
+  unitname="shilling"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="800"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="USh"
+/>
+<!-- "USD" - "US Dollar"
+-->
+<currency
+  isocode="USD"
+  fullname="US Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="840"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="$"
+/>
+<!-- "USN" - "US Dollar (Next day)"
+  funds code
+-->
+<currency
+  isocode="USN"
+  fullname="US Dollar (Next day)"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="997"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="$n"
+/>
+<!-- "USS" - "US Dollar (Same day)"
+  funds code
+-->
+<currency
+  isocode="USS"
+  fullname="US Dollar (Same day)"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="998"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="$s"
+/>
+<!-- "UYI" - "Uruguay Peso en Unidades Indexadas"
+-->
+<currency
+  isocode="UYI"
+  fullname="Uruguay Peso en Unidades Indexadas"
+  unitname="UI"
+  partname="centesimo"
+  namespace="ISO4217"
+  exchange-code="940"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="UI"
+/>
+<!-- "UYU" - "Peso Uruguayo"
+-->
+<currency
+  isocode="UYU"
+  fullname="Peso Uruguayo"
+  unitname="peso"
+  partname="centesimo"
+  namespace="ISO4217"
+  exchange-code="858"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="$U"
+/>
+<!-- "UZS" - "Uzbekistan Sum"
+-->
+<currency
+  isocode="UZS"
+  fullname="Uzbekistan Sum"
+  unitname="so‘m"
+  partname="tiyin"
+  namespace="ISO4217"
+  exchange-code="860"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="som"
+/>
+<!-- "VEB" - "Venezuela Bolívar"
+  2008-01-01 "VEF" 1000
+-->
+<currency
+  isocode="VEB"
+  fullname="Venezuela Bolívar"
+  unitname="bolivar"
+  partname="centimo"
+  namespace="ISO4217"
+  exchange-code="862"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "VEF" - "Bolivar Fuerte"
+-->
+<currency
+  isocode="VEF"
+  fullname="Bolivar Fuerte"
+  unitname="bolivar"
+  partname="centimo"
+  namespace="ISO4217"
+  exchange-code="937"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Bs."
+/>
+<!-- "VND" - "Dong"
+-->
+<currency
+  isocode="VND"
+  fullname="Dong"
+  unitname="đồng"
+  partname="xu"
+  namespace="ISO4217"
+  exchange-code="704"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="â‚«"
+/>
+<!-- "VUV" - "Vatu"
+-->
+<currency
+  isocode="VUV"
+  fullname="Vatu"
+  unitname="vatu"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="548"
+  parts-per-unit="1"
+  smallest-fraction="1"
+  local-symbol="Vt"
+/>
+<!-- "WST" - "Tala"
+-->
+<currency
+  isocode="WST"
+  fullname="Tala"
+  unitname="tala"
+  partname="sene"
+  namespace="ISO4217"
+  exchange-code="882"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="WS$"
+/>
+<!-- "YER" - "Yemeni Rial"
+-->
+<currency
+  isocode="YER"
+  fullname="Yemeni Rial"
+  unitname="riyal"
+  partname="fils"
+  namespace="ISO4217"
+  exchange-code="886"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Rl"
+/>
+<!-- "YUM" - "Yugoslavian Dinar"
+  2003 replaced by RSD 1
+-->
+<currency
+  isocode="YUM"
+  fullname="Yugoslavian Dinar"
+  unitname="dinar"
+  partname="para"
+  namespace="ISO4217"
+  exchange-code="890"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "ZAR" - "Rand"
+-->
+<currency
+  isocode="ZAR"
+  fullname="Rand"
+  unitname="rand"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="710"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="R"
+/>
+<!-- "ZMK" - "Kwacha (old)"
+  replaced by ZMW from 2013-01-01 onwards
+-->
+<currency
+  isocode="ZMK"
+  fullname="Kwacha (old)"
+  unitname="kwacha"
+  partname="ngwee"
+  namespace="ISO4217"
+  exchange-code="894"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="ZK"
+/>
+<!-- "ZMW" - "Zambian Kwacha"
+  replaced ZMK from 2013-01-01 onwards
+-->
+<currency
+  isocode="ZMW"
+  fullname="Zambian Kwacha"
+  unitname="kwacha"
+  partname="ngwee"
+  namespace="ISO4217"
+  exchange-code="967"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="ZK"
+/>
+<!-- "ZWD" - "Zimbabwe Dollar"
+  2006-08-01 "ZWN" 1000, 2008-08-01 "ZWR" 10000000000, 2009-02-01 "ZWD" 1000000000000
+-->
+<currency
+  isocode="ZWD"
+  fullname="Zimbabwe Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="716"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "ZWL" - "Zimbabwe Dollar"
+  2009-04 suspended for at least 1 year
+-->
+<currency
+  isocode="ZWL"
+  fullname="Zimbabwe Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="716"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="Z.$"
+/>
+
+<!-- multinational -->
+<!-- "XAF" - "CFA Franc BEAC"
+  Banque des États de l'Afrique Centrale
+-->
+<currency
+  isocode="XAF"
+  fullname="CFA Franc BEAC"
+  unitname="franc"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="950"
+  parts-per-unit="1"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- XB* should be replaced by EUR, if I am right -->
+<!-- "XCD" - "East Caribbean Dollar"
+  Organisation of Eastern Caribbean States
+-->
+<currency
+  isocode="XCD"
+  fullname="East Caribbean Dollar"
+  unitname="dollar"
+  partname="cent"
+  namespace="ISO4217"
+  exchange-code="951"
+  parts-per-unit="100"
+  smallest-fraction="100"
+  local-symbol="EC$"
+/>
+<!-- "XDR" - "SDR"
+  International Monetary Funds Special Drawing Rights
+-->
+<currency
+  isocode="XDR"
+  fullname="SDR"
+  unitname="SDR"
+  partname="SDR"
+  namespace="ISO4217"
+  exchange-code="960"
+  parts-per-unit="1"
+  smallest-fraction="1"
+  local-symbol=""
+/>
+<!-- "XFO" - "Gold-Franc"
+  Bank for International Settlements
+-->
+<currency
+  isocode="XFO"
+  fullname="Gold-Franc"
+  unitname="franc"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="nil"
+  parts-per-unit="1"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "XFU" - "UIC-Franc"
+  Union Internationale des Chemins de fer
+-->
+<currency
+  isocode="XFU"
+  fullname="UIC-Franc"
+  unitname="franc"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="nil"
+  parts-per-unit="1"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "XOF" - "CFA Franc BCEAO"
+  Banque Centrale des États de l'Afrique de l'Ouest
+-->
+<currency
+  isocode="XOF"
+  fullname="CFA Franc BCEAO"
+  unitname="franc"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="952"
+  parts-per-unit="1"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "XPF" - "CFP Franc"
+  Communauté Financière du Pacifique
+-->
+<currency
+  isocode="XPF"
+  fullname="CFP Franc"
+  unitname="franc"
+  partname="centime"
+  namespace="ISO4217"
+  exchange-code="953"
+  parts-per-unit="1"
+  smallest-fraction="100"
+  local-symbol=""
+/>
+<!-- "XTS" - "Code for testing purposes"
+  Code reserved for testing purposes
+-->
+<currency
+  isocode="XTS"
+  fullname="Code for testing purposes"
+  unitname="TEST"
+  partname="test"
+  namespace="ISO4217"
+  exchange-code="963"
+  parts-per-unit="1"
+  smallest-fraction="1000000"
+  local-symbol=""
+/>
+<!-- "XXX" - "No currency"
+-->
+<currency
+  isocode="XXX"
+  fullname="No currency"
+  unitname=""
+  partname=""
+  namespace="ISO4217"
+  exchange-code="999"
+  parts-per-unit="1"
+  smallest-fraction="1000000"
+  local-symbol=""
+/>
+
+<!-- precious metals -->
+<!-- "XAG" - "Silver"
+-->
+<currency
+  isocode="XAG"
+  fullname="Silver"
+  unitname="ounce"
+  partname="ounce"
+  namespace="ISO4217"
+  exchange-code="961"
+  parts-per-unit="1"
+  smallest-fraction="1000000"
+  local-symbol=""
+/>
+<!-- "XAU" - "Gold"
+-->
+<currency
+  isocode="XAU"
+  fullname="Gold"
+  unitname="ounce"
+  partname="ounce"
+  namespace="ISO4217"
+  exchange-code="959"
+  parts-per-unit="1"
+  smallest-fraction="1000000"
+  local-symbol=""
+/>
+<!-- "XPD" - "Palladium"
+-->
+<currency
+  isocode="XPD"
+  fullname="Palladium"
+  unitname="ounce"
+  partname="ounce"
+  namespace="ISO4217"
+  exchange-code="964"
+  parts-per-unit="1"
+  smallest-fraction="1000000"
+  local-symbol=""
+/>
+<!-- "XPT" - "Platinum"
+-->
+<currency
+  isocode="XPT"
+  fullname="Platinum"
+  unitname="ounce"
+  partname="ounce"
+  namespace="ISO4217"
+  exchange-code="962"
+  parts-per-unit="1"
+  smallest-fraction="1000000"
+  local-symbol=""
+/>
+</currencylist>
\ No newline at end of file
diff --git a/src/engine/iso-currencies-to-c.in b/src/engine/iso-currencies-to-c.in
deleted file mode 100755
index e8dd400..0000000
--- a/src/engine/iso-currencies-to-c.in
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/bin/sh
-exec @GUILE@ -s $0 "$@"
-!#
-
-(if (< (length (command-line)) 2)
-    (begin
-      (display "Missing command line argument \"source directory\"")
-      (exit 1)))
-
-(define *srcdir* (list-ref (command-line) 1))
-(define *currency-file* (string-append *srcdir* "/" "iso-4217-currencies.scm"))
-(define *c-file-name* "iso-4217-currencies.c")
-
-(define (generate-currency-c-code form output-port)
-  ;; Check for correct number of arguments
-  (if (and (list? form)
-	   (eq? 9 (length form)))
-      ;; Assign arguments
-      (let ((fullname (list-ref form 0))
-	    (unitname (list-ref form 1))
-	    (partname (list-ref form 2))
-	    (namespace (list-ref form 3))
-	    (mnemonic (list-ref form 4))
-	    (exchange-code (list-ref form 5))
-	    (parts-per-unit (list-ref form 6))
-	    (smallest-fraction (list-ref form 7))
-	    (local-symbol (list-ref form 8)))
-	;; Check for correct types of arguments
-	(if (and (string? fullname)
-		 (string? unitname)
-		 (string? partname)
-		 (string? namespace)
-		 (string? mnemonic)
-		 (string? exchange-code)
-		 (number? parts-per-unit)
-		 (number? smallest-fraction)
-		 (string? local-symbol))
-
-	    ;; And print the output line
-	    (format
-	     output-port "
-  {
-    const char *fullname = ~S;
-    gnc_commodity *c = gnc_commodity_new(book,
-					 CUR_I18N(fullname),
-                                         ~S,
-                                         ~S,
-                                         ~S,
-                                         ~S);\n
-    if(!c) {
-      PWARN(\"failed to create commodity for currency %s\", fullname);
-    } else {
-      if(!gnc_commodity_table_insert(table, c)) {
-        PWARN(\"failed to insert %s into commodity table\", fullname);
-      }
-    }
-    gnc_commodity_set_default_symbol(c, ~S);
-  }\n"
-	     fullname
-	     namespace
-	     mnemonic
-	     exchange-code
-	     smallest-fraction
-	     local-symbol)
-
-	    ;; Sorry, code doubling of the error message, but whatever.
-	    (begin
-	      (display "Bad currency data (wrong column data) at line: ")
-	      (display form)
-	      (newline)
-	      #f)))
-
-      (begin
-        (display "Bad currency data (wrong number of columns) at line: ")
-        (display form)
-        (newline)
-        #f)))
-
-(define (generate-currencies-c-code)
-  (call-with-input-file *currency-file*
-    (lambda (input-port)
-      (call-with-output-file *c-file-name*
-        (lambda (output-port)
-          (let loop ((form (read input-port)))
-            (if (eof-object? form)
-                #t
-                (if (generate-currency-c-code form output-port)
-                    (loop (read input-port))
-                    #f))))))))
-
-(if (not (generate-currencies-c-code))
-    (begin
-      (display "Unable to generate iso-4217 currency C code.\n")
-      (exit 1))
-    (exit 0))
-
-;; Local Variables:
-;; mode: scheme
-;; End:
diff --git a/src/engine/iso-currencies-to-c.xsl b/src/engine/iso-currencies-to-c.xsl
new file mode 100644
index 0000000..defeafa
--- /dev/null
+++ b/src/engine/iso-currencies-to-c.xsl
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="text" encoding="UTF8"/>
+
+<xsl:template match="/">
+/********************************************************************\
+ * iso-4217-currencies.c -- list of currencies gnucash understands  *
+ *                                                                  *
+ * ATTENTION: this file is autogenerated based on                   *
+ *            iso-4217-currencies.xml                               *
+ *                                                                  *
+ * If you need any modifications in this file, please update the    *
+ * xml source file (or the xsl translation file depending on the    *
+ * kind of change required) instead.                                *
+ *                                                                  *
+ * Copyright (C) 2015 Geert Janssens <geert at kobaltwit.be>           *
+ *                                                                  *
+ * This program is free software; you can redistribute it and/or    *
+ * modify it under the terms of the GNU General Public License as   *
+ * published by the Free Software Foundation; either version 2 of   *
+ * the License, or (at your option) any later version.              *
+ *                                                                  *
+ * This program is distributed in the hope that it will be useful,  *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of   *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    *
+ * GNU General Public License for more details.                     *
+ *                                                                  *
+ * You should have received a copy of the GNU General Public License*
+ * along with this program; if not, contact:                        *
+ *                                                                  *
+ * Free Software Foundation           Voice:  +1-617-542-5942       *
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
+ *                                                                  *
+\********************************************************************/
+
+<xsl:for-each select="//currency">
+  {
+    const char *fullname = "<xsl:value-of select="@fullname"/>";
+    gnc_commodity *c = gnc_commodity_new(book,
+                                         CUR_I18N(fullname),
+                                         "<xsl:value-of select="@namespace"/>",
+                                         "<xsl:value-of select="@isocode"/>",
+                                         "<xsl:value-of select="@exchange-code"/>",
+                                         <xsl:value-of select="@smallest-fraction"/>);
+    if(!c) {
+      PWARN("failed to create commodity for currency %s", fullname);
+    } else {
+      if(!gnc_commodity_table_insert(table, c)) {
+        PWARN("failed to insert %s into commodity table", fullname);
+      }
+    }
+    gnc_commodity_set_default_symbol(c, "<xsl:value-of select="@local-symbol"/>");
+  }
+</xsl:for-each>
+</xsl:template>
+</xsl:stylesheet>

commit 7581436e794db23b6bcea41683fefe4c6d3a2841
Author: Geert Janssens <janssens-geert at telenet.be>
Date:   Thu Jan 29 17:55:23 2015 +0100

    Bug 743609 - Add configure options to disable libsecret detection

diff --git a/configure.ac b/configure.ac
index 657dcf1..073e8ae 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1117,23 +1117,40 @@ then
 
   ###-----------------------------------------------------------------------
   ## Find a suitable password store
+  AC_ARG_ENABLE([password-storage],
+                AS_HELP_STRING([--disable-password-storage], [Ignore system wide password stores such as gnome-keyring, libsecret or Apple's keychain]))
 
-  case $host_os in
+  have_password_storage=no
+  if test "x$enable_password_storage" != "xno"
+  then
+    case $host_os in
     darwin*)
+      have_password_storage=yes
       AC_DEFINE(HAVE_OSX_KEYCHAIN,1,[System has an OS X Key chain])
       ;;
     *)
       PKG_CHECK_MODULES(GNOME_KEYRING, gnome-keyring-1 >= "0.6",
-          [AC_DEFINE(HAVE_GNOME_KEYRING,1,[System has gnome-keyring 0.6 or better])],
-          [AC_DEFINE(HAVE_NO_KEYRING,1,[System has no suitable keyring service])])
+          [have_password_storage=yes
+           AC_DEFINE(HAVE_GNOME_KEYRING,1,[System has gnome-keyring 0.6 or better])
+          ],
+          [dummy_not_found=true])
 
       PKG_CHECK_MODULES(LIBSECRET, libsecret-1 >= "0.18",
-          [AC_DEFINE(HAVE_LIBSECRET,1,[System has libsecret 0.18 or better])],
-          [AC_DEFINE(HAVE_NO_LIBSECRET,1,[System has no suitable libsecret service])])
-      AC_SUBST(LIBSECRET_CFLAGS)
-      AC_SUBST(LIBSECRET_LIBS)
+          [have_password_storage=yes
+           AC_DEFINE(HAVE_LIBSECRET,1,[System has libsecret 0.18 or better])
+           AC_SUBST(LIBSECRET_CFLAGS)
+           AC_SUBST(LIBSECRET_LIBS)
+          ],
+          [dummy_not_found=true])
       ;;
-  esac
+    esac
+  fi
+
+  if test "x$have_password_storage" = "xno" && test "x$enable_password_storage" = "xyes"
+  then
+      AC_MSG_ERROR([password storage requested but no suitable backend found. Either gnome-keyring >= 0.6, libsecret >= 0.18 or Apple's keychain are supported])
+  fi
+
 
   ### ----------------------------------------------------------------------
 

commit 0ff9eba94f0d273ec11e4e19da42019bdc6cc802
Author: Geert Janssens <janssens-geert at telenet.be>
Date:   Wed Jan 28 17:00:21 2015 +0100

    Bug 727647 - "gncInvoiceGetTotal" is not read-only function?
    
    The root cause is in gncRecomputeValues. This function
    only alters runtime cached values so it should not
    trigger a book dirty action (mark_entry).

diff --git a/src/engine/gncEntry.c b/src/engine/gncEntry.c
index f4c1786..7245829 100644
--- a/src/engine/gncEntry.c
+++ b/src/engine/gncEntry.c
@@ -1327,7 +1327,6 @@ gncEntryRecomputeValues (GncEntry *entry)
     /* Determine the commodity denominator */
     denom = get_entry_commodity_denom (entry);
 
-    gncEntryBeginEdit (entry);
     /* Compute the invoice values */
     gncEntryComputeValue (entry->quantity, entry->i_price,
                           (entry->i_taxable ? entry->i_tax_table : NULL),
@@ -1360,8 +1359,6 @@ gncEntryRecomputeValues (GncEntry *entry)
     entry->b_tax_value_rounded = gnc_numeric_convert (entry->b_tax_value, denom,
                                  GNC_HOW_RND_ROUND_HALF_UP);
     entry->values_dirty = FALSE;
-    mark_entry (entry);
-    gncEntryCommitEdit (entry);
 }
 
 /* The "Int" functions below are for internal use only.

commit 5e60a234006ef68a517af0204d92f96ebe2f5de6
Author: Mike Evans <mikee at saxicola.co.uk>
Date:   Sun Jan 25 11:14:53 2015 +0000

    Bug 721196 - Use a regex for checking for a valid numeric value.
    
    Just testing for an empty field will miss the cases where there are
    spaces or decimal separators present.

diff --git a/src/import-export/csv-imp/gnc-csv-model.c b/src/import-export/csv-imp/gnc-csv-model.c
index b892b55..877529a 100644
--- a/src/import-export/csv-imp/gnc-csv-model.c
+++ b/src/import-export/csv-imp/gnc-csv-model.c
@@ -647,6 +647,8 @@ static gboolean trans_property_set (TransProperty* prop, char* str)
 {
     char *endptr, *possible_currency_symbol, *str_dupe;
     gnc_numeric val;
+    int reti;
+    regex_t regex;
     switch (prop->type)
     {
     case GNC_CSV_DATE:
@@ -664,9 +666,11 @@ static gboolean trans_property_set (TransProperty* prop, char* str)
     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. */
-        /* If a cell is empty make its value = "0" */
-        if (strcmp (str_dupe, "") == 0)
-        { 
+        /* If a cell is empty or just spaces make its value = "0" */
+        reti = regcomp(&regex, "[0-9]", 0);
+        reti = regexec(&regex, str_dupe, 0, NULL, 0);
+        if (reti == REG_NOMATCH)
+        {
             g_free (str_dupe);
             str_dupe = g_strdup ("0");
         }

commit 564b9874575bb689974caca91a6737c8b12ef9cb
Author: Mike Evans <mikee at saxicola.co.uk>
Date:   Sun Jan 25 11:08:05 2015 +0000

    Numeric values with more than commodity smallest fraction get silently dropped.
    
    If there are more DPs than the commodity smallest fraction they get
    lost when calling gnc_numeric_convert().  Removed the call.

diff --git a/src/plugins/bi_import/dialog-bi-import.c b/src/plugins/bi_import/dialog-bi-import.c
index 05ef930..3c2a8b0 100644
--- a/src/plugins/bi_import/dialog-bi-import.c
+++ b/src/plugins/bi_import/dialog-bi-import.c
@@ -719,7 +719,6 @@ gnc_bi_import_create_bis (GtkListStore * store, QofBook * book,
         {
             gncEntrySetBillAccount (entry, acc);
             gnc_exp_parser_parse (price, &value, NULL);
-            value = gnc_numeric_convert (value, denom, GNC_HOW_RND_NEVER);
             gncEntrySetBillPrice (entry, value);
             gncEntrySetBillTaxable (entry, text2bool (taxable));
             gncEntrySetBillTaxIncluded (entry, text2bool (taxincluded));
@@ -732,13 +731,11 @@ gnc_bi_import_create_bis (GtkListStore * store, QofBook * book,
             gncEntrySetNotes (entry, notes);
             gncEntrySetInvAccount (entry, acc);
             gnc_exp_parser_parse (price, &value, NULL);
-            value = gnc_numeric_convert (value, denom, GNC_HOW_RND_NEVER);
             gncEntrySetInvPrice (entry, value);
             gncEntrySetInvTaxable (entry, text2bool (taxable));
             gncEntrySetInvTaxIncluded (entry, text2bool (taxincluded));
             gncEntrySetInvTaxTable (entry, gncTaxTableLookupByName (book, tax_table));
             gnc_exp_parser_parse (discount, &value, NULL);
-            value = gnc_numeric_convert (value, denom, GNC_HOW_RND_NEVER);
             gncEntrySetInvDiscount (entry, value);
             gncEntrySetInvDiscountType (entry, text2disc_type (disc_type));
             gncEntrySetInvDiscountHow (entry, text2disc_how (disc_how));

commit 2494bfc63fe1374cae1ffd2a8492245c6a30bc57
Author: Geert Janssens <janssens-geert at telenet.be>
Date:   Sat Jan 24 17:33:39 2015 +0100

    Bug 742624 - [patch] Scheduled Transaction Editor results in immediate segfault

diff --git a/src/gnome-utils/gnc-dense-cal.c b/src/gnome-utils/gnc-dense-cal.c
index 3b70255..8f2e047 100644
--- a/src/gnome-utils/gnc-dense-cal.c
+++ b/src/gnome-utils/gnc-dense-cal.c
@@ -261,7 +261,7 @@ _gdc_get_view_options(void)
 static void
 gnc_dense_cal_init(GncDenseCal *dcal)
 {
-    gboolean colorAllocSuccess;
+    gboolean colorAllocSuccess[MAX_COLORS];
 
     gtk_widget_push_composite_child();
 
@@ -348,10 +348,14 @@ gnc_dense_cal_init(GncDenseCal *dcal)
 
     gdk_color_parse(MONTH_THIS_COLOR,  &dcal->weekColors[MONTH_THIS]);
     gdk_color_parse(MONTH_THAT_COLOR,  &dcal->weekColors[MONTH_THAT]);
+
+    /* success array must be as big as number of colors */
+    g_assert(MAX_COLORS == (sizeof(colorAllocSuccess)/sizeof(gboolean)));
+
     if (gdk_colormap_alloc_colors(gdk_colormap_get_system(),
                                   dcal->weekColors,
                                   MAX_COLORS, TRUE, TRUE,
-                                  &colorAllocSuccess) > 0)
+                                  colorAllocSuccess) > 0)
     {
         g_error("error allocating colors");
     }

commit d5da59331fe1454265b12787722c9d41c33e7586
Author: Geert Janssens <janssens-geert at telenet.be>
Date:   Sat Jan 24 16:10:58 2015 +0100

    Bug 731889 - guile 2 exports different autoconf macros than what is expected
    
    The problem is mainly a poorly chosen error message. The user
    should generally only rerun autogen.sh, so I have added this
    in the error message.

diff --git a/configure.ac b/configure.ac
index 14e8443..657dcf1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -472,8 +472,9 @@ PKG_CHECK_MODULES(GUILE,
                   [m4_ifdef([GUILE_PROGS],
                             [ GUILE_PROGS
                               gnc_have_guile_2=yes ],
-                            [ AC_MSG_ERROR([ guile 2 is found on your system, but appears
-    to export different autoconf macros than what we expected. Please report this as a bug
+                            [ AC_MSG_ERROR([ guile 2 is found on your system, but we did
+    find the right autoconf macros. Please rerun autogen.sh first. If this
+    does not solve the problem, please report this as a bug
     in GnuCash, so we can fix this for your platform.]) ])
                   ],
                   [AC_MSG_ERROR([



Summary of changes:
 .gitignore                                         |    1 -
 Makefile.am                                        |   11 +-
 configure.ac                                       |   69 +-
 intl-scm/Makefile.am                               |   22 -
 intl-scm/xgettext.scm                              |   75 -
 make-gnucash-potfiles.in                           |    3 +-
 po/POTFILES.in                                     |  129 +-
 po/POTFILES.skip                                   |   83 +-
 src/Makefile.am                                    |    4 +-
 src/app-utils/Makefile.am                          |    2 +-
 src/app-utils/test/Makefile.am                     |    2 +-
 src/backend/dbi/test/Makefile.am                   |    2 +-
 src/backend/sql/test/Makefile.am                   |    2 +-
 src/backend/xml/test/Makefile.am                   |    2 +-
 src/bin/overrides/gnucash-build-env.in             |    2 +-
 src/business/business-gnome/Makefile.am            |    2 +-
 src/core-utils/Makefile.am                         |    2 +-
 src/core-utils/test/Makefile.am                    |    2 +-
 src/engine/Makefile.am                             |   18 +-
 src/engine/gncEntry.c                              |    3 -
 src/engine/iso-4217-currencies.scm                 |  253 --
 src/engine/iso-4217-currencies.xml                 | 3009 ++++++++++++++++++++
 src/engine/iso-currencies-to-c.in                  |   99 -
 .../iso-currencies-to-c.xsl}                       |   51 +-
 src/engine/test/Makefile.am                        |    2 +-
 src/gnc-module/Makefile.am                         |    2 +-
 src/gnc-module/test/Makefile.am                    |    2 +-
 src/gnc-test-env.in                                |  139 -
 src/gnc-test-env.pl                                |   61 +
 src/gnome-utils/Makefile.am                        |    2 +-
 src/gnome-utils/gnc-dense-cal.c                    |    8 +-
 src/gnome-utils/test/Makefile.am                   |    2 +-
 src/import-export/csv-imp/gnc-csv-model.c          |   10 +-
 src/import-export/qif-imp/Makefile.am              |    2 +-
 src/import-export/qif/test/Makefile.am             |    2 +-
 src/import-export/test/Makefile.am                 |    2 +-
 src/optional/python-bindings/tests/Makefile.am     |    2 +-
 src/plugins/bi_import/dialog-bi-import.c           |    3 -
 src/register/register-core/test/Makefile.am        |    2 +-
 src/register/register-gnome/test/Makefile.am       |    2 +-
 src/report/business-reports/Makefile.am            |    2 +-
 src/report/locale-specific/us/Makefile.am          |    2 +-
 src/report/locale-specific/us/test/Makefile.am     |    2 +-
 src/report/report-gnome/Makefile.am                |    2 +-
 src/report/report-gnome/test/Makefile.am           |    2 +-
 src/report/report-system/Makefile.am               |    2 +-
 src/report/report-system/test/Makefile.am          |    2 +-
 src/report/standard-reports/Makefile.am            |    2 +-
 src/report/standard-reports/test/Makefile.am       |    2 +-
 src/report/stylesheets/Makefile.am                 |    2 +-
 src/report/stylesheets/test/Makefile.am            |    2 +-
 src/report/utility-reports/Makefile.am             |    2 +-
 src/report/utility-reports/test/Makefile.am        |    2 +-
 src/scm/Makefile.am                                |    2 +-
 src/tax/us/Makefile.am                             |    2 +-
 src/tax/us/test/Makefile.am                        |    2 +-
 src/test-core/Makefile.am                          |    2 +-
 util/guile.c                                       |   71 +
 58 files changed, 3400 insertions(+), 796 deletions(-)
 delete mode 100644 intl-scm/Makefile.am
 delete mode 100644 intl-scm/xgettext.scm
 delete mode 100644 src/engine/iso-4217-currencies.scm
 create mode 100644 src/engine/iso-4217-currencies.xml
 delete mode 100755 src/engine/iso-currencies-to-c.in
 copy src/{gnome-utils/make-gnc-warnings-c.xsl => engine/iso-currencies-to-c.xsl} (62%)
 delete mode 100755 src/gnc-test-env.in
 create mode 100755 src/gnc-test-env.pl
 create mode 100644 util/guile.c



More information about the gnucash-changes mailing list