From d5da59331fe1454265b12787722c9d41c33e7586 Mon Sep 17 00:00:00 2001 From: Geert Janssens Date: Sat, 24 Jan 2015 16:10:58 +0100 Subject: [PATCH 01/11] 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. --- configure.ac | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 14e8443afe..657dcf193d 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([ From 2494bfc63fe1374cae1ffd2a8492245c6a30bc57 Mon Sep 17 00:00:00 2001 From: Geert Janssens Date: Sat, 24 Jan 2015 17:33:39 +0100 Subject: [PATCH 02/11] Bug 742624 - [patch] Scheduled Transaction Editor results in immediate segfault --- src/gnome-utils/gnc-dense-cal.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/gnome-utils/gnc-dense-cal.c b/src/gnome-utils/gnc-dense-cal.c index 3b70255597..8f2e047ed8 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"); } From 564b9874575bb689974caca91a6737c8b12ef9cb Mon Sep 17 00:00:00 2001 From: Mike Evans Date: Sun, 25 Jan 2015 11:08:05 +0000 Subject: [PATCH 03/11] 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. --- src/plugins/bi_import/dialog-bi-import.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/plugins/bi_import/dialog-bi-import.c b/src/plugins/bi_import/dialog-bi-import.c index 05ef930e2a..3c2a8b00fa 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)); From 5e60a234006ef68a517af0204d92f96ebe2f5de6 Mon Sep 17 00:00:00 2001 From: Mike Evans Date: Sun, 25 Jan 2015 11:14:53 +0000 Subject: [PATCH 04/11] 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. --- src/import-export/csv-imp/gnc-csv-model.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/import-export/csv-imp/gnc-csv-model.c b/src/import-export/csv-imp/gnc-csv-model.c index b892b55ae9..877529aec4 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(®ex, "[0-9]", 0); + reti = regexec(®ex, str_dupe, 0, NULL, 0); + if (reti == REG_NOMATCH) + { g_free (str_dupe); str_dupe = g_strdup ("0"); } From 0ff9eba94f0d273ec11e4e19da42019bdc6cc802 Mon Sep 17 00:00:00 2001 From: Geert Janssens Date: Wed, 28 Jan 2015 17:00:21 +0100 Subject: [PATCH 05/11] 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). --- src/engine/gncEntry.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/engine/gncEntry.c b/src/engine/gncEntry.c index f4c17863f5..72458290ed 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. From 7581436e794db23b6bcea41683fefe4c6d3a2841 Mon Sep 17 00:00:00 2001 From: Geert Janssens Date: Thu, 29 Jan 2015 17:55:23 +0100 Subject: [PATCH 06/11] Bug 743609 - Add configure options to disable libsecret detection --- configure.ac | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/configure.ac b/configure.ac index 657dcf193d..073e8aeeea 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 + ### ---------------------------------------------------------------------- From 87520cdde4bd85731a8f82393be90b316ffefa05 Mon Sep 17 00:00:00 2001 From: Geert Janssens Date: Thu, 29 Jan 2015 21:07:07 +0100 Subject: [PATCH 07/11] Switch from guile to xml to manage our iso-currencies source file --- configure.ac | 1 - src/engine/Makefile.am | 16 +- src/engine/iso-4217-currencies.scm | 253 --- src/engine/iso-4217-currencies.xml | 3009 ++++++++++++++++++++++++++++ src/engine/iso-currencies-to-c.in | 99 - src/engine/iso-currencies-to-c.xsl | 58 + 6 files changed, 3073 insertions(+), 363 deletions(-) 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 create mode 100644 src/engine/iso-currencies-to-c.xsl diff --git a/configure.ac b/configure.ac index 073e8aeeea..444d7faca8 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 150e09a9c7..edccd18687 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 616a9e0221..0000000000 --- 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 0000000000..9a9a263f4c --- /dev/null +++ b/src/engine/iso-4217-currencies.xml @@ -0,0 +1,3009 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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 e8dd400303..0000000000 --- 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 0000000000..defeafab1d --- /dev/null +++ b/src/engine/iso-currencies-to-c.xsl @@ -0,0 +1,58 @@ + + + + + +/********************************************************************\ + * 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@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@gnu.org * + * * +\********************************************************************/ + + + { + const char *fullname = ""; + gnc_commodity *c = gnc_commodity_new(book, + CUR_I18N(fullname), + "", + "", + "", + ); + 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, ""); + } + + + From 48b30271e0427dde058a475849869454fcf4e851 Mon Sep 17 00:00:00 2001 From: Geert Janssens Date: Fri, 30 Jan 2015 11:49:41 +0100 Subject: [PATCH 08/11] Rewrite gnc-test-env in perl This eliminates another guile dependency in the build chain Conflicts: src/backend/dbi/test/Makefile.am --- configure.ac | 1 - 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 | 2 +- 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/test/Makefile.am | 2 +- src/import-export/qif-imp/Makefile.am | 2 +- src/import-export/qif/test/Makefile.am | 2 +- src/import-export/test/Makefile.am | 2 +- .../python-bindings/tests/Makefile.am | 2 +- 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 +- .../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 +- 42 files changed, 100 insertions(+), 181 deletions(-) delete mode 100755 src/gnc-test-env.in create mode 100755 src/gnc-test-env.pl diff --git a/configure.ac b/configure.ac index 444d7faca8..015fc8998a 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 acc4ac556f..ab000a3c9a 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 a899cecf76..026a6e1cb0 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 8510dffb34..9304048ca5 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 b10fa9f040..8c5332c9cb 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 44246496d5..c914a41cfa 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 0575f90936..d3993533d2 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 cb8e7696e4..99fdb7a618 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 4eeb61ae1a..13dabace97 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 144b8b9ea1..4b7ce8691a 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 e104597070..f1f6d1b63b 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 edccd18687..fc6e8195a1 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 2a1ce64b5a..98d7d242a9 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 71f0048c74..def401621c 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 e4f2c8b4c3..843a5d890f 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 596dd3affc..0000000000 --- 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 0000000000..14408313ac --- /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 b46ed7a8c0..b0e873f10b 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 d3383c7bd6..02ea939234 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 2ea474b7ab..242d5f4d79 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 bd5e7c0fd4..13bdda2d2a 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 5363e8adf2..420b66b76c 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 d828941c06..13a23f45d4 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 @...@. This prevents autoconf diff --git a/src/register/register-core/test/Makefile.am b/src/register/register-core/test/Makefile.am index f7e6ecf61a..fe485bc0ee 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 12d4b1b7ee..b21e628935 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 8ea9dfed1f..225f9e5a47 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 fe0e87fd7f..187e3e54d5 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 fd998db4ec..712490ed09 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 0e7a566bf9..8a8e33c63c 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 d713f76c5d..5c03452a31 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 d1539f8582..c464ee0290 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 1df692ff37..a01900e7f0 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 a39c2e71f2..917d40111d 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 c0bbe49fee..6f89e4d98e 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 c0fcf76393..9ea430041e 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 092b7be390..32115923e5 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 6204ea44e3..15edc5d4aa 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 e4bfad498f..ec5e2324c7 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 ea07c85a6b..e45fd59964 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 66451d5fa2..1d1a02dfde 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 7330674ca7..bab6a0e154 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 cfa7f6dfa2..0bc589a0d7 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 From c312b865d19aeaa7688bff37ae5d07c641481efd Mon Sep 17 00:00:00 2001 From: Geert Janssens Date: Tue, 31 May 2011 15:03:09 +0200 Subject: [PATCH 09/11] Bug 619899 - Use normal gettext or intltool toolchain also for scm files --- .gitignore | 1 - Makefile.am | 6 +- configure.ac | 1 - intl-scm/Makefile.am | 22 ------- intl-scm/xgettext.scm | 75 ----------------------- make-gnucash-potfiles.in | 3 +- po/POTFILES.in | 126 ++++++++++++++++++++++++++++++++++++++- po/POTFILES.skip | 80 +------------------------ 8 files changed, 131 insertions(+), 183 deletions(-) delete mode 100644 intl-scm/Makefile.am delete mode 100644 intl-scm/xgettext.scm diff --git a/.gitignore b/.gitignore index 11c67282fc..a7551c8a34 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 8c1a3b0cdd..432800fb4f 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 015fc8998a..dd504a634f 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 b6772ac288..0000000000 --- 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 8e70cce30e..0000000000 --- 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 65ce1cab87..c370cb9e4e 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 fcb1a5ad67..672be03f7e 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 a3d3331af2..f16640cdef 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 From b3781c16d0d84be66bdd4b4a507ca5803f394f57 Mon Sep 17 00:00:00 2001 From: John Ralls Date: Thu, 29 Jan 2015 13:39:23 -0800 Subject: [PATCH 10/11] 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. --- Makefile.am | 5 ++++ configure.ac | 31 ++++++----------------- util/guile.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 84 insertions(+), 23 deletions(-) create mode 100644 util/guile.c diff --git a/Makefile.am b/Makefile.am index 432800fb4f..443be45de1 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 dd504a634f..e09df33b9c 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 0000000000..3e01b57d23 --- /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 +#endif + +#ifdef __MINGW32__ +# define SCM_IMPORT 1 +#endif +#include + +#ifdef HAVE_CONFIG_H +#include +#endif +#include + +#ifdef HAVE_WINSOCK2_H +#include +#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: +*/ From 785c6d621bf93f4970a167295650777d386d6dbb Mon Sep 17 00:00:00 2001 From: Geert Janssens Date: Sat, 31 Jan 2015 14:33:33 +0100 Subject: [PATCH 11/11] 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 --- configure.ac | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/configure.ac b/configure.ac index e09df33b9c..743419bd7e 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) #