From 87520cdde4bd85731a8f82393be90b316ffefa05 Mon Sep 17 00:00:00 2001 From: Geert Janssens Date: Thu, 29 Jan 2015 21:07:07 +0100 Subject: [PATCH] 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, ""); + } + + +