gnucash master: Multiple changes pushed

Geert Janssens gjanssens at code.gnucash.org
Thu Mar 10 10:08:04 EST 2016


Updated	 via  https://github.com/Gnucash/gnucash/commit/175d404a (commit)
	 via  https://github.com/Gnucash/gnucash/commit/71574b7d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/7003a561 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/18065151 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/712d340b (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b89723a5 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e4e19a4c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/cb88fe8f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/97b7c265 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/40c543ef (commit)
	 via  https://github.com/Gnucash/gnucash/commit/acdd5d02 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/26de1385 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/05da881f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/029a6653 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/00c72830 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6e50516c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/17033c64 (commit)
	from  https://github.com/Gnucash/gnucash/commit/0031478d (commit)



commit 175d404a1b986aecb77db5e2882b152cbc1d06a9
Merge: 0031478 71574b7
Author: Geert Janssens <janssens-geert at telenet.be>
Date:   Thu Mar 10 15:52:02 2016 +0100

    Merge branch 'maint'
    
    Resolved conflicts:
    	src/core-utils/gnc-features.c
    	src/core-utils/gnc-features.h
    	src/engine/test/CMakeLists.txt
    	src/gnc-module/test/test-dynload.c
    	src/import-export/import-match-map.c

diff --cc src/backend/dbi/test/CMakeLists.txt
index c471030,0871be6..3445d5d
--- a/src/backend/dbi/test/CMakeLists.txt
+++ b/src/backend/dbi/test/CMakeLists.txt
@@@ -14,18 -14,21 +14,21 @@@ SET(BACKEND_DBI_TEST_INCLUDE_DIR
  SET(BACKEND_DBI_TEST_LIBS gnc-backend-sql gncmod-engine gncmod-test-engine gnc-qof test-core ${LIBDBI_LIBRARY})
  
  SET(test_dbi_backend_SOURCES
 -  test-backend-dbi.c
 -  test-backend-dbi-basic.c
 -  test-dbi-business-stuff.c
 -  test-dbi-stuff.c
 +  test-backend-dbi.cpp
 +  test-backend-dbi-basic.cpp
 +  test-dbi-business-stuff.cpp
 +  test-dbi-stuff.cpp
  )
  
- GNC_ADD_TEST(test-backend-dbi "${test_dbi_backend_SOURCES}"
-   BACKEND_DBI_TEST_INCLUDE_DIRS BACKEND_DBI_TEST_LIBS
- )
+ # This test does not work on Win32
+ IF (NOT WIN32)
+   GNC_ADD_TEST(test-backend-dbi "${test_dbi_backend_SOURCES}"
+     BACKEND_DBI_TEST_INCLUDE_DIRS BACKEND_DBI_TEST_LIBS
+   )
  
- TARGET_COMPILE_DEFINITIONS(test-backend-dbi PRIVATE
-   TEST_MYSQL_URL=\"${TEST_MYSQL_URL}\"
-   TEST_PGSQL_URL=\"${TEST_PGSQL_URL}\"
-   DBI_TEST_XML_FILENAME=\"${CMAKE_CURRENT_SOURCE_DIR}/test-dbi.xml\"
- )
+   TARGET_COMPILE_DEFINITIONS(test-backend-dbi PRIVATE
+     TEST_MYSQL_URL=\"${TEST_MYSQL_URL}\"
+     TEST_PGSQL_URL=\"${TEST_PGSQL_URL}\"
+     DBI_TEST_XML_FILENAME=\"${CMAKE_CURRENT_SOURCE_DIR}/test-dbi.xml\"
+   )
+ ENDIF()
diff --cc src/core-utils/gnc-features.c
index cfb9314,e1f5ae9..9189862
--- a/src/core-utils/gnc-features.c
+++ b/src/core-utils/gnc-features.c
@@@ -44,7 -44,7 +44,8 @@@ static gncFeature known_features[] 
      { GNC_FEATURE_CREDIT_NOTES, "Customer and vendor credit notes (requires at least GnuCash 2.5.0)" },
      { GNC_FEATURE_NUM_FIELD_SOURCE, "User specifies source of 'num' field'; either transaction number or split action (requires at least GnuCash 2.5.0)" },
      { GNC_FEATURE_KVP_EXTRA_DATA, "Extra data for addresses, jobs or invoice entries (requires at least GnuCash 2.6.4)" },
 +    { GNC_FEATURE_BOOK_CURRENCY, "User specifies a 'book-currency'; costs of other currencies/commodities tracked in terms of book-currency (requires at least GnuCash 2.7.0)" },
+     { GNC_FEATURE_GUID_BAYESIAN, "Use account GUID as key for Bayesian data (requires at least GnuCash 2.6.12)" },
      { NULL },
  };
  
diff --cc src/core-utils/gnc-features.h
index a4ada74,ba691c7..88c860d
--- a/src/core-utils/gnc-features.h
+++ b/src/core-utils/gnc-features.h
@@@ -44,7 -44,7 +44,8 @@@
  #define GNC_FEATURE_CREDIT_NOTES "Credit Notes"
  #define GNC_FEATURE_NUM_FIELD_SOURCE "Number Field Source"
  #define GNC_FEATURE_KVP_EXTRA_DATA "Extra data in addresses, jobs or invoice entries"
 +#define GNC_FEATURE_BOOK_CURRENCY "Use a Book-Currency"
+ #define GNC_FEATURE_GUID_BAYESIAN "Account GUID based Bayesian data"
  
  /** @} */
  
diff --cc src/engine/test/CMakeLists.txt
index bc13862,d5be7e6..c7682dd
--- a/src/engine/test/CMakeLists.txt
+++ b/src/engine/test/CMakeLists.txt
@@@ -38,23 -38,24 +38,26 @@@ SET(test_engine_SOURCE
    utest-Budget.c
    utest-Entry.c
    utest-Invoice.c
 -  utest-Split.c
 -  utest-Transaction.c
 +  utest-Split.cpp
 +  utest-Transaction.cpp
 +  test-engine-kvp-properties.c
 +  utest-gnc-pricedb.c
  )
  
- ADD_ENGINE_TEST(test-engine "${test_engine_SOURCES}")
- TARGET_COMPILE_OPTIONS(test-engine PRIVATE -Wno-write-strings)
+ # This test does not run on Win32
+ IF (NOT WIN32)
+   ADD_ENGINE_TEST(test-engine "${test_engine_SOURCES}")
+   TARGET_COMPILE_OPTIONS(test-engine PRIVATE -Wno-write-strings)
+ ENDIF()
  
 -ADD_ENGINE_TEST(test-account-object test-account-object.c)
 -ADD_ENGINE_TEST(test-group-vs-book test-group-vs-book.c)
 -ADD_ENGINE_TEST(test-lots test-lots.c)
 +ADD_ENGINE_TEST(test-account-object test-account-object.cpp)
 +ADD_ENGINE_TEST(test-group-vs-book test-group-vs-book.cpp)
 +ADD_ENGINE_TEST(test-lots test-lots.cpp)
  ADD_ENGINE_TEST(test-querynew test-querynew.c)
 -ADD_ENGINE_TEST(test-query test-query.c)
 -ADD_ENGINE_TEST(test-split-vs-account test-split-vs-account.c)
 -ADD_ENGINE_TEST(test-transaction-reversal test-transaction-reversal.c)
 -ADD_ENGINE_TEST(test-transaction-voiding test-transaction-voiding.c)
 +ADD_ENGINE_TEST(test-query test-query.cpp)
 +ADD_ENGINE_TEST(test-split-vs-account test-split-vs-account.cpp)
 +ADD_ENGINE_TEST(test-transaction-reversal test-transaction-reversal.cpp)
 +ADD_ENGINE_TEST(test-transaction-voiding test-transaction-voiding.cpp)
  ADD_ENGINE_TEST(test-recurrence test-recurrence.c)
  ADD_ENGINE_TEST(test-business test-business.c)
  ADD_ENGINE_TEST(test-address test-address.c)
@@@ -65,7 -66,8 +68,8 @@@ ADD_ENGINE_TEST(test-vendor test-vendor
  
  ############################
  # This is a C test that needs GUILE environment variables set.
+ # It does not pass on Win32.
 -GNC_ADD_TEST_WITH_GUILE(test-scm-query test-scm-query.c ENGINE_TEST_INCLUDE_DIRS ENGINE_TEST_LIBS)
 +GNC_ADD_TEST_WITH_GUILE(test-scm-query test-scm-query.cpp ENGINE_TEST_INCLUDE_DIRS ENGINE_TEST_LIBS)
  ############################
  
  GNC_ADD_SCHEME_TEST(scm-test-account test-account.scm)
diff --cc src/gnc-module/test/test-dynload.c
index 3fb4919,fe2718b..3185341
--- a/src/gnc-module/test/test-dynload.c
+++ b/src/gnc-module/test/test-dynload.c
@@@ -53,8 -53,15 +53,15 @@@ guile_main(void *closure, int argc, cha
      g_test_message("  test-dynload.c: testing dynamic linking of libgnc-module ...");
  #ifdef G_OS_WIN32
  /* MinGW builds libgnc-module-0.dll */
-     modpath = g_module_build_path ("../.libs", "gnc-module-0");
+     if (libdir == NULL)
+     {
+         modpath = g_module_build_path ("../.libs", "gnc-module-0");
+     }
+     else
+     {
+         modpath = g_module_build_path (libdir, "gnc-module");
+     }
 -#elif defined(PLATFORM_OSX)
 +#elif defined(GNC_PLATFORM_OSX)
  /* We build libgnc-module as a shared library for testing, and on OSX
   * that means that g_module_build_path (), which uses ".so", doesn't
   * build the right path name.

commit 71574b7dde5a81ba0cbd917db5ee1eefd64b8516
Author: Geert Janssens <janssens-geert at telenet.be>
Date:   Thu Mar 10 15:30:56 2016 +0100

    Minor tweaks to Bayesian feature flag
    
    - use shorter definition
    - set correctly understood as of 2.6.12 instead of 2.7.0

diff --git a/src/core-utils/gnc-features.c b/src/core-utils/gnc-features.c
index feb7758..e1f5ae9 100644
--- a/src/core-utils/gnc-features.c
+++ b/src/core-utils/gnc-features.c
@@ -44,7 +44,7 @@ static gncFeature known_features[] =
     { GNC_FEATURE_CREDIT_NOTES, "Customer and vendor credit notes (requires at least GnuCash 2.5.0)" },
     { GNC_FEATURE_NUM_FIELD_SOURCE, "User specifies source of 'num' field'; either transaction number or split action (requires at least GnuCash 2.5.0)" },
     { GNC_FEATURE_KVP_EXTRA_DATA, "Extra data for addresses, jobs or invoice entries (requires at least GnuCash 2.6.4)" },
-    { GNC_FEATURE_CHANGE_BAYESIAN, "Change the way Bayesian data is saved to use the Account Guid (requires at least GnuCash 2.7.0)" },
+    { GNC_FEATURE_GUID_BAYESIAN, "Use account GUID as key for Bayesian data (requires at least GnuCash 2.6.12)" },
     { NULL },
 };
 
diff --git a/src/core-utils/gnc-features.h b/src/core-utils/gnc-features.h
index 8212544..ba691c7 100644
--- a/src/core-utils/gnc-features.h
+++ b/src/core-utils/gnc-features.h
@@ -44,7 +44,7 @@
 #define GNC_FEATURE_CREDIT_NOTES "Credit Notes"
 #define GNC_FEATURE_NUM_FIELD_SOURCE "Number Field Source"
 #define GNC_FEATURE_KVP_EXTRA_DATA "Extra data in addresses, jobs or invoice entries"
-#define GNC_FEATURE_CHANGE_BAYESIAN "Change the way Bayesian data is saved to use Guid"
+#define GNC_FEATURE_GUID_BAYESIAN "Account GUID based Bayesian data"
 
 /** @} */
 

commit 7003a561712d104e6b72dc5be2c6bdaff0ff20a7
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Thu Mar 10 12:08:40 2016 +0100

    Make gnucash 2.7+ rerun bayesian data conversion whenever needed
    
    Whenever recent 2.6.x versions of gnucash store bayesian data
    in the old format (full account name based), gnucash 2.7+
    should perform a conversion the the new format (guid based)
    on subsequent opening of the file.

diff --git a/src/import-export/import-match-map.c b/src/import-export/import-match-map.c
index 19b1222..4a66e96 100644
--- a/src/import-export/import-match-map.c
+++ b/src/import-export/import-match-map.c
@@ -558,8 +558,17 @@ void gnc_imap_add_account_bayes(GncImportMatchMap *imap, GList *tokens, Account
          * /imap->frame/IMAP_FRAME/token_string/account_fullname or guid
          */
         if (use_fullname == TRUE)
+        {
+            KvpFrame  *book_frame = qof_book_get_slots (imap->book);
+            const gchar *book_path = "changed-bayesian-to-guid";
+
             kvp_frame_set_slot_path(imap->frame, new_value, IMAP_FRAME_BAYES,
                                     (char*)current_token->data, account_fullname, NULL);
+
+            /* Reset the run once kvp flag for versions 2.7.0 and later */
+            if (kvp_frame_get_string(book_frame, book_path) != NULL)
+                kvp_frame_set_string(book_frame, book_path, "false");
+        }
         else
             kvp_frame_set_slot_path(imap->frame, new_value, IMAP_FRAME_BAYES,
                                     (char*)current_token->data, guid_string, NULL);

commit 18065151223a7a932b7e7831c6d7ab209b78dce7
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Sat Feb 20 13:15:56 2016 +0000

    Allow matching accounts to be found also by their GUID
    which will be used in newer versions. The
    default behaviour is still to create new entries
    under the account fullname.

diff --git a/src/import-export/import-match-map.c b/src/import-export/import-match-map.c
index 558800d..19b1222 100644
--- a/src/import-export/import-match-map.c
+++ b/src/import-export/import-match-map.c
@@ -447,14 +447,31 @@ Account* gnc_imap_find_account_bayes(GncImportMatchMap *imap, GList *tokens)
     /* has this probability met our threshold? */
     if (account_i.probability >= threshold)
     {
-        PINFO("found match");
-        LEAVE(" ");
-        return gnc_account_lookup_by_full_name(gnc_book_get_root_account(imap->book),
+        Account *account = NULL;
+        PINFO("Probability has met threshold");
+
+        account = gnc_account_lookup_by_full_name(gnc_book_get_root_account(imap->book),
                                                account_i.account_name);
-    }
 
-    PINFO("no match");
-    LEAVE(" ");
+        if (account == NULL) // Possibly we have a Guid or account not found
+        {
+            GncGUID *guid = g_new (GncGUID, 1);
+
+            if (string_to_guid (account_i.account_name, guid))
+                account = xaccAccountLookup (guid, imap->book);
+
+            g_free (guid);
+        }
+
+        if (account != NULL)
+            LEAVE("Return account is '%s'", xaccAccountGetName (account));
+        else
+            LEAVE("Return NULL, account for string '%s' can not be found", account_i.account_name);
+
+        return account;
+    }
+    PINFO("Probability has not met threshold");
+    LEAVE("Return NULL");
 
     return NULL; /* we didn't meet our threshold, return NULL for an account */
 }
@@ -468,6 +485,8 @@ void gnc_imap_add_account_bayes(GncImportMatchMap *imap, GList *tokens, Account
     gint64 token_count;
     char* account_fullname;
     kvp_value *new_value; /* the value that will be added back into the kvp tree */
+    const gchar *guid_string;
+    gboolean use_fullname = TRUE;
 
     ENTER(" ");
 
@@ -484,6 +503,8 @@ void gnc_imap_add_account_bayes(GncImportMatchMap *imap, GList *tokens, Account
 
     PINFO("account name: '%s'\n", account_fullname);
 
+    guid_string = guid_to_string (xaccAccountGetGUID (acc));
+
     /* process each token in the list */
     for (current_token = g_list_first(tokens); current_token;
             current_token = current_token->next)
@@ -500,11 +521,20 @@ void gnc_imap_add_account_bayes(GncImportMatchMap *imap, GList *tokens, Account
 
         PINFO("adding token '%s'\n", (char*)current_token->data);
 
-        /* is this token/account_name already in the kvp tree? */
+        /* is this token/account_name already in the kvp tree under fullname? */
         value = kvp_frame_get_slot_path(imap->frame, IMAP_FRAME_BAYES,
                                         (char*)current_token->data, account_fullname,
                                         NULL);
 
+        if (!value) // we have not found entry under the fullname, maybe guid
+        {
+            value = kvp_frame_get_slot_path(imap->frame, IMAP_FRAME_BAYES,
+                                            (char*)current_token->data, guid_string,
+                                            NULL);
+            if (value)
+                use_fullname = FALSE;
+        }
+
         /* if the token/account is already in the tree, read the current
          * value from the tree and use this for the basis of the value we
          * are putting back
@@ -525,10 +555,14 @@ void gnc_imap_add_account_bayes(GncImportMatchMap *imap, GList *tokens, Account
         new_value = kvp_value_new_gint64(token_count);
 
         /* insert the value into the kvp tree at
-         * /imap->frame/IMAP_FRAME/token_string/account_name_string
+         * /imap->frame/IMAP_FRAME/token_string/account_fullname or guid
          */
-        kvp_frame_set_slot_path(imap->frame, new_value, IMAP_FRAME_BAYES,
-                                (char*)current_token->data, account_fullname, NULL);
+        if (use_fullname == TRUE)
+            kvp_frame_set_slot_path(imap->frame, new_value, IMAP_FRAME_BAYES,
+                                    (char*)current_token->data, account_fullname, NULL);
+        else
+            kvp_frame_set_slot_path(imap->frame, new_value, IMAP_FRAME_BAYES,
+                                    (char*)current_token->data, guid_string, NULL);
         /* kvp_frame_set_slot_path() copied the value so we
          * need to delete this one ;-) */
         kvp_value_delete(new_value);

commit 712d340bf4d7898605e6fb8e6a4a9b52c0372410
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Thu Mar 10 12:05:16 2016 +0100

    Introduce GUID_BAYES feature flag
    
    This will be set by future versions of gnucash (2.7+) when
    they save bayesian data using GUID's instead of full
    account names. The flag will prevent older versions
    (2.6.11 and older) from opening data files with such data.

diff --git a/src/core-utils/gnc-features.c b/src/core-utils/gnc-features.c
index 0336fe2..feb7758 100644
--- a/src/core-utils/gnc-features.c
+++ b/src/core-utils/gnc-features.c
@@ -44,6 +44,7 @@ static gncFeature known_features[] =
     { GNC_FEATURE_CREDIT_NOTES, "Customer and vendor credit notes (requires at least GnuCash 2.5.0)" },
     { GNC_FEATURE_NUM_FIELD_SOURCE, "User specifies source of 'num' field'; either transaction number or split action (requires at least GnuCash 2.5.0)" },
     { GNC_FEATURE_KVP_EXTRA_DATA, "Extra data for addresses, jobs or invoice entries (requires at least GnuCash 2.6.4)" },
+    { GNC_FEATURE_CHANGE_BAYESIAN, "Change the way Bayesian data is saved to use the Account Guid (requires at least GnuCash 2.7.0)" },
     { NULL },
 };
 
diff --git a/src/core-utils/gnc-features.h b/src/core-utils/gnc-features.h
index 7b64ca6..8212544 100644
--- a/src/core-utils/gnc-features.h
+++ b/src/core-utils/gnc-features.h
@@ -44,6 +44,7 @@
 #define GNC_FEATURE_CREDIT_NOTES "Credit Notes"
 #define GNC_FEATURE_NUM_FIELD_SOURCE "Number Field Source"
 #define GNC_FEATURE_KVP_EXTRA_DATA "Extra data in addresses, jobs or invoice entries"
+#define GNC_FEATURE_CHANGE_BAYESIAN "Change the way Bayesian data is saved to use Guid"
 
 /** @} */
 

commit b89723a561d3c5efdee13eeca35bc6132d89eee8
Author: Mike Evans <mikee at saxicola.co.uk>
Date:   Thu Mar 3 12:13:36 2016 +0000

    Bug 762971 - Duplicating multiple invoices results in invoices without an ID number
    
    If a duplicated invoice doesn't have an ID (which it won't if multiple invoices are
    duplicated) allocate it (them) the next ID.

diff --git a/src/business/business-gnome/dialog-invoice.c b/src/business/business-gnome/dialog-invoice.c
index 8bf4448..c5b2b6e 100644
--- a/src/business/business-gnome/dialog-invoice.c
+++ b/src/business/business-gnome/dialog-invoice.c
@@ -2695,7 +2695,7 @@ set_gncEntry_date(gpointer data, gpointer user_data)
 
 InvoiceWindow * gnc_ui_invoice_duplicate (GncInvoice *old_invoice, gboolean open_properties, const GDate *new_date)
 {
-    InvoiceWindow *iw;
+    InvoiceWindow *iw = NULL;
     GncInvoice *new_invoice = NULL;
     GDate new_date_gdate;
 
@@ -2746,10 +2746,14 @@ InvoiceWindow * gnc_ui_invoice_duplicate (GncInvoice *old_invoice, gboolean open
     }
     else
     {
-        // Open the newly created invoice in the "edit" window
+         // Open the newly created invoice in the "edit" window
         iw = gnc_ui_invoice_edit (new_invoice);
+        // Check the ID; set one if necessary
+        if (g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (iw->id_entry)), "") == 0)
+        {
+            gncInvoiceSetID (new_invoice, gncInvoiceNextID(iw->book, &(iw->owner)));
+        }
     }
-
     return iw;
 }
 

commit e4e19a4caa2b9a5673ab227022cb193026a5c301
Author: Mike Evans <mikee at saxicola.co.uk>
Date:   Wed Mar 2 09:23:10 2016 +0000

    Bug - 761172 Importing invoices posts incorrect values.
    
    This looks a rounding error caused by not setting the denominator to an
    appropirate value. I've set it to 100x the currency fraction.
    
    For some reason I removed the call to gnc_numeric_convert() in commit
    564b9874575 I shouldn't have done that. I should have adjusted the denom.

diff --git a/src/plugins/bi_import/dialog-bi-import.c b/src/plugins/bi_import/dialog-bi-import.c
index f9eb832..c872f30 100644
--- a/src/plugins/bi_import/dialog-bi-import.c
+++ b/src/plugins/bi_import/dialog-bi-import.c
@@ -716,8 +716,11 @@ gnc_bi_import_create_bis (GtkListStore * store, QofBook * book,
         notes = un_escape(notes);
         gncEntrySetDescription (entry, desc);
         gncEntrySetAction (entry, action);
-        value = gnc_numeric_zero();
+        value = gnc_numeric_zero(); 
         gnc_exp_parser_parse (quantity, &value, NULL);
+        // Need to set the denom appropriately else we get stupid rounding errors.
+        value = gnc_numeric_convert (value, denom * 100, GNC_HOW_RND_NEVER);
+        //DEBUG("qty = %s",gnc_num_dbg_to_string(value));
         gncEntrySetQuantity (entry, value);
         acc = gnc_account_lookup_for_register (gnc_get_current_root_account (),
                                                account);
@@ -727,6 +730,7 @@ gnc_bi_import_create_bis (GtkListStore * store, QofBook * book,
             gncEntrySetBillAccount (entry, acc);
             value = gnc_numeric_zero();
             gnc_exp_parser_parse (price, &value, NULL);
+            value = gnc_numeric_convert (value, denom * 100, GNC_HOW_RND_NEVER);
             gncEntrySetBillPrice (entry, value);
             gncEntrySetBillTaxable (entry, text2bool (taxable));
             gncEntrySetBillTaxIncluded (entry, text2bool (taxincluded));
@@ -740,12 +744,15 @@ gnc_bi_import_create_bis (GtkListStore * store, QofBook * book,
             gncEntrySetInvAccount (entry, acc);
             value = gnc_numeric_zero();
             gnc_exp_parser_parse (price, &value, NULL);
+            value = gnc_numeric_convert (value, denom * 100, GNC_HOW_RND_NEVER);
+            //DEBUG("price = %s",gnc_num_dbg_to_string(value));
             gncEntrySetInvPrice (entry, value);
             gncEntrySetInvTaxable (entry, text2bool (taxable));
             gncEntrySetInvTaxIncluded (entry, text2bool (taxincluded));
             gncEntrySetInvTaxTable (entry, gncTaxTableLookupByName (book, tax_table));
             value = gnc_numeric_zero();
             gnc_exp_parser_parse (discount, &value, NULL);
+            value = gnc_numeric_convert (value, denom * 100, GNC_HOW_RND_NEVER);
             gncEntrySetInvDiscount (entry, value);
             gncEntrySetInvDiscountType (entry, text2disc_type (disc_type));
             gncEntrySetInvDiscountHow (entry, text2disc_how (disc_how));

commit cb88fe8f93bffa661c17e9edda3b7fde3d019602
Author: Phil Longstaff <phil.longstaff at yahoo.ca>
Date:   Sun Feb 28 07:42:37 2016 -0500

    Memory leak in gnc-gsettings.c

diff --git a/src/app-utils/gnc-gsettings.c b/src/app-utils/gnc-gsettings.c
index c40e147..b663a2c 100644
--- a/src/app-utils/gnc-gsettings.c
+++ b/src/app-utils/gnc-gsettings.c
@@ -95,7 +95,7 @@ static GSettings * gnc_gsettings_get_schema_ptr (const gchar *schema_str)
 
     ENTER("");
     if (!schema_hash)
-        schema_hash = g_hash_table_new (g_str_hash, g_str_equal);
+        schema_hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
 
     gset = g_hash_table_lookup (schema_hash, full_name);
     DEBUG ("Looking for schema %s returned gsettings %p", full_name, gset);
@@ -108,8 +108,10 @@ static GSettings * gnc_gsettings_get_schema_ptr (const gchar *schema_str)
         else
             PWARN ("Ignoring attempt to access unknown gsettings schema %s", full_name);
     }
-
-    g_free(full_name);
+    else
+    {
+        g_free(full_name);
+    }
 
     LEAVE("");
     return gset;

commit 97b7c26570092d8651f7ea391029ab88fc2cee26
Author: Phil Longstaff <phil.longstaff at yahoo.ca>
Date:   Sun Feb 28 07:31:03 2016 -0500

    Close some more memory leaks

diff --git a/src/app-utils/gnc-state.c b/src/app-utils/gnc-state.c
index 2896717..30edce9 100644
--- a/src/app-utils/gnc-state.c
+++ b/src/app-utils/gnc-state.c
@@ -147,7 +147,7 @@ gnc_state_set_base (const QofSession *session)
             {
                 DEBUG ("Trying old state file names for compatibility");
                 i = 1;
-                g_free ( sf_extension);
+                g_free (sf_extension);
                 sf_extension = g_strdup ("");
 
                 /* Regardless of whether or not an old state file is found,
@@ -190,6 +190,7 @@ gnc_state_set_base (const QofSession *session)
     }
 
     DEBUG("Clean up");
+    g_free(sf_extension);
     g_free(original);
     g_key_file_free (key_file);
 
diff --git a/src/core-utils/gnc-filepath-utils.c b/src/core-utils/gnc-filepath-utils.c
index edf2cc5..9019c75 100644
--- a/src/core-utils/gnc-filepath-utils.c
+++ b/src/core-utils/gnc-filepath-utils.c
@@ -457,8 +457,8 @@ gnc_dotgnucash_dir (void)
     if (!gnc_validate_directory(tmp_dir, TRUE, &errmsg))
         exit(1);
     g_free(tmp_dir);
-    tmp_dir = g_build_filename(tmp_dir, "translog", (gchar *)NULL);
-    if (!gnc_validate_directory(dotgnucash, TRUE, &errmsg))
+    tmp_dir = g_build_filename(dotgnucash, "translog", (gchar *)NULL);
+    if (!gnc_validate_directory(tmp_dir, TRUE, &errmsg))
         exit(1);
     g_free(tmp_dir);
 
diff --git a/src/gnome-utils/gnc-plugin-menu-additions.c b/src/gnome-utils/gnc-plugin-menu-additions.c
index 89c12b2..21a6d7f 100644
--- a/src/gnome-utils/gnc-plugin-menu-additions.c
+++ b/src/gnome-utils/gnc-plugin-menu-additions.c
@@ -325,6 +325,7 @@ gnc_menu_additions_assign_accel (ExtensionInfo *info, GHashTable *table)
     const gchar *ptr;
     gunichar uni;
     gint len;
+    gboolean map_allocated = FALSE;
 
     ENTER("Checking %s/%s [%s]", info->path, info->ae.label, info->ae.name);
     if (info->accel_assigned)
@@ -336,7 +337,10 @@ gnc_menu_additions_assign_accel (ExtensionInfo *info, GHashTable *table)
     /* Get map of used keys */
     map = g_hash_table_lookup(table, info->path);
     if (map == NULL)
+    {
         map = g_strdup("");
+        map_allocated = TRUE;
+    }
     DEBUG("map '%s', path %s", map, info->path);
 
     for (ptr = info->ae.label; *ptr; ptr = g_utf8_next_char(ptr))
@@ -356,6 +360,10 @@ gnc_menu_additions_assign_accel (ExtensionInfo *info, GHashTable *table)
     {
         /* Ran out of characters. Nothing to do. */
         info->accel_assigned = TRUE;
+        if (map_allocated)
+        {
+            g_free(map);
+        }
         LEAVE("All characters already assigned");
         return;
     }
@@ -375,6 +383,10 @@ gnc_menu_additions_assign_accel (ExtensionInfo *info, GHashTable *table)
     g_hash_table_replace(table, info->path, new_map);
 
     info->accel_assigned = TRUE;
+    if (map_allocated)
+    {
+        g_free(map);
+    }
     LEAVE("assigned");
 }
 

commit 40c543ef2166d0300121a0370343d4e2e9892c73
Author: Phil Longstaff <phil.longstaff at yahoo.ca>
Date:   Sun Feb 28 00:20:55 2016 -0500

    Close some memory leaks identified by valgrind.

diff --git a/src/app-utils/gnc-gsettings.c b/src/app-utils/gnc-gsettings.c
index 92672cd..c40e147 100644
--- a/src/app-utils/gnc-gsettings.c
+++ b/src/app-utils/gnc-gsettings.c
@@ -109,6 +109,8 @@ static GSettings * gnc_gsettings_get_schema_ptr (const gchar *schema_str)
             PWARN ("Ignoring attempt to access unknown gsettings schema %s", full_name);
     }
 
+    g_free(full_name);
+
     LEAVE("");
     return gset;
 }
diff --git a/src/core-utils/gnc-filepath-utils.c b/src/core-utils/gnc-filepath-utils.c
index 11d5ecf..edf2cc5 100644
--- a/src/core-utils/gnc-filepath-utils.c
+++ b/src/core-utils/gnc-filepath-utils.c
@@ -606,8 +606,10 @@ gnc_filepath_locate_pixmap (const gchar *name)
 {
     gchar *default_path;
     gchar *fullname;
+    gchar* pkgdatadir = gnc_path_get_pkgdatadir ();
 
-    default_path = g_build_filename (gnc_path_get_pkgdatadir (), "pixmaps", NULL);
+    default_path = g_build_filename (pkgdatadir, "pixmaps", NULL);
+    g_free(pkgdatadir);
     fullname = gnc_filepath_locate_file (default_path, name);
     g_free(default_path);
 
@@ -619,8 +621,10 @@ gnc_filepath_locate_ui_file (const gchar *name)
 {
     gchar *default_path;
     gchar *fullname;
+    gchar* pkgdatadir = gnc_path_get_pkgdatadir ();
 
-    default_path = g_build_filename (gnc_path_get_pkgdatadir (), "ui", NULL);
+    default_path = g_build_filename (pkgdatadir, "ui", NULL);
+    g_free(pkgdatadir);
     fullname = gnc_filepath_locate_file (default_path, name);
     g_free(default_path);
 
diff --git a/src/gnome-utils/gnc-tree-view.c b/src/gnome-utils/gnc-tree-view.c
index 6022d22..d63bc06 100644
--- a/src/gnome-utils/gnc-tree-view.c
+++ b/src/gnome-utils/gnc-tree-view.c
@@ -1059,6 +1059,7 @@ gnc_tree_view_set_state_section (GncTreeView *view,
                 g_free (column_name);
             }
         }
+        g_strfreev(keys);
     }
 
     /* Rebuild the column visibility menu */
diff --git a/src/gnome/gnc-plugin-page-budget.c b/src/gnome/gnc-plugin-page-budget.c
index f76f881..c23bdda 100644
--- a/src/gnome/gnc-plugin-page-budget.c
+++ b/src/gnome/gnc-plugin-page-budget.c
@@ -564,8 +564,10 @@ gnc_plugin_page_budget_recreate_page (GtkWidget *window, GKeyFile *key_file,
     }
     if (!string_to_guid(guid_str, &guid))
     {
+        g_free(guid_str);
         return NULL;
     }
+    g_free(guid_str);
 
     book = qof_session_get_book(gnc_get_current_session());
     bgt = gnc_budget_lookup(&guid, book);
diff --git a/src/gnome/gnc-split-reg2.c b/src/gnome/gnc-split-reg2.c
index a27bf2b..add4850 100644
--- a/src/gnome/gnc-split-reg2.c
+++ b/src/gnome/gnc-split-reg2.c
@@ -298,6 +298,7 @@ gsr2_create_table (GNCSplitReg2 *gsr)
 
     /* Restore the sort depth from saved state */
     model->sort_depth = g_key_file_get_integer (state_file, state_section, "sort_depth", NULL);
+    g_free(state_section);
 
     s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
     if (s_model)

commit acdd5d0208b67476671484707afdc96f25d97b87
Author: Geert Janssens <janssens-geert at telenet.be>
Date:   Mon Feb 22 16:39:47 2016 +0100

    Bug 744157 - Tip about subaccount is confusing

diff --git a/doc/tip_of_the_day.list.in b/doc/tip_of_the_day.list.in
index ec1dbba..99584a9 100644
--- a/doc/tip_of_the_day.list.in
+++ b/doc/tip_of_the_day.list.in
@@ -17,7 +17,8 @@ account details. For more information on choosing an account type \
 or setting up a chart of accounts, please see the GnuCash online \
 manual.")
 
- N_( "Click the right mouse button in the main window to bring up the \
+ N_( "Click the right mouse button (control-click in Mac OS X) in the \
+Accounts tab of the main window to bring up the \
 account menu options. Within each register, clicking the right \
 mouse button brings up the transaction menu options.")
 
@@ -43,8 +44,8 @@ of the parent account, followed by ':' and the first letter(s) of \
 the subaccount (e.g. A:C for Assets:Cash.)")
 
  N_( "Want to see all your subaccount transactions in one register? \
-From the main menu, highlight the parent account and select \
-Accounts -> Open Subaccounts from the menu.")
+From the Accounts tab in the main window, highlight the parent account \
+and select View -> Open Subaccounts from the menu.")
 
  N_( "When entering dates, you can type '+' or '-' to increment or \
 decrement the selected date. You can use '+' and '-' to increment and \
@@ -84,8 +85,8 @@ you can choose the monthly basic frequency and then set 'Every \
 12 months'.")
 
  N_( "If you work overnight, you should close and reopen your working \
-register after midnight, to get the new date as default for new \
-transactions. It is not necessary to restart GnuCash therefore.")
+registers after midnight, to get the new date as default for new \
+transactions. It is not necessary to restart GnuCash.")
 
  N_( "The GnuCash developers are easy to contact. As well \
 as several mailing lists, you can chat to them live on IRC! \

commit 26de1385630428df87948f17bd947a1a9bf87d63
Author: pmralbuquerque <palbuquerque73 at gmail.com>
Date:   Thu Feb 18 08:41:14 2016 +0000

    Updated translations after TACG translation

diff --git a/po/pt.po b/po/pt.po
index ac316f6..4f542da 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: GnuCash 2.6.9\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-01-05 05:25+0100\n"
-"PO-Revision-Date: 2016-01-07 06:37+0000\n"
+"PO-Revision-Date: 2016-02-18 05:13+0000\n"
 "Last-Translator: Pedro Albuquerque <palbuquerque73 at gmail.com>\n"
 "Language-Team: Português <palbuquerque73 at gmail.com>\n"
 "Language: pt\n"
@@ -317,7 +317,7 @@ msgid ""
 "Check to have trading accounts used for transactions involving more than one "
 "currency or commodity."
 msgstr ""
-"Marque para ter contas de comércio usadas para transações envolvendo mais de "
+"Marque para ter contas de bolsa usadas para transações envolvendo mais de "
 "uma mercadoria ou moeda."
 
 #: ../src/app-utils/business-prefs.scm:139
@@ -644,7 +644,7 @@ msgstr "Falta de pilha"
 
 #: ../src/app-utils/gnc-exp-parser.c:626
 msgid "Undefined character"
-msgstr "Caráter indefinido"
+msgstr "Carácter indefinido"
 
 #: ../src/app-utils/gnc-exp-parser.c:628
 msgid "Not a variable"
@@ -673,11 +673,11 @@ msgstr "Erro numérico"
 #. * identification (e.g., Form 1040, Schedule A).
 #: ../src/app-utils/gnc-ui-util.c:339
 msgid "Tax-related but has no tax code"
-msgstr "Relativo a impostos mas sem código de imposto"
+msgstr "Sujeita a impostos mas sem código de imposto"
 
 #: ../src/app-utils/gnc-ui-util.c:353
 msgid "Tax entity type not specified"
-msgstr "Entidade de imposto não especificada"
+msgstr "Campo de imposto não especificado"
 
 #: ../src/app-utils/gnc-ui-util.c:430
 #, c-format
@@ -688,8 +688,8 @@ msgstr "Tipo de imposto %s: código inválido %s para o tipo de conta"
 #, c-format
 msgid "Not tax-related; tax type %s: invalid code %s for account type"
 msgstr ""
-"Não relativo a imposto; tipo de imposto %s: código inválido %s para o tipo "
-"de conta"
+"Não sujeita a imposto; tipo de imposto %s: código inválido %s para o tipo de "
+"conta"
 
 #: ../src/app-utils/gnc-ui-util.c:447
 #, c-format
@@ -699,7 +699,7 @@ msgstr "Código %s inválido para o tipo de imposto %s"
 #: ../src/app-utils/gnc-ui-util.c:451
 #, c-format
 msgid "Not tax-related; invalid code %s for tax type %s"
-msgstr "Não relativo a imposto; código inválido %s para o tipo de imposto %s"
+msgstr "Não sujeita a imposto; código inválido %s para o tipo de imposto %s"
 
 #: ../src/app-utils/gnc-ui-util.c:469
 #, c-format
@@ -709,7 +709,7 @@ msgstr "Sem formulário: código %s, tipo de imposto %s"
 #: ../src/app-utils/gnc-ui-util.c:473
 #, c-format
 msgid "Not tax-related; no form: code %s, tax type %s"
-msgstr "Não relativo a imposto; sem formulário: código %s, tipo de imposto %s"
+msgstr "Não sujeita a imposto; sem formulário: código %s, tipo de imposto %s"
 
 #: ../src/app-utils/gnc-ui-util.c:490 ../src/app-utils/gnc-ui-util.c:505
 #, c-format
@@ -720,18 +720,18 @@ msgstr "Sem descrição: formulário %s, código %s, tipo de imposto %s"
 #, c-format
 msgid "Not tax-related; no description: form %s, code %s, tax type %s"
 msgstr ""
-"Não relativo a imposto; sem descrição: formulário %s, código %s, tipo de "
+"Não sujeita a imposto; sem descrição: formulário %s, código %s, tipo de "
 "imposto %s"
 
 #: ../src/app-utils/gnc-ui-util.c:532
 #, c-format
 msgid "Not tax-related; %s%s: %s (code %s, tax type %s)"
-msgstr "Não relativo a imposto; %s%s: %s (código %s, tipo de imposto %s)"
+msgstr "Não sujeita a imposto; %s%s: %s (código %s, tipo de imposto %s)"
 
 #: ../src/app-utils/gnc-ui-util.c:579
 #, c-format
 msgid "(Tax-related subaccounts: %d)"
-msgstr "(Sub-contas relativas a imposto: %d)"
+msgstr "(Sub-contas sujeitas a imposto: %d)"
 
 #. Translators: For the following strings, the single letters
 #. after the colon are abbreviations of the word before the
@@ -800,7 +800,7 @@ msgstr "Saldo inicial"
 #: ../src/report/standard-reports/transaction.scm:461
 #: ../src/report/standard-reports/trial-balance.scm:658
 msgid "Debit"
-msgstr "Crédito"
+msgstr "Débito"
 
 #: ../src/app-utils/guile-util.c:937
 #: ../src/business/business-gnome/gtkbuilder/dialog-payment.glade.h:9
@@ -820,7 +820,7 @@ msgstr "Crédito"
 #: ../src/report/standard-reports/transaction.scm:463
 #: ../src/report/standard-reports/trial-balance.scm:661
 msgid "Credit"
-msgstr "Débito"
+msgstr "Crédito"
 
 #: ../src/app-utils/option-util.c:1685
 #, c-format
@@ -941,7 +941,7 @@ msgstr "Compra"
 #: ../src/register/ledger-core/split-register.c:2475
 #: ../src/report/standard-reports/register.scm:851
 msgid "Charge"
-msgstr "Pagamento"
+msgstr "A crédito"
 
 #: ../src/app-utils/prefs.scm:73 ../src/engine/Account.c:3950
 #: ../src/engine/gncInvoice.c:973
@@ -3138,8 +3138,8 @@ msgid ""
 "If checked, each invoice will be opened in its own top level window. If "
 "clear, the invoice will be opened in the current window."
 msgstr ""
-"Se ativo, cada nova fatura será aberta na sua própria janela de nível de "
-"topo. Senão, a fatura será aberta na janela atual."
+"Se ativo, cada nova fatura será aberta na sua própria janela de topo. Senão, "
+"a fatura será aberta na janela atual."
 
 #: ../src/business/business-gnome/gtkbuilder/business-prefs.glade.h:20
 #: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:59
@@ -4455,7 +4455,7 @@ msgstr "Raiz"
 #: ../src/engine/Scrub.c:466
 #: ../src/report/standard-reports/income-statement.scm:621
 msgid "Trading"
-msgstr "Comércio"
+msgstr "Bolsa"
 
 #: ../src/engine/cap-gains.c:236
 msgid "Orphaned Gains"
@@ -4471,8 +4471,8 @@ msgid ""
 "Realized Gains or Losses from Commodity or Trading Accounts that haven't "
 "been recorded elsewhere."
 msgstr ""
-"Ganhos ou perdas realizados em contas de mercadorias ou comércio que não "
-"foram registados em mais lado nenhum."
+"Ganhos ou perdas realizados em contas de mercadorias ou bolsa que não foram "
+"registados em mais lado nenhum."
 
 #: ../src/engine/gnc-budget.c:93 ../src/gnome/gnc-plugin-page-budget.c:838
 msgid "Unnamed Budget"
@@ -4610,7 +4610,7 @@ msgstr "Anualmente"
 #. Reason 2: zero Orphan a/c
 #: ../src/engine/Scrub.c:89 ../src/report/business-reports/balsheet-eg.scm:511
 msgid "Orphan"
-msgstr "Orfão"
+msgstr "Orfã"
 
 #. (> (accrec-depth accrec) 1))
 #. Reason 1: zero Imbalance a/c
@@ -5115,7 +5115,7 @@ msgstr "Eliminar preços?"
 
 #: ../src/gnome/dialog-price-editor.c:213
 msgid "You must select a Security."
-msgstr "Tem de escolher uma garantia."
+msgstr "Tem de escolher uma mercadoria."
 
 #: ../src/gnome/dialog-price-editor.c:218
 msgid "You must select a Currency."
@@ -5366,7 +5366,7 @@ msgstr "Criado"
 #: ../src/gnome/dialog-sx-since-last-run.c:455
 #: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:89
 msgid "Never"
-msgstr "Sem término"
+msgstr "Nunca"
 
 #: ../src/gnome/dialog-sx-since-last-run.c:525
 msgid "(Need Value)"
@@ -5612,7 +5612,7 @@ msgstr "Veja e edite as cotações de ações e outros títulos"
 
 #: ../src/gnome/gnc-plugin-basic-commands.c:193
 msgid "_Security Editor"
-msgstr "Editor de _garantias"
+msgstr "Editor de mercadoria_s"
 
 #: ../src/gnome/gnc-plugin-basic-commands.c:194
 msgid "View and edit the commodities for stocks and mutual funds"
@@ -8027,7 +8027,7 @@ msgstr ""
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:91
 msgid "Only display leaf account names."
-msgstr "Mostrar só nomes de conta de folha."
+msgstr "Mostrar só nomes de conta \"folha\"."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:92
 msgid ""
@@ -8036,10 +8036,10 @@ msgid ""
 "including the path in the account tree. Activating this option implies that "
 "you use unique leaf names."
 msgstr ""
-"Mostrar só os nomes de conta de folha no diário e no balão de seleção de "
+"Mostrar só os nomes de conta \"folha\" no diário e no balão de seleção de "
 "conta. O comportamento predefinido é mostrar o nome completo, incluindo o "
 "caminho na árvore de contas. Ativar esta opção implica usar unicamente nomes "
-"de folha."
+"de \"folha\"."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:93
 msgid "Show the entered and reconcile dates"
@@ -8528,7 +8528,7 @@ msgstr ""
 
 #: ../src/gnome/gtkbuilder/assistant-hierarchy.glade.h:30
 msgid "Finish Account Setup"
-msgstr "Terminar configuração de conta"
+msgstr "Terminar configuração de contas"
 
 #: ../src/gnome/gtkbuilder/assistant-loan.glade.h:1
 msgid ""
@@ -9027,11 +9027,11 @@ msgstr "total"
 
 #: ../src/gnome/gtkbuilder/dialog-fincalc.glade.h:15
 msgid "Discrete"
-msgstr "Discreto"
+msgstr "Discreta"
 
 #: ../src/gnome/gtkbuilder/dialog-fincalc.glade.h:16
 msgid "Continuous"
-msgstr "Contínuo"
+msgstr "Contínua"
 
 #: ../src/gnome/gtkbuilder/dialog-fincalc.glade.h:18
 #: ../src/gnome/gtkbuilder/dialog-sx.glade.h:51
@@ -9248,7 +9248,7 @@ msgstr "Espaço de _nome:"
 #: ../src/gnome/gtkbuilder/dialog-price.glade.h:9
 #: ../src/gnome-utils/dialog-commodity.c:289
 msgid "_Security:"
-msgstr "_Garantia:"
+msgstr "_Mercadoria:"
 
 #: ../src/gnome/gtkbuilder/dialog-price.glade.h:10
 #: ../src/gnome-utils/dialog-commodity.c:294
@@ -9266,7 +9266,7 @@ msgstr "_Preço:"
 #: ../src/gnome/gtkbuilder/dialog-price.glade.h:14
 #: ../src/report/standard-reports/price-scatter.scm:96
 msgid "Price Database"
-msgstr "Base de dados de preço"
+msgstr "Base de dados de cotações"
 
 #: ../src/gnome/gtkbuilder/dialog-price.glade.h:15
 msgid "Add a new price."
@@ -9306,11 +9306,11 @@ msgstr "Venda"
 
 #: ../src/gnome/gtkbuilder/dialog-price.glade.h:25
 msgid "Last"
-msgstr "Último"
+msgstr "Última"
 
 #: ../src/gnome/gtkbuilder/dialog-price.glade.h:26
 msgid "Net Asset Value"
-msgstr "Valor ativo líquido"
+msgstr "Valor líquido do ativo"
 
 #: ../src/gnome/gtkbuilder/dialog-price.glade.h:28
 #: ../src/gnome-utils/gtkbuilder/dialog-commodity.glade.h:26
@@ -9918,7 +9918,7 @@ msgstr "_Reconciliada"
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:19
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:20
 msgid "C_leared"
-msgstr "C_onfirmado"
+msgstr "C_onfirmada"
 
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:20
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:21
@@ -10060,7 +10060,7 @@ msgstr "<b>Informação de autoconfirmação</b>"
 #: ../src/gnome/gtkbuilder/window-autoclear.glade.h:2
 #: ../src/gnome/gtkbuilder/window-reconcile.glade.h:4
 msgid "_Ending Balance:"
-msgstr "_Balanço final:"
+msgstr "_Saldo final:"
 
 #: ../src/gnome/gtkbuilder/window-reconcile.glade.h:1
 msgid "<b>Reconcile Information</b>"
@@ -10068,13 +10068,13 @@ msgstr "<b>Reconciliar informação</b>"
 
 #: ../src/gnome/gtkbuilder/window-reconcile.glade.h:2
 msgid "Statement _Date:"
-msgstr "_Data do documento:"
+msgstr "_Data do extrato:"
 
 #. starting balance title/value
 #: ../src/gnome/gtkbuilder/window-reconcile.glade.h:3
 #: ../src/gnome/window-reconcile2.c:1810 ../src/gnome/window-reconcile.c:1850
 msgid "Starting Balance:"
-msgstr "Balanço inicial:"
+msgstr "Saldo inicial:"
 
 #: ../src/gnome/gtkbuilder/window-reconcile.glade.h:5
 msgid "Include _subaccounts"
@@ -10734,16 +10734,16 @@ msgstr ""
 
 #: ../src/gnome-utils/dialog-commodity.c:284
 msgid "Select security/currency"
-msgstr "Selecione a garantia/moeda"
+msgstr "Selecione a mercadoria/moeda"
 
 #: ../src/gnome-utils/dialog-commodity.c:285
 #: ../src/gnome-utils/gtkbuilder/dialog-account.glade.h:14
 msgid "_Security/currency:"
-msgstr "_Garantia/Moeda:"
+msgstr "_Mercadoria/Moeda:"
 
 #: ../src/gnome-utils/dialog-commodity.c:288
 msgid "Select security"
-msgstr "Selecione a garantia"
+msgstr "Selecione a mercadoria"
 
 #: ../src/gnome-utils/dialog-commodity.c:293
 msgid "Select currency"
@@ -10768,15 +10768,15 @@ msgstr "Informação da moeda"
 
 #: ../src/gnome-utils/dialog-commodity.c:1048
 msgid "Edit security"
-msgstr "Editar garantia"
+msgstr "Editar mercadoria"
 
 #: ../src/gnome-utils/dialog-commodity.c:1048
 msgid "New security"
-msgstr "Nova garantia"
+msgstr "Nova mercadoria"
 
 #: ../src/gnome-utils/dialog-commodity.c:1049
 msgid "Security Information"
-msgstr "Informação da garantia"
+msgstr "Informação da mercadoria"
 
 #: ../src/gnome-utils/dialog-commodity.c:1325
 msgid "You may not create a new national currency."
@@ -12581,7 +12581,7 @@ msgstr "A"
 
 #: ../src/gnome-utils/gnc-tree-view-price.c:424
 msgid "Security"
-msgstr "Garantia"
+msgstr "Mercadoria"
 
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:807
 msgid "Status Bar"
@@ -13153,7 +13153,7 @@ msgstr "No_tas:"
 
 #: ../src/gnome-utils/gtkbuilder/dialog-account.glade.h:19
 msgid "Ta_x related"
-msgstr "Relativo a _impostos"
+msgstr "Sujeita a _impostos"
 
 #: ../src/gnome-utils/gtkbuilder/dialog-account.glade.h:20
 msgid ""
@@ -13399,7 +13399,7 @@ msgstr "Descrição:"
 
 #: ../src/gnome-utils/gtkbuilder/dialog-commodity.glade.h:1
 msgid "Select security/currency "
-msgstr "Selecione a garantia/moeda "
+msgstr "Selecione a mercadoria/moeda "
 
 #: ../src/gnome-utils/gtkbuilder/dialog-commodity.glade.h:2
 msgid "Select user information here..."
@@ -13440,8 +13440,8 @@ msgid ""
 "Enter the smallest fraction of the commodity which can be traded. For stocks "
 "which can only be traded in whole numbers, enter 1."
 msgstr ""
-"Insira a mais pequena fração da mercadoria que pode ser transacionada. Para "
-"ações que só possam ser transacionadas em números inteiros, insira 1."
+"Insira a mais pequena fração da mercadoria que pode ser negociada. Para "
+"ações que só possam ser negociadas em números inteiros, insira 1."
 
 #: ../src/gnome-utils/gtkbuilder/dialog-commodity.glade.h:9
 msgid "<b>Quote Source Information</b>"
@@ -13465,7 +13465,7 @@ msgstr "ISIN, CUSI_P ou outro código:"
 
 #: ../src/gnome-utils/gtkbuilder/dialog-commodity.glade.h:14
 msgid "F_raction traded:"
-msgstr "F_ração transacionada:"
+msgstr "F_ração negociada:"
 
 #: ../src/gnome-utils/gtkbuilder/dialog-commodity.glade.h:15
 msgid "Warning: Finance::Quote not installed properly."
@@ -13683,7 +13683,7 @@ msgstr "Contas de c_rédito"
 
 #: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:26
 msgid "_Income & expense"
-msgstr "_Receita & despesa"
+msgstr "_Receita & Despesa"
 
 #: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:28
 msgid "<b>Reverse Balanced Accounts</b>"
@@ -13798,7 +13798,7 @@ msgstr "Data/Hora"
 
 #: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:60
 msgid "Perform account list _setup on new file"
-msgstr "Realizar configuração de li_sta de contas em ficheiro novo"
+msgstr "Configurar árvore de conta_s em ficheiro novo"
 
 #: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:61
 msgid "Present the new account list dialog when you choose File -> New File."
@@ -14117,7 +14117,7 @@ msgstr ""
 
 #: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:149
 msgid "_Only display leaf account names"
-msgstr "Mostrar só nomes de conta de _folha"
+msgstr "Mostrar só nomes de conta \"_folha\""
 
 #: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:150
 msgid ""
@@ -14126,10 +14126,10 @@ msgid ""
 "display the full name, including the path in the account tree. Checking this "
 "option implies that you use unique leaf names."
 msgstr ""
-"Se marcada, só os nomes de contas folha são mostrados no diário e no balão "
-"de seleção de contas. O comportamento predefinido é mostrar o nome completo, "
-"incluindo o caminho, na árvore de contas. Marcar esta opção implica usar só "
-"nomes de folha."
+"Se marcada, só os nomes de contas \"folha\" são mostrados no diário e no "
+"balão de seleção de contas. O comportamento predefinido é mostrar o nome "
+"completo, incluindo o caminho, na árvore de contas. Marcar esta opção "
+"implica usar só nomes de \"folhas\"."
 
 #: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:151
 msgid "Number of _characters for auto complete:"
@@ -14172,8 +14172,8 @@ msgid ""
 "If checked, each report will be opened in its own top level window. If "
 "clear, the report will be opened in the current window."
 msgstr ""
-"Se marcada, cada relatório será aberto na sua própria janela de nível de "
-"topo. Senão, será aberto na janela atual."
+"Se marcada, cada relatório será aberto na sua própria janela de topo. Senão, "
+"será aberto na janela atual."
 
 #: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:168
 msgid "Reports"
@@ -14933,7 +14933,7 @@ msgid ""
 "Match the \"day of week\" and \"week of month\"? (for example, the \"second "
 "Tuesday\" of every month)"
 msgstr ""
-"Corresponder \"dia da seman\" com \"semana do mês\" (poe ex., \"2ª terça\" "
+"Corresponder \"dia da semana\" com \"semana do mês\" (por ex., \"2ª terça\" "
 "de cada mês)?"
 
 #: ../src/gnome-utils/gtkbuilder/gnc-tree-view-owner.glade.h:2
@@ -15017,7 +15017,7 @@ msgstr "Sem cobrança automática de juros nesta conta"
 
 #: ../src/gnome/window-reconcile2.c:764 ../src/gnome/window-reconcile.c:801
 msgid "Enter _Interest Charge..."
-msgstr "_Insira cobrança de juros..."
+msgstr "_Inserir cobrança de juros..."
 
 #: ../src/gnome/window-reconcile2.c:1068 ../src/gnome/window-reconcile.c:1105
 #: ../src/report/business-reports/owner-report.scm:56
@@ -16621,7 +16621,7 @@ msgstr ""
 "\n"
 "O ficheiro tem de estar no mesmo formato que o ficheiro exportado, uma vez "
 "que este é um formato de importação fixo. Se a conta estiver em falta, "
-"baseado no nome completo da conta, será adicionada, desde que a garantia/"
+"baseado no nome completo da conta, será adicionada, desde que a mercadoria/"
 "moeda especificada exista. Se a conta existir, serão atualizados quatro "
 "campos: código, descrição, notas e cor.\n"
 "\n"
@@ -17501,7 +17501,7 @@ msgstr ""
 #: ../src/import-export/ofx/gnc-ofx-import.c:563
 #, c-format
 msgid "Stock account for security \"%s\""
-msgstr "Conta de ações para a garantia \"%s\""
+msgstr "Conta de ações para a mercadoria \"%s\""
 
 #. This string is a default account
 #. name. It MUST NOT contain the
@@ -17510,7 +17510,7 @@ msgstr "Conta de ações para a garantia \"%s\""
 #: ../src/import-export/ofx/gnc-ofx-import.c:729
 #, c-format
 msgid "Income account for security \"%s\""
-msgstr "Conta de receita para a garantia \"%s\""
+msgstr "Conta de receita para a mercadoria \"%s\""
 
 #: ../src/import-export/ofx/gnc-ofx-import.c:842
 msgid "Unknown OFX account"
@@ -18155,7 +18155,7 @@ msgstr ""
 "gravada e usada como predefinições na próxima importação QIF.\n"
 "\n"
 "Clique em Recuar para rever as comparações de contas e categorias, alterar "
-"definições de moedas e garantias para novas contas ou para adicionar mais "
+"definições de moedas e mercadorias para novas contas ou para adicionar mais "
 "ficheiros à área de estágio.\n"
 "\n"
 "Clique em Cancelar para abortar o processo de importação QIF."
@@ -18218,7 +18218,7 @@ msgstr ""
 
 #: ../src/import-export/qif-imp/dialog-account-picker.glade.h:9
 msgid "_Not cleared"
-msgstr "_Não confirmadas"
+msgstr "_Não confirmada"
 
 #: ../src/import-export/qif-imp/dialog-account-picker.glade.h:10
 msgid ""
@@ -18309,7 +18309,7 @@ msgstr "Foram descartados alguns caracteres."
 #: ../src/import-export/qif-imp/qif-file.scm:141
 #: ../src/import-export/qif-imp/qif-file.scm:145
 msgid "Converted to: "
-msgstr "Comvertido para: "
+msgstr "Convertido para: "
 
 #: ../src/import-export/qif-imp/qif-file.scm:144
 msgid "Some characters have been converted according to your locale."
@@ -18338,7 +18338,7 @@ msgstr "A ignorar linha de categoria"
 
 #: ../src/import-export/qif-imp/qif-file.scm:469
 msgid "Ignoring security line"
-msgstr "A ignorar linha de garantia"
+msgstr "A ignorar linha de mercadoria"
 
 #: ../src/import-export/qif-imp/qif-file.scm:477
 msgid "File does not appear to be in QIF format"
@@ -19028,7 +19028,7 @@ msgstr "Moeda do relatório"
 #: ../src/report/standard-reports/sx-summary.scm:96
 #: ../src/report/standard-reports/trial-balance.scm:131
 msgid "Price Source"
-msgstr "Fonte do preço"
+msgstr "Fonte da cotação"
 
 #: ../src/report/business-reports/aging.scm:44
 msgid "Show Multi-currency Totals"
@@ -19177,7 +19177,7 @@ msgstr "Contas de capital próprio"
 #: ../src/report/business-reports/balsheet-eg.eguile.scm:193
 #: ../src/report/report-system/report-utilities.scm:126
 msgid "Trading Accounts"
-msgstr "Contas de negócios"
+msgstr "Contas de bolsa"
 
 #: ../src/report/business-reports/balsheet-eg.eguile.scm:199
 #: ../src/report/standard-reports/balance-sheet.scm:674
@@ -19200,7 +19200,7 @@ msgstr "<strong>Taxas de câmbio</strong> usadas para este relatório"
 #. All the options stuff starts here
 #: ../src/report/business-reports/balsheet-eg.scm:249
 msgid "Balance Sheet (eguile)"
-msgstr "Folha de saldo (eguile)"
+msgstr "Folha de balanço (eguile)"
 
 #. define all option's names and help text so that they are properly
 #. defined in *one* place.
@@ -19231,7 +19231,7 @@ msgstr "Título deste relatório."
 #: ../src/report/business-reports/balsheet-eg.scm:256
 #: ../src/report/standard-reports/balance-sheet.scm:82
 msgid "Balance Sheet Date"
-msgstr "Data da folha de saldo"
+msgstr "Data da folha de balanço"
 
 #: ../src/report/business-reports/balsheet-eg.scm:257
 msgid "1- or 2-column report"
@@ -19242,7 +19242,7 @@ msgid ""
 "The balance sheet can be displayed with either 1 or 2 columns. 'auto' means "
 "that the layout will be adjusted to fit the width of the page."
 msgstr ""
-"A folha de saldo pode ser mostrada com1 ou 2 colunas. \"Automático\" "
+"A folha de balanço pode ser mostrada com 1 ou 2 colunas. \"Automático\" "
 "significa que a disposição será ajustada para caber na largura da página."
 
 #: ../src/report/business-reports/balsheet-eg.scm:261
@@ -19294,8 +19294,7 @@ msgstr "Excluir contas com saldos totais zero"
 msgid ""
 "Exclude non-top-level accounts with zero balance and no non-zero sub-"
 "accounts."
-msgstr ""
-"Excluir contas não nível de topo com saldo zero e sem subcontas não zero."
+msgstr "Excluir contas não de topo com saldo zero e sem subcontas não zero."
 
 #: ../src/report/business-reports/balsheet-eg.scm:271
 #: ../src/report/standard-reports/account-summary.scm:99
@@ -19480,11 +19479,11 @@ msgstr ""
 
 #: ../src/report/business-reports/balsheet-eg.scm:692
 msgid "Balance Sheet using eguile-gnc"
-msgstr "Folha de saldo usando eguile-gnc"
+msgstr "Folha de balanço usando eguile-gnc"
 
 #: ../src/report/business-reports/balsheet-eg.scm:693
 msgid "Display a balance sheet (using eguile template)"
-msgstr "Mostrar uma folha de saldo (usando um modelo eguile)"
+msgstr "Mostrar uma folha de balanço (usando um modelo eguile)"
 
 #. Option names
 #: ../src/report/business-reports/customer-summary.scm:42
@@ -19807,7 +19806,7 @@ msgstr "Mostrar o desconto da entrada?"
 #: ../src/report/business-reports/fancy-invoice.scm:290
 #: ../src/report/business-reports/invoice.scm:275
 msgid "Display the entry's taxable status?"
-msgstr "Mostra se a entrada paga imposto?"
+msgstr "Mostrar se a entrada paga imposto?"
 
 #: ../src/report/business-reports/easy-invoice.scm:285
 #: ../src/report/business-reports/fancy-invoice.scm:295
@@ -20819,7 +20818,7 @@ msgstr "Esta página mostra a sua receita coletável e a sua despesa dedutível.
 
 #: ../src/report/locale-specific/us/taxtxf.scm:115
 msgid "Tax Schedule Report/TXF Export"
-msgstr "Relatório de impostos/Exportação Mod. IRX"
+msgstr "Relatório de impostos/Exportação Mod. IRS"
 
 #: ../src/report/locale-specific/us/taxtxf.scm:223
 msgid "$0.00 valued Tax codes won't be printed."
@@ -21379,7 +21378,7 @@ msgstr "Informação de letra para células de texto regulares."
 
 #: ../src/report/report-system/html-fonts.scm:119
 msgid "Total number cell"
-msgstr "Célula de número total"
+msgstr "Células de totais"
 
 #: ../src/report/report-system/html-fonts.scm:119
 msgid "Font info for number cells containing a total."
@@ -21387,11 +21386,11 @@ msgstr "Informação de letra para células de número contento um total."
 
 #: ../src/report/report-system/html-fonts.scm:124
 msgid "Total label cell"
-msgstr "Célula de rótulo total"
+msgstr "Célula de rótulo Total"
 
 #: ../src/report/report-system/html-fonts.scm:124
 msgid "Font info for cells containing total labels."
-msgstr "Informação de letra para células contendo rótulos totais."
+msgstr "Informação de letra para células contendo rótulos Total."
 
 #: ../src/report/report-system/html-fonts.scm:129
 msgid "Centered label cell"
@@ -22144,7 +22143,7 @@ msgstr "Saldo em %s"
 #. window.
 #: ../src/report/standard-reports/account-summary.scm:64
 msgid "Account Summary"
-msgstr "Plano de contas"
+msgstr "Sumário de contas"
 
 #: ../src/report/standard-reports/account-summary.scm:69
 #: ../src/report/standard-reports/balance-sheet.scm:79
@@ -22681,12 +22680,12 @@ msgstr "Perda"
 #: ../src/report/standard-reports/balance-sheet.scm:72
 #: ../src/report/standard-reports/trial-balance.scm:618
 msgid "Balance Sheet"
-msgstr "Folha de saldo"
+msgstr "Folha de balanço"
 
 #: ../src/report/standard-reports/balance-sheet.scm:83
 #: ../src/report/standard-reports/budget-balance-sheet.scm:48
 msgid "Single column Balance Sheet"
-msgstr "Folha de saldo de coluna única"
+msgstr "Folha de balanço de coluna única"
 
 #: ../src/report/standard-reports/balance-sheet.scm:85
 #: ../src/report/standard-reports/budget-balance-sheet.scm:50
@@ -22813,7 +22812,7 @@ msgstr "Total de passivo e capital próprio"
 
 #: ../src/report/standard-reports/budget-balance-sheet.scm:38
 msgid "Budget Balance Sheet"
-msgstr "Folha de saldo do orçamento"
+msgstr "Folha de balanço do orçamento"
 
 #: ../src/report/standard-reports/budget-balance-sheet.scm:98
 msgid "Include new/existing totals"
@@ -23207,15 +23206,15 @@ msgstr "%s: %s"
 
 #: ../src/report/standard-reports/cash-flow.scm:42
 msgid "Cash Flow"
-msgstr "Fluxo de dinheiro"
+msgstr "Fluxo de caixa"
 
 #: ../src/report/standard-reports/cash-flow.scm:57
 msgid "Include Trading Accounts in report"
-msgstr "Incluir contas de negociação no relatório"
+msgstr "Incluir contas de bolsa no relatório"
 
 #: ../src/report/standard-reports/cash-flow.scm:106
 msgid "Include transfers to and from Trading Accounts in the report."
-msgstr "Incluir transferências de e para contas de negociação no relatório."
+msgstr "Incluir transferências de e para contas de bolsa no relatório."
 
 #: ../src/report/standard-reports/cash-flow.scm:241
 msgid "%s and subaccounts"
@@ -23254,7 +23253,7 @@ msgstr "Gráfico de barras das despesas"
 
 #: ../src/report/standard-reports/category-barchart.scm:49
 msgid "Asset Barchart"
-msgstr "Gráfico de barras dos ativos"
+msgstr "Gráfico de barras do ativo"
 
 #: ../src/report/standard-reports/category-barchart.scm:50
 msgid "Liability Barchart"
@@ -23593,22 +23592,21 @@ msgstr "Ordem secundária"
 
 #: ../src/report/standard-reports/income-statement.scm:97
 msgid "Label the trading accounts section"
-msgstr "Rotular a secção de contas de negócio"
+msgstr "Rotular a secção de contas de bolsa"
 
 #: ../src/report/standard-reports/income-statement.scm:99
 msgid "Whether or not to include a label for the trading accounts section."
-msgstr "Se deve ou não incluir um rótulo na secção de contas de negócio."
+msgstr "Se deve ou não incluir um rótulo na secção de contas de bolsa."
 
 #: ../src/report/standard-reports/income-statement.scm:100
 msgid "Include trading accounts total"
-msgstr "Incluir total de contas de negócio"
+msgstr "Incluir total de contas de bolsa"
 
 #: ../src/report/standard-reports/income-statement.scm:102
 msgid ""
 "Whether or not to include a line indicating total trading accounts balance."
 msgstr ""
-"Se deve ou não incluir uma linha indicando o saldo total de contas de "
-"negócio."
+"Se deve ou não incluir uma linha indicando o saldo total de contas de bolsa."
 
 #: ../src/report/standard-reports/income-statement.scm:629
 msgid "Total Trading"
@@ -24724,7 +24722,7 @@ msgstr "Cor do texto da ligação."
 #: ../src/report/stylesheets/stylesheet-footer.scm:137
 #: ../src/report/stylesheets/stylesheet-footer.scm:212
 msgid "Table Cell Color"
-msgstr "Cor da célula"
+msgstr "Cor da célula da tabela"
 
 #: ../src/report/stylesheets/stylesheet-easy.scm:124
 #: ../src/report/stylesheets/stylesheet-fancy.scm:118
@@ -24832,7 +24830,7 @@ msgstr "Espaçamento de células"
 #: ../src/report/stylesheets/stylesheet-footer.scm:176
 #: ../src/report/stylesheets/stylesheet-plain.scm:70
 msgid "Space between table cells."
-msgstr "Espaçamento entre células da tabela."
+msgstr "Espaço entre células da tabela."
 
 #: ../src/report/stylesheets/stylesheet-easy.scm:169
 #: ../src/report/stylesheets/stylesheet-easy.scm:214
@@ -25134,7 +25132,7 @@ msgstr ""
 msgid ""
 "For details on subscribing to that list, see <http://www.gnucash.org/>."
 msgstr ""
-"Para detalhes sobre como subscrever esta lista, veja <http://www.gnucash."
+" Para detalhes sobre como subscrever esta lista, veja <http://www.gnucash."
 "org/>."
 
 #: ../src/report/utility-reports/hello-world.scm:359
@@ -25398,7 +25396,7 @@ msgstr "Faça a gestão das suas finaças, contas e investimentos"
 
 #: ../src/libqof/qof/qofbookslots.h:66
 msgid "Use Trading Accounts"
-msgstr "Usar contas de negócio"
+msgstr "Usar contas de bolsa"
 
 #: ../src/libqof/qof/qofbookslots.h:67
 msgid "Day Threshold for Read-Only Transactions (red line)"
@@ -25410,7 +25408,7 @@ msgstr "Usar campo de ação de parcela para Número"
 
 #: ../src/libqof/qof/qofbookslots.h:70
 msgid "Budgeting"
-msgstr "Orçamentar"
+msgstr "Orçamento"
 
 #: ../src/libqof/qof/qofbookslots.h:71
 msgid "Default Budget"

commit 05da881fa821929bb550916e963c22e4aaa65aa2
Author: fell <f.ellenberger at online.de>
Date:   Wed Feb 17 03:36:11 2016 +0100

    Update the list of Finance::Quote methods
    
    It is now be close to F::Q 1.38.
    A few methods remain still in unknown:
    Most are aliases.
    Bitcoin* would spam the list,
    MtGox* will be dropped.

diff --git a/src/engine/gnc-commodity.c b/src/engine/gnc-commodity.c
index 5839667..9e26004 100644
--- a/src/engine/gnc-commodity.c
+++ b/src/engine/gnc-commodity.c
@@ -160,31 +160,39 @@ static gnc_quote_source currency_quote_source =
 static gnc_quote_source single_quote_sources[] =
 {
     { FALSE, 0, 0, "Amsterdam Euronext eXchange, NL", "AEX", "aex" },
-    { FALSE, 0, 0, "AEX Futures (now in AEX)", "AEX_FUTURES", "aex_futures" },
-    { FALSE, 0, 0, "AEX Options (now in AEX)", "AEX_OPTIONS", "aex_options" },
     { FALSE, 0, 0, "American International Assurance, HK", "AIAHK", "aiahk" },
     { FALSE, 0, 0, "Association  of  Mutual  Funds  in  India", "AMFIINDIA", "amfiindia" },
     { FALSE, 0, 0, "Athens Stock Exchange, GR", "ASEGR", "asegr" },
     { FALSE, 0, 0, "Australian Stock Exchange, AU", "ASX", "asx" },
+    { FALSE, 0, 0, "BAMOSZ funds, HU", "BAMOSZ", "bamosz" },
     { FALSE, 0, 0, "BMO NesbittBurns, CA", "BMONESBITTBURNS", "bmonesbittburns" },
-    { FALSE, 0, 0, "BUX/Magyar Tökepiac, HU", "BUX", "bux" },
+    { FALSE, 0, 0, "Bucharest Stock Exchange, RO", "BSERO", "bsero" },
+    { FALSE, 0, 0, "Budapest Stock Exchange (BET), ex-BUX, HU", "BSE", "bse" },
+    { FALSE, 0, 0, "Citywire Funds, GB", "citywire", "citywire" },
+    { FALSE, 0, 0, "Colombo Stock Exchange, LK", "CSE", "cse" },
     { FALSE, 0, 0, "Cominvest, ex-Adig, DE", "COMINVEST", "cominvest" },
     { FALSE, 0, 0, "Deka Investments, DE", "DEKA", "deka" },
     { FALSE, 0, 0, "DWS, DE", "DWS", "dwsfunds" },
+	{ FALSE, 0, 0, "Equinox Unit Trusts, ZA", "ZA_unittrusts", "za_unittrusts" },
     { FALSE, 0, 0, "Fidelity Direct", "FIDELITY_DIRECT", "fidelity_direct" },
     { FALSE, 0, 0, "Finance Canada", "FINANCECANADA", "financecanada" },
+    { FALSE, 0, 0, "Financial Times Funds service, GB", "FTFUNDS", "ftfunds" },
     { FALSE, 0, 0, "Finanzpartner, DE", "FINANZPARTNER", "finanzpartner" },
     { FALSE, 0, 0, "First Trust Portfolios, US", "FTPORTFOLIOS_DIRECT", "ftportfolios_direct" },
     { FALSE, 0, 0, "Fund Library, CA", "FUNDLIBRARY", "fundlibrary" },
     { FALSE, 0, 0, "GoldMoney spot rates, JE", "GOLDMONEY", "goldmoney" },
     { FALSE, 0, 0, "HElsinki stock eXchange, FI", "HEX", "hex" },
     { FALSE, 0, 0, "Man Investments, AU", "maninv", "maninv" },
+    { FALSE, 0, 0, "Morningstar, GB", "MSTARUK", "mstaruk" },
+    { FALSE, 0, 0, "Morningstar, JP", "MORNINGSTARJP", "morningstarjp" },
     { FALSE, 0, 0, "Morningstar, SE", "MORNINGSTAR", "morningstar" },
     { FALSE, 0, 0, "Motley Fool, US", "FOOL", "fool" },
     { FALSE, 0, 0, "New Zealand stock eXchange, NZ", "NZX", "nzx" },
     { FALSE, 0, 0, "Paris Stock Exchange/Boursorama, FR", "BOURSO", "bourso" },
     { FALSE, 0, 0, "Paris Stock Exchange/LeRevenu, FR", "LEREVENU", "lerevenu" },
     { FALSE, 0, 0, "Platinum Asset Management, AU", "PLATINUM", "platinum" },
+    { FALSE, 0, 0, "SIX funds, CH", "SIXFUNDS", "sixfunds" },
+    { FALSE, 0, 0, "SIX shares, CH", "SIXSHARES", "sixshares" },
     { FALSE, 0, 0, "Skandinaviska Enskilda Banken, SE", "SEB_FUNDS", "seb_funds" },
     { FALSE, 0, 0, "Sharenet, ZA", "ZA", "za" },
     { FALSE, 0, 0, "StockHouse Canada", "STOCKHOUSE_FUND", "stockhousecanada_fund" },
@@ -193,7 +201,8 @@ static gnc_quote_source single_quote_sources[] =
     { FALSE, 0, 0, "TIAA-CREF, US", "TIAACREF", "tiaacref" },
     { FALSE, 0, 0, "Toronto Stock eXchange, CA", "TSX", "tsx" },
     { FALSE, 0, 0, "T. Rowe Price, US", "TRPRICE_DIRECT", "troweprice_direct" },
-    { FALSE, 0, 0, "Trustnet, GB", "TRUSTNET", "trustnet" },
+    { FALSE, 0, 0, "Trustnet via tnetuk.pm, GB", "TNETUK", "tnetuk" },
+    { FALSE, 0, 0, "Trustnet via trustnet.pm, GB", "TRUSTNET", "trustnet" },
     { FALSE, 0, 0, "Union Investment, DE", "UNIONFUNDS", "unionfunds" },
     { FALSE, 0, 0, "US Treasury Bonds", "usfedbonds", "usfedbonds" },
     { FALSE, 0, 0, "US Govt. Thrift Savings Plan", "TSP", "tsp" },
@@ -205,7 +214,7 @@ static gnc_quote_source single_quote_sources[] =
     { FALSE, 0, 0, "Yahoo Brasil", "YAHOO_BRASIL", "yahoo_brasil" },
     { FALSE, 0, 0, "Yahoo Europe", "YAHOO_EUROPE", "yahoo_europe" },
     { FALSE, 0, 0, "Yahoo New Zealand", "YAHOO_NZ", "yahoo_nz" },
-    { FALSE, 0, 0, "Zuerich Investments (outdated)", "ZIFUNDS", "zifunds" }, /* Removed from F::Q 1.11. */
+    { FALSE, 0, 0, "Yahoo as JSON", "YAHOO_JSON", "yahoo_json" },
 };
 static gnc_quote_source multiple_quote_sources[] =
 {
@@ -217,6 +226,7 @@ static gnc_quote_source multiple_quote_sources[] =
     { FALSE, 0, 0, "Dutch (AEX, ...)", "DUTCH", "dutch" },
     { FALSE, 0, 0, "Europe (Yahoo, ...)", "EUROPE", "europe" },
     { FALSE, 0, 0, "Greece (ASE, ...)", "GREECE", "greece" },
+    { FALSE, 0, 0, "Hungary (Bamosz, BET)", "HU", "hu" },
     { FALSE, 0, 0, "India Mutual (AMFI, ...)", "INDIAMUTUAL", "indiamutual" },
     { FALSE, 0, 0, "Fidelity (Fidelity, ...)", "FIDELITY", "fidelity" },
     { FALSE, 0, 0, "Finland (HEX, ...)", "FINLAND", "finland" },
@@ -226,9 +236,11 @@ static gnc_quote_source multiple_quote_sources[] =
     { FALSE, 0, 0, "New Zealand (Yahoo, ...)", "NZ", "nz" },
     { FALSE, 0, 0, "NYSE (Yahoo, ...)", "NYSE", "nyse" },
     /*    { FALSE, 0, 0, "South Africa (Sharenet, ...)", "ZA", "za" }, */
+    { FALSE, 0, 0, "Romania (BSE-RO, ...)", "romania", "romania" },
     { FALSE, 0, 0, "T. Rowe Price", "TRPRICE", "troweprice" },
-    { FALSE, 0, 0, "U.K. Unit Trusts", "UKUNITTRUSTS", "uk_unit_trusts" },
-    { FALSE, 0, 0, "USA (Yahoo, Fool ...)", "USA", "usa" },
+    { FALSE, 0, 0, "U.K. Funds (citywire, FTfunds, MStar, tnetuk, ...)", "ukfunds", "ukfunds" },
+    { FALSE, 0, 0, "U.K. Unit Trusts (trustnet, ...)", "UKUNITTRUSTS", "uk_unit_trusts" },
+    { FALSE, 0, 0, "USA (Yahoo, Fool, ...)", "USA", "usa" },
 };
 
 static const int num_single_quote_sources =

commit 029a6653d6cfb6aa2f2e254f05bb36fc60cb0a8c
Author: Sebastien Bourdelin <sebastien.bourdelin at savoirfairelinux.com>
Date:   Thu Feb 11 23:13:45 2016 -0500

    Fix a typo
    
    éargne -> épargne.

diff --git a/accounts/fr_CA/acctchrt_basecommune.gnucash-xea b/accounts/fr_CA/acctchrt_basecommune.gnucash-xea
index fc597b9..2ccb066 100644
--- a/accounts/fr_CA/acctchrt_basecommune.gnucash-xea
+++ b/accounts/fr_CA/acctchrt_basecommune.gnucash-xea
@@ -6,7 +6,7 @@
 		<gnc-act:short-description>
 			Ensemble des comptes de base les plus couramment utilisés	</gnc-act:short-description>
 		<gnc-act:long-description>
-			La plupart des utilisateurs sélectionneront ce groupe/hiérarchie  de comptes.  Il inclut des comptes de base couramment utilisés par les particuliers, tels que compte chèques, compte d'éargne, encaisse, carte de crédit. revenus et dépenses.
+			La plupart des utilisateurs sélectionneront ce groupe/hiérarchie  de comptes.  Il inclut des comptes de base couramment utilisés par les particuliers, tels que compte chèques, compte d'épargne, encaisse, carte de crédit. revenus et dépenses.
 		</gnc-act:long-description>    
 		<gnc-act:start-selected>1</gnc-act:start-selected>
 		<gnc:account version="2.0.0">

commit 00c72830d8c71fb29a26eb3f7a54977bef428d68
Author: fell <f.ellenberger at online.de>
Date:   Tue Feb 9 18:29:35 2016 +0100

    Add comment about replacement of 10000 BYR by 1 BYN
    
    Supplement of commit 10fbd1f

diff --git a/src/engine/iso-4217-currencies.xml b/src/engine/iso-4217-currencies.xml
index 2078067..6bbda4c 100644
--- a/src/engine/iso-4217-currencies.xml
+++ b/src/engine/iso-4217-currencies.xml
@@ -553,6 +553,7 @@
   local-symbol=""
 />
 <!-- "BYR" - "Belarussian Ruble"
+  2017-01-01 "BYN" 10000
 -->
 <currency
   isocode="BYR"

commit 6e50516c1d775bd6bca498b2ea3390eb12125273
Author: RobGowin <robgowin at gmail.com>
Date:   Wed Jan 27 14:50:51 2016 -0600

    cmake - Increase test pass rate on Windows

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 13632ae..ae4e82b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -91,7 +91,10 @@ IF(GNC_BUILD_AS_INSTALL)
 ENDIF()
 
 SET(SHELL_FROM_ENV $ENV{SHELL})
-SET(SHELL bin/bash)
+SET(SHELL /bin/bash)
+IF (WIN32)
+  SET(SHELL ${CMAKE_PREFIX_PATH}/mingw/msys/1.0/bin/bash.exe)
+ENDIF()
 IF (SHELL_FROM_ENV) # Replacing this with IF ($ENV{SHELL}) doesn't work.
   SET(SHELL ${SHELL_FROM_ENV})
 ENDIF()
@@ -224,16 +227,10 @@ IF (GUILE2_FOUND) # found guile-2.0
   ADD_DEFINITIONS (-DHAVE_GUILE20)
   SET(HAVE_GUILE2 TRUE)
   SET(GUILE_EFFECTIVE_VERSION 2.0)
-  # We also need to look up the executable
-  FIND_PROGRAM (GUILE_EXECUTABLE guile)
-  FIND_PROGRAM (GUILD_EXECUTABLE guild)
-
   SET(GUILE_INCLUDE_DIRS ${GUILE2_INCLUDE_DIRS})
   SET(GUILE_LDFLAGS ${GUILE2_LDFLAGS})
 
-  IF (NOT GUILE_EXECUTABLE)
-    MESSAGE (SEND_ERROR "The guile executable was not found, but is required. Please set GUILE_EXECUTABLE.")
-  ENDIF (NOT GUILE_EXECUTABLE)
+  FIND_PROGRAM (GUILD_EXECUTABLE guild)
   IF (NOT GUILD_EXECUTABLE)
     MESSAGE (SEND_ERROR "The guild executable was not found, but is required. Please set GUILD_EXECUTABLE.")
   ENDIF (NOT GUILD_EXECUTABLE)
@@ -245,13 +242,18 @@ ELSE()
     MESSAGE (SEND_ERROR "Neither guile 1.8 nor guile 2.0 where find. Please set PKG_CONFIG_PATH one of these is found.")
   ENDIF(NOT GUILE1_FOUND)
 
-  SET(GUILE_INCLUDE_DIRS ${GUILE1_INCLUDE_DIRS})
-  SET(GUILE_LDFLAGS ${GUILE1_LDFLAGS})
   SET(HAVE_GUILE1 TRUE)
   SET(GUILE_EFFECTIVE_VERSION 1.8)
+  SET(GUILE_INCLUDE_DIRS ${GUILE1_INCLUDE_DIRS})
+  SET(GUILE_LDFLAGS ${GUILE1_LDFLAGS})
   MESSAGE(STATUS "Using guile-1.8.x")
 ENDIF()
 
+FIND_PROGRAM (GUILE_EXECUTABLE guile)
+IF (NOT GUILE_EXECUTABLE)
+  MESSAGE (SEND_ERROR "The guile executable was not found, but is required. Please set GUILE_EXECUTABLE.")
+ENDIF (NOT GUILE_EXECUTABLE)
+
 # Qt
 IF (WITH_CUTECASH)
   SET (QT_MIN_VERSION "4.5.0")
@@ -402,7 +404,7 @@ ADD_CUSTOM_TARGET(check
      scm-test-core scm-test-report-system scm-standard-reports-2
      scm-test-standard-reports foo gncmodfoo baz gncmodbaz
      bar gncmodbar gncmod_agedver gncmod_incompatdep
-     gncmod_futuremodsys
+     gncmod_futuremodsys test-core-guile
 )
 IF (NOT WIN32)
   ADD_DEPENDENCIES(check gncmod-backend-xml-link)
diff --git a/src/backend/dbi/test/CMakeLists.txt b/src/backend/dbi/test/CMakeLists.txt
index d3e7c80..0871be6 100644
--- a/src/backend/dbi/test/CMakeLists.txt
+++ b/src/backend/dbi/test/CMakeLists.txt
@@ -20,12 +20,15 @@ SET(test_dbi_backend_SOURCES
   test-dbi-stuff.c
 )
 
-GNC_ADD_TEST(test-backend-dbi "${test_dbi_backend_SOURCES}"
-  BACKEND_DBI_TEST_INCLUDE_DIRS BACKEND_DBI_TEST_LIBS
-)
+# This test does not work on Win32
+IF (NOT WIN32)
+  GNC_ADD_TEST(test-backend-dbi "${test_dbi_backend_SOURCES}"
+    BACKEND_DBI_TEST_INCLUDE_DIRS BACKEND_DBI_TEST_LIBS
+  )
 
-TARGET_COMPILE_DEFINITIONS(test-backend-dbi PRIVATE
-  TEST_MYSQL_URL=\"${TEST_MYSQL_URL}\"
-  TEST_PGSQL_URL=\"${TEST_PGSQL_URL}\"
-  DBI_TEST_XML_FILENAME=\"${CMAKE_CURRENT_SOURCE_DIR}/test-dbi.xml\"
-)
\ No newline at end of file
+  TARGET_COMPILE_DEFINITIONS(test-backend-dbi PRIVATE
+    TEST_MYSQL_URL=\"${TEST_MYSQL_URL}\"
+    TEST_PGSQL_URL=\"${TEST_PGSQL_URL}\"
+    DBI_TEST_XML_FILENAME=\"${CMAKE_CURRENT_SOURCE_DIR}/test-dbi.xml\"
+  )
+ENDIF()
\ No newline at end of file
diff --git a/src/cmake_modules/GncAddTest.cmake b/src/cmake_modules/GncAddTest.cmake
index 3284ce8..9692c5e 100644
--- a/src/cmake_modules/GncAddTest.cmake
+++ b/src/cmake_modules/GncAddTest.cmake
@@ -1,4 +1,42 @@
 
+
+FUNCTION(GET_GUILE_ENV)
+  SET(_GNC_MODULE_PATH ${CMAKE_BINARY_DIR}/lib:${CMAKE_BINARY_DIR}/lib/gnucash)
+  IF (WIN32)
+    SET(_GNC_MODULE_PATH ${CMAKE_BINARY_DIR}/bin)
+  ENDIF()
+  SET(env "")
+  LIST(APPEND env "GNC_UNINSTALLED=yes")
+  LIST(APPEND env "GNC_BUILDDIR=${CMAKE_BINARY_DIR}")
+  LIST(APPEND env "GUILE_WARN_DEPRECATED=no")
+  LIST(APPEND env "GNC_MODULE_PATH=${_GNC_MODULE_PATH}")
+  IF (APPLE)
+    LIST(APPEND env "DYLD_LIBRARY_PATH=${_GNC_MODULE_PATH}")
+  ENDIF()
+  IF (UNIX)
+    LIST(APPEND env LD_LIBRARY_PATH=${_GNC_MODULE_PATH})
+  ENDIF()
+  IF (NOT WIN32)
+    LIST(APPEND env "GUILE_LOAD_COMPILED_PATH=${CMAKE_BINARY_DIR}/lib/gnucash/scm/ccache/2.0")
+  ENDIF()
+  SET(guile_load_paths "")
+  LIST(APPEND guile_load_paths ${CMAKE_CURRENT_SOURCE_DIR}/mod-foo)
+  LIST(APPEND guile_load_paths ${CMAKE_CURRENT_SOURCE_DIR}/mod-bar)
+  LIST(APPEND guile_load_paths ${CMAKE_CURRENT_SOURCE_DIR}/mod-baz)
+  IF (WIN32)
+    LIST(APPEND guile_load_paths ${CMAKE_BINARY_DIR}/share/gnucash/scm)
+  ENDIF()
+  SET(guile_load_path "${guile_load_paths}")
+  IF (WIN32)
+    STRING(REPLACE ";" "\\\\;" GUILE_LOAD_PATH "${guile_load_path}")
+  ELSE()
+    STRING(REPLACE ";" ":" GUILE_LOAD_PATH "${guile_load_path}")
+  ENDIF()
+  LIST(APPEND env "GUILE_LOAD_PATH=${GUILE_LOAD_PATH}")
+  SET(GUILE_ENV ${env} PARENT_SCOPE)
+ENDFUNCTION()
+
+
 FUNCTION(GNC_ADD_TEST _TARGET _SOURCE_FILES TEST_INCLUDE_VAR_NAME TEST_LIBS_VAR_NAME)
   SET(HAVE_ENV_VARS FALSE)
   IF (${ARGC} GREATER 4)
@@ -14,7 +52,7 @@ FUNCTION(GNC_ADD_TEST _TARGET _SOURCE_FILES TEST_INCLUDE_VAR_NAME TEST_LIBS_VAR_
   IF (${HAVE_ENV_VARS})
     SET(CMAKE_COMMAND_TMP "")
     IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
-      SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
+      SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env "${ARGN}")
     ENDIF()
     ADD_TEST(${_TARGET} ${CMAKE_COMMAND_TMP}
       ${CMAKE_BINARY_DIR}/bin/${_TARGET}
@@ -27,16 +65,9 @@ FUNCTION(GNC_ADD_TEST _TARGET _SOURCE_FILES TEST_INCLUDE_VAR_NAME TEST_LIBS_VAR_
 ENDFUNCTION()
 
 FUNCTION(GNC_ADD_TEST_WITH_GUILE _TARGET _SOURCE_FILES TEST_INCLUDE_VAR_NAME TEST_LIBS_VAR_NAME)
-  SET(_GNC_MODULE_PATH ${CMAKE_BINARY_DIR}/lib:${CMAKE_BINARY_DIR}/lib/gnucash)
+  GET_GUILE_ENV()
   GNC_ADD_TEST(${_TARGET} "${_SOURCE_FILES}" "${TEST_INCLUDE_VAR_NAME}" "${TEST_LIBS_VAR_NAME}"
-    GNC_UNINSTALLED=yes
-    GNC_BUILDDIR=${CMAKE_BINARY_DIR}
-    GUILE_WARN_DEPRECATED=no
-    GNC_MODULE_PATH=${_GNC_MODULE_PATH}
-    DYLD_LIBRARY_PATH=${_GNC_MODULE_PATH}
-    LD_LIBRARY_PATH=${_GNC_MODULE_PATH}
-    GUILE_LOAD_COMPILED_PATH=${CMAKE_BINARY_DIR}/lib/gnucash/scm/ccache/2.0
-    ${ARGN}
+    "${GUILE_ENV};${ARGN}"
   )
 ENDFUNCTION()
 
@@ -46,19 +77,9 @@ FUNCTION(GNC_ADD_SCHEME_TEST _TARGET _SOURCE_FILE)
   IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
     SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
   ENDIF()
-  SET(_GNC_MODULE_PATH ${CMAKE_BINARY_DIR}/lib:${CMAKE_BINARY_DIR}/lib/gnucash)
-  SET(GUILE_ENV
-    GNC_UNINSTALLED=yes
-    GNC_BUILDDIR=${CMAKE_BINARY_DIR}
-    GUILE_WARN_DEPRECATED=no
-    GNC_MODULE_PATH=${_GNC_MODULE_PATH}
-    DYLD_LIBRARY_PATH=${_GNC_MODULE_PATH}
-    LD_LIBRARY_PATH=${_GNC_MODULE_PATH}
-    GUILE_LOAD_COMPILED_PATH=${CMAKE_BINARY_DIR}/lib/gnucash/scm/ccache/2.0
-    ${ARGN}
-  )
   ADD_TEST(${_TARGET} ${CMAKE_COMMAND_TMP}
     ${GUILE_EXECUTABLE} --debug -l ${CMAKE_CURRENT_SOURCE_DIR}/${_SOURCE_FILE} -c "(exit (run-test))"
   )
-  SET_TESTS_PROPERTIES(${_TARGET} PROPERTIES ENVIRONMENT "${GUILE_ENV}")
+  GET_GUILE_ENV()
+  SET_TESTS_PROPERTIES(${_TARGET} PROPERTIES ENVIRONMENT "${GUILE_ENV};${ARGN}")
 ENDFUNCTION()
diff --git a/src/engine/test/CMakeLists.txt b/src/engine/test/CMakeLists.txt
index b66c1bc..d5be7e6 100644
--- a/src/engine/test/CMakeLists.txt
+++ b/src/engine/test/CMakeLists.txt
@@ -42,8 +42,11 @@ SET(test_engine_SOURCES
   utest-Transaction.c
 )
 
-ADD_ENGINE_TEST(test-engine "${test_engine_SOURCES}")
-TARGET_COMPILE_OPTIONS(test-engine PRIVATE -Wno-write-strings)
+# This test does not run on Win32
+IF (NOT WIN32)
+  ADD_ENGINE_TEST(test-engine "${test_engine_SOURCES}")
+  TARGET_COMPILE_OPTIONS(test-engine PRIVATE -Wno-write-strings)
+ENDIF()
 
 ADD_ENGINE_TEST(test-account-object test-account-object.c)
 ADD_ENGINE_TEST(test-group-vs-book test-group-vs-book.c)
@@ -63,6 +66,7 @@ ADD_ENGINE_TEST(test-vendor test-vendor.c)
 
 ############################
 # This is a C test that needs GUILE environment variables set.
+# It does not pass on Win32.
 GNC_ADD_TEST_WITH_GUILE(test-scm-query test-scm-query.c ENGINE_TEST_INCLUDE_DIRS ENGINE_TEST_LIBS)
 ############################
 
diff --git a/src/gnc-module/test/CMakeLists.txt b/src/gnc-module/test/CMakeLists.txt
index b9de8a4..8bbd424 100644
--- a/src/gnc-module/test/CMakeLists.txt
+++ b/src/gnc-module/test/CMakeLists.txt
@@ -1,6 +1,4 @@
 
-# TESTCOUNTS: { dir: gnc-module/test, test_count: 12 }
-
 ADD_SUBDIRECTORY(mod-foo)
 ADD_SUBDIRECTORY(mod-bar)
 ADD_SUBDIRECTORY(mod-baz)
@@ -21,45 +19,30 @@ MACRO(ADD_GNC_MODULE_TEST _TARGET _SOURCE_FILES)
   GNC_ADD_TEST(${_TARGET} "${_SOURCE_FILES}" GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS)
 ENDMACRO()
 
-SET(_GNC_MODULE_PATH ${CMAKE_BINARY_DIR}/lib:${CMAKE_BINARY_DIR}/lib/gnucash)
-SET(GUILE_ENV
-  GNC_UNINSTALLED=yes
-  GNC_BUILDDIR=${CMAKE_BINARY_DIR}
-  GUILE_WARN_DEPRECATED=no
-  GNC_MODULE_PATH=${_GNC_MODULE_PATH}
-  DYLD_LIBRARY_PATH=${_GNC_MODULE_PATH}
-  LD_LIBRARY_PATH=${_GNC_MODULE_PATH}
-  GUILE_LOAD_COMPILED_PATH=${CMAKE_BINARY_DIR}/lib/gnucash/scm/ccache/2.0
-)
-
-
 FUNCTION(RUN_TEST_WITH_GUILE _TARGET _SOURCE_FILE)
+  GET_GUILE_ENV()
   SET(CMAKE_COMMAND_TMP "")
   IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
-    SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
+    SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env "${GUILE_ENV}")
   ENDIF()
   ADD_TEST(NAME ${_TARGET}
     COMMAND ${CMAKE_COMMAND_TMP}
       ${GUILE_EXECUTABLE} -s ${_SOURCE_FILE}
   )
+
   SET_TESTS_PROPERTIES(${_TARGET} PROPERTIES ENVIRONMENT "${GUILE_ENV};${ARGN}")
 ENDFUNCTION()
 
-GNC_ADD_TEST_WITH_GUILE(test-load-c test-load-c.c GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS
-  GUILE_LOAD_PATH=${CMAKE_CURRENT_SOURCE_DIR}/mod-foo
-)
+GNC_ADD_TEST_WITH_GUILE(test-load-c test-load-c.c GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS)
+
+RUN_TEST_WITH_GUILE(test-load-scm ${CMAKE_CURRENT_SOURCE_DIR}/test-load-scm.in)
+
+RUN_TEST_WITH_GUILE(test-load-deps ${CMAKE_CURRENT_SOURCE_DIR}/test-load-deps.in)
 
-RUN_TEST_WITH_GUILE(test-load-scm ${CMAKE_CURRENT_SOURCE_DIR}/test-load-scm.in
-  GUILE_LOAD_PATH=${CMAKE_CURRENT_SOURCE_DIR}/mod-foo
-)
-RUN_TEST_WITH_GUILE(test-load-deps ${CMAKE_CURRENT_SOURCE_DIR}/test-load-deps.in
-  GUILE_LOAD_PATH=${CMAKE_CURRENT_SOURCE_DIR}/mod-foo:${CMAKE_CURRENT_SOURCE_DIR}/mod-baz
-)
 RUN_TEST_WITH_GUILE(test-scm-init ${CMAKE_CURRENT_SOURCE_DIR}/test-scm-init.in)
 
-RUN_TEST_WITH_GUILE(test-scm-multi ${CMAKE_CURRENT_SOURCE_DIR}/test-scm-multi.in
-  GUILE_LOAD_PATH=${CMAKE_CURRENT_SOURCE_DIR}/mod-foo:${CMAKE_CURRENT_SOURCE_DIR}/mod-bar
-)
+RUN_TEST_WITH_GUILE(test-scm-multi ${CMAKE_CURRENT_SOURCE_DIR}/test-scm-multi.in)
+
 RUN_TEST_WITH_GUILE(test-scm-dynload ${CMAKE_CURRENT_SOURCE_DIR}/test-scm-dynload.in)
 
 GNC_ADD_TEST_WITH_GUILE(test-modsysver test-modsysver.c
@@ -72,9 +55,13 @@ GNC_ADD_TEST_WITH_GUILE(test-agedver test-agedver.c
   GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS
 )
 
+SET(_LIBDIR ${CMAKE_BINARY_DIR}/lib)
+IF (WIN32)
+  SET(_LIBDIR ${CMAKE_BINARY_DIR}/bin)
+ENDIF()
 GNC_ADD_TEST(test-dynload test-dynload.c
   GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS
-  LIBDIR=${CMAKE_BINARY_DIR}/lib
+  LIBDIR=${_LIBDIR}
 )
 
 SET(GUILE ${GUILE_EXECUTABLE})
@@ -82,22 +69,19 @@ CONFIGURE_FILE(test-gwrapped-c.in test-gwrapped-c)
 CONFIGURE_FILE(test-scm-module.in test-scm-module)
 
 FUNCTION(RUN_GUILE_SHELL_TEST _TARGET _SOURCE_FILE)
+  GET_GUILE_ENV()
   SET(CMAKE_COMMAND_TMP "")
   IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
-    SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
+    SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env "${GUILE_ENV}")
   ENDIF()
   ADD_TEST(NAME ${_TARGET}
     COMMAND ${CMAKE_COMMAND_TMP}
       ${SHELL} ${_SOURCE_FILE}
   )
-  SET_TESTS_PROPERTIES(${_TARGET} PROPERTIES ENVIRONMENT "${GUILE_ENV};${ARGN}")
+  SET_TESTS_PROPERTIES(${_TARGET} PROPERTIES ENVIRONMENT "${GUILE_ENV}")
 ENDFUNCTION()
 
-RUN_GUILE_SHELL_TEST(test-gwrapped-c ${CMAKE_CURRENT_BINARY_DIR}/test-gwrapped-c
-  GUILE_LOAD_PATH=${CMAKE_CURRENT_SOURCE_DIR}/mod-foo
-)
+RUN_GUILE_SHELL_TEST(test-gwrapped-c ${CMAKE_CURRENT_BINARY_DIR}/test-gwrapped-c)
 
-RUN_GUILE_SHELL_TEST(test-scm-module ${CMAKE_CURRENT_BINARY_DIR}/test-scm-module
-  GUILE_LOAD_PATH=${CMAKE_CURRENT_SOURCE_DIR}/mod-foo
-)
+RUN_GUILE_SHELL_TEST(test-scm-module ${CMAKE_CURRENT_BINARY_DIR}/test-scm-module)
 
diff --git a/src/gnc-module/test/test-dynload.c b/src/gnc-module/test/test-dynload.c
index def77bf..fe2718b 100644
--- a/src/gnc-module/test/test-dynload.c
+++ b/src/gnc-module/test/test-dynload.c
@@ -53,7 +53,14 @@ guile_main(void *closure, int argc, char ** argv)
     g_test_message("  test-dynload.c: testing dynamic linking of libgnc-module ...");
 #ifdef G_OS_WIN32
 /* MinGW builds libgnc-module-0.dll */
-    modpath = g_module_build_path ("../.libs", "gnc-module-0");
+    if (libdir == NULL)
+    {
+        modpath = g_module_build_path ("../.libs", "gnc-module-0");
+    }
+    else
+    {
+        modpath = g_module_build_path (libdir, "gnc-module");
+    }
 #elif defined(PLATFORM_OSX)
 /* We build libgnc-module as a shared library for testing, and on OSX
  * that means that g_module_build_path (), which uses ".so", doesn't
diff --git a/src/import-export/csv-imp/test/CMakeLists.txt b/src/import-export/csv-imp/test/CMakeLists.txt
index 6dd3fc3..c33f23b 100644
--- a/src/import-export/csv-imp/test/CMakeLists.txt
+++ b/src/import-export/csv-imp/test/CMakeLists.txt
@@ -15,8 +15,11 @@ SET(test_csv_imp_SOURCES
   utest-gnc-csv-model.c
 )
 
-GNC_ADD_TEST(test-csv-imp "${test_csv_imp_SOURCES}"
-  CSV_IMP_TEST_INCLUDE_DIRS CSV_IMP_TEST_LIBS
-  SRCDIR=${CMAKE_CURRENT_SOURCE_DIR}
-)
+# This test does not run in Win32
+IF (NOT WIN32)
+  GNC_ADD_TEST(test-csv-imp "${test_csv_imp_SOURCES}"
+    CSV_IMP_TEST_INCLUDE_DIRS CSV_IMP_TEST_LIBS
+    SRCDIR=${CMAKE_CURRENT_SOURCE_DIR}
+  )
+ENDIF()
 
diff --git a/src/libqof/qof/test/CMakeLists.txt b/src/libqof/qof/test/CMakeLists.txt
index 61fdc68..51b0f49 100644
--- a/src/libqof/qof/test/CMakeLists.txt
+++ b/src/libqof/qof/test/CMakeLists.txt
@@ -22,5 +22,10 @@ SET(test_qof_SOURCES
   ${CMAKE_SOURCE_DIR}/src/test-core/unittest-support.c
 )
 
-GNC_ADD_TEST(test-qof "${test_qof_SOURCES}" TEST_QOF_INCLUDE_DIRS TEST_QOF_LIBS)
-TARGET_COMPILE_DEFINITIONS(test-qof PRIVATE TESTPROG=test_qof)
+# This test does not on Win32. Worse, it causes a dialog box to
+# pop up due to an assertion. This interferes with running the tests
+# unattended.
+IF (NOT WIN32)
+  GNC_ADD_TEST(test-qof "${test_qof_SOURCES}" TEST_QOF_INCLUDE_DIRS TEST_QOF_LIBS)
+  TARGET_COMPILE_DEFINITIONS(test-qof PRIVATE TESTPROG=test_qof)
+ENDIF()

commit 17033c64d83a7d940b686dea20e6c0c5d79f815b
Author: Prayag Verma <prayag.verma at gmail.com>
Date:   Mon Feb 1 00:10:46 2016 +0530

    Fix Typos in doc/README.translator.txt
    
    Convert file to UTF-8
    Spelling mistakes fixed -
    begining > beginning
    tranlation > translation

diff --git a/doc/README.translator.txt b/doc/README.translator.txt
index 00f4189..4fe4ff7 100644
--- a/doc/README.translator.txt
+++ b/doc/README.translator.txt
@@ -48,7 +48,7 @@ You need to update this with the current information.
 
 For example in the de.po file, we have this:
 
-# Messages in Deutsch für GnuCash
+# Messages in Deutsch für GnuCash
 # Copyright (C) 1999 Free Software Foundation, Inc.
 # Jan-Uwe Finck <Jan-Uwe.Finck at bigfoot.de>, 1999.
 
@@ -64,14 +64,14 @@ msgid ""
 "The GNU way to manage your money!"
 msgstr ""
 
-After, the tranlation in the de.po file:
+After, the translation in the de.po file:
 
 #: messages-i18n.c:11
 msgid ""
 "The GnuCash personal finance manager.\n"
 "The GNU way to manage your money!"
 msgstr ""
-"GnuCash: Ihr persönlicher Finanzmanager.\n"
+"GnuCash: Ihr persönlicher Finanzmanager.\n"
 "Der GNU-Weg, ihr Geld zu verwalten !"
 
 
@@ -145,7 +145,7 @@ msgid ""
 "\n"
 "%s"
 msgstr ""
-"Es gab einen Fehler beim Öffnen der Datei. \n"
+"Es gab einen Fehler beim Öffnen der Datei. \n"
 "     %s."
 
 You need to correct the translated string and remove the 'fuzzy' keyword.
@@ -159,7 +159,7 @@ msgid ""
 "\n"
 "%s"
 msgstr ""
-"Es gab einen Fehler beim Öffnen der Datei. \n"
+"Es gab einen Fehler beim Öffnen der Datei. \n"
 "     %s."
 
 2) You have this:
@@ -205,7 +205,7 @@ For each file:
 4) Change the gnc-act:title, gnc-act:short-description, and
    gnc-act:long-description to contain appropriately translated text.
    Do not add any newlines in the long description except at the end
-   and begining of the string.
+   and beginning of the string.
 5) For each gnc:account in the file translate the act:name, and
    act:description fields.  Please do not translate any other fields.
 



Summary of changes:
 CMakeLists.txt                                  |  24 +--
 accounts/fr_CA/acctchrt_basecommune.gnucash-xea |   2 +-
 doc/README.translator.txt                       |  12 +-
 doc/tip_of_the_day.list.in                      |  11 +-
 po/pt.po                                        | 198 ++++++++++++------------
 src/app-utils/gnc-gsettings.c                   |   6 +-
 src/app-utils/gnc-state.c                       |   3 +-
 src/backend/dbi/test/CMakeLists.txt             |  19 ++-
 src/business/business-gnome/dialog-invoice.c    |  10 +-
 src/cmake_modules/GncAddTest.cmake              |  65 +++++---
 src/core-utils/gnc-features.c                   |   1 +
 src/core-utils/gnc-features.h                   |   1 +
 src/core-utils/gnc-filepath-utils.c             |  12 +-
 src/engine/gnc-commodity.c                      |  26 +++-
 src/engine/iso-4217-currencies.xml              |   1 +
 src/engine/test/CMakeLists.txt                  |   8 +-
 src/gnc-module/test/CMakeLists.txt              |  56 +++----
 src/gnc-module/test/test-dynload.c              |   9 +-
 src/gnome-utils/gnc-plugin-menu-additions.c     |  12 ++
 src/gnome-utils/gnc-tree-view.c                 |   1 +
 src/gnome/gnc-plugin-page-budget.c              |   2 +
 src/gnome/gnc-split-reg2.c                      |   1 +
 src/import-export/csv-imp/test/CMakeLists.txt   |  11 +-
 src/libqof/qof/test/CMakeLists.txt              |   9 +-
 src/plugins/bi_import/dialog-bi-import.c        |   9 +-
 25 files changed, 294 insertions(+), 215 deletions(-)



More information about the gnucash-changes mailing list