gnucash master: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Fri Oct 14 14:31:20 EDT 2022


Updated	 via  https://github.com/Gnucash/gnucash/commit/939a7740 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/7f2a09a6 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/fe9b23ff (commit)
	 via  https://github.com/Gnucash/gnucash/commit/88d658fe (commit)
	 via  https://github.com/Gnucash/gnucash/commit/50c72b4f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/7d93774d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/81d4ea95 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/c78fe37f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/99dffa71 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/90bcde2c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/70c9d4c9 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/97e730b8 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/673a9255 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e817091d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/7eaa0eb2 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d97ea777 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6ffb0bb6 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/4c47e911 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6db7800c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/29ce9256 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b5bc6463 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/19064093 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/734fb6ce (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d3072950 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/2b870666 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/a82c72cf (commit)
	 via  https://github.com/Gnucash/gnucash/commit/37dfab7f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/dd831671 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e3ab3845 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b8642e55 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/4dd39228 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/784aca5a (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e9577b79 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/277f299a (commit)
	 via  https://github.com/Gnucash/gnucash/commit/585de5d1 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/70ab8a8a (commit)
	 via  https://github.com/Gnucash/gnucash/commit/4c286396 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/7765e137 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e5c6f602 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e97fc3e4 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/bf357315 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/8c08feda (commit)
	 via  https://github.com/Gnucash/gnucash/commit/8896d61c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/fbf9aecd (commit)
	 via  https://github.com/Gnucash/gnucash/commit/1a0be99b (commit)
	 via  https://github.com/Gnucash/gnucash/commit/a00bce16 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/fcbe6cf1 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/5c13da0e (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6ecc1ef7 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/65ae4642 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/3685e5de (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6ce91d7f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/616a672d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/a6771754 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/f3fdc5de (commit)
	 via  https://github.com/Gnucash/gnucash/commit/1d94887a (commit)
	 via  https://github.com/Gnucash/gnucash/commit/466db526 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/8c4bd86c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/9d62755b (commit)
	 via  https://github.com/Gnucash/gnucash/commit/32df095d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d79306f7 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/f658ff40 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/8b772384 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/2f7ed7f2 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b0ae402c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/3c75d212 (commit)
	from  https://github.com/Gnucash/gnucash/commit/3c306eae (commit)



commit 939a77407c137db37e95ee78917e6cdff97453c2
Merge: 3c306eae6 7f2a09a69
Author: John Ralls <jralls at ceridwen.us>
Date:   Fri Oct 14 11:25:14 2022 -0700

    Merge branch 'price-quotes-cpp'

commit 7f2a09a69fda5b54b0e349910480384271db4456
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Oct 13 17:59:14 2022 -0700

    [price-quotes] Handle short error strings from finance-quote-wrapper.
    
    This keeps the translation work in GnuCash and improves the error
    signalling in gnc-quotes.

commit fe9b23ff2bec973b37f5131365f4551558d12baa
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Oct 13 17:57:11 2022 -0700

    [price quotes] Pass short errors to gnc-quotes.
    
    And wordier but not translated messages when STDERR is a tty.

commit 88d658fef01dee84802ae66ed5919e0f9b7a327c
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Oct 13 14:58:27 2022 -0700

    [price-quotes] Date::Manip is no longer required.

commit 50c72b4f88387465b346da28618bb96f7277a8e5
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Oct 13 14:28:17 2022 -0700

    [price-quotes] Remove m_ready and usable() from GncQuoteSource.
    
    GncQuoteSource ctor throws if something is wrong so usable is always true.

commit 7d93774dd23a5287db5c9312d899fb0296ad4d7b
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Oct 13 13:51:37 2022 -0700

    [price-quotes] Throw instead of returning if there aren't any commodities to quote.
    
    So that the user gets sees an error instead of silent failure.

commit 81d4ea9550d70a74d8a1ebb85c827185b50aa605
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Oct 13 12:58:09 2022 -0700

    [price-quotes] Remove F::Q version format check.
    
    We don't care what the version string looks like as long as there is one.

commit c78fe37ff7c8a19d75239922d722aeaf494c5424
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Oct 13 12:52:36 2022 -0700

    [price-quotes] General typo fixes and code cleanup.

commit 99dffa71206b1c2e9849b8f372ad2135a4431bc3
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Oct 13 12:51:48 2022 -0700

    [price-quotes] Use c++ syntax for PricesDialog decl.

commit 90bcde2cfbc8533aeb4a9d695398ff10299216ed
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Oct 13 12:37:54 2022 -0700

    [price-quotes] Rename Gnucash::quotes_info to Gnucash::check_finance_quote.

commit 70c9d4c9e31b1d610ffce519026c986f0cda9882
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Oct 13 12:01:36 2022 -0700

    [price-quotes] Fix version retrieval.
    
    Plus there's no need for a "not found" version string because GncQuotes
    construction will throw if Finance::Quote isn't correctly installed. No
    object, nothing to call version() on.

commit 97e730b8d81c75798472e0afb0fb1d37fcf2e92f
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Oct 13 11:24:49 2022 -0700

    [price-quotes] Reformat test quote response strings to one line per quote.

commit 673a9255544c7cfa70ae8936a3465d210019e40b
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat Oct 1 17:15:39 2022 -0700

    [price-quotes] Remove superseded gnc-fq-dump and Quotes-example.pl

commit e817091de13e27a8b5d7dcee8c68e4f02fc68cc0
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat Oct 1 17:01:48 2022 -0700

    [price-quotes] Warn only once if the AlphaVantage Key isn't set.
    
    And check the environment if it's not in preferences.

commit 7eaa0eb292f080acbc86f7b5c2a929f3c99fcfc3
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat Oct 1 16:07:23 2022 -0700

    [price-quotes] Add dump command to gnucash-cli.

commit d97ea7776290af70cbe50cf50bcaf4a91c584d51
Author: John Ralls <jralls at ceridwen.us>
Date:   Tue Sep 27 15:05:04 2022 -0700

    [price quotes] Add report member function to display quote information to stdout.
    
    Instead of creating price instances in the database.

commit 6ffb0bb633f21e24e710fba09b7a0963a318eb1d
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Sep 18 15:06:59 2022 -0700

    [price-quotes] Report quote fetch failures to the user.

commit 4c47e911808e8d4e77037b4f074473799101776e
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat Sep 17 11:52:15 2022 -0700

    [price-quotes] Implement error codes for currency and quote failures.

commit 6db7800ca523c56c317d9fe572401819eb4f9511
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat Sep 17 11:03:53 2022 -0700

    [price-quotes] Doxygen docs.

commit 29ce9256463495894ac929f0885eab811b1c4a07
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Sep 12 18:39:18 2022 -0700

    [price-quotes] Test the other fetch overloads and quote values.

commit b5bc6463a313beeb7b58470d0ff87f0c08135bc0
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Sep 12 18:17:12 2022 -0700

    [price-quotes] Rework date-time handling.
    
    A check of the F::Q modules found that the only ones that return a quote
    time return a bogus one and do so only to mollify GnuCash.
    
    Since there's no good way to determine the TZ of the exchange originating
    the quote there's no good way to decide if the quote is current or from
    a previous market session, so we just punt and use a time of 16:00 for
    all quotes.

commit 19064093d2ae0326263215dba8be98ff8bd350c9
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat Sep 10 17:29:23 2022 -0700

    [price-quotes] Remove m_comm_vec and m_fq_answer.
    
    Passing the intermediate values comm_vec and quote_str on the stack instead.

commit 734fb6ce2a7d875491794d1e7d0605a1ef1ed033
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat Sep 10 16:18:32 2022 -0700

    [price-quotes] Switch error handling to exceptions.
    
    Allows for cleaner code with less state, less coupling of the GncQuotes
    class, and better transfer of error messages to client code.
    
    Also translates some error messages for presentation to users.

commit d3072950763c5dc5afad5f656e082869e487bf36
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat Sep 10 13:30:15 2022 -0700

    [price-quotes] Paramaterize GncMockQuoteSource construction.
    
    So we can have different results passed back for different tests.

commit 2b870666871f07d79f83b21ee7fad69890e7e7ae
Author: John Ralls <jralls at ceridwen.us>
Date:   Fri Sep 9 16:31:45 2022 -0700

    [price-quotes] Extract some static functions.
    
    To get  GncQuoteImpl::parse_one_quote to a reasonable size.

commit a82c72cfb9c53f5f8d2b93a87cd707e489a7b4f5
Author: John Ralls <jralls at ceridwen.us>
Date:   Fri Sep 9 14:57:51 2022 -0700

    [price-quotes] Remove level of indirection when parsing quote data.

commit 37dfab7f31cc541c5458c1204cd5a308914f9e92
Author: John Ralls <jralls at ceridwen.us>
Date:   Fri Sep 2 11:16:06 2022 -0700

    [price-quotes] Convert long quote parsing lambda to a regular function.
    
    To begin separating price parsing from inserting in the price db.

commit dd8316714bf1042bea03b11565afaebef7c96669
Author: John Ralls <jralls at ceridwen.us>
Date:   Fri Sep 2 10:13:09 2022 -0700

    [price-quotes] Extract function GncQuotesImpl::comm_vec_to_json_string.

commit e3ab384504d2d7fb2c36229536ddb3ec743f4269
Author: John Ralls <jralls at ceridwen.us>
Date:   Fri Sep 2 09:58:48 2022 -0700

    [price-quotes] Log messages instead of writing them to std::streams.

commit b8642e55d9da9671dae90ef7f3b5d8adc22b3854
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Sep 1 17:11:40 2022 -0700

    [price-quotes] Implement mock quote source.
    
    Note that because the non-default constructor exists only on GncQuotesImpl
    we must use that directly and violate the pimpl.

commit 4dd39228711aea2382a53661ccc488242c00acda
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Sep 1 15:46:47 2022 -0700

    [price-quotes] Make wiggle test conditional on F::Q being installed.

commit 784aca5a4c8ad99378b39eb554bfc493b8f68a6c
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Sep 1 15:07:44 2022 -0700

    [price-quotes] Extract class GncQuoteSource.
    
    Provide a specialization GncFQQuoteSource and move the F::Q command
    construction and query functions to GncFQQuoteSource.
    
    This allows for dependency injection to provide testing that doesn't
    need F::Q to be installed.

commit e9577b7996b9faaf1858b649218d696afb11fda6
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Sep 1 12:40:50 2022 -0700

    [price-quotes] Basic wiggle test.

commit 277f299ad625daa641baaced2b723063d8eafb34
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Mar 19 18:06:23 2021 +0100

    GncQuotes - cleanups
    
    - make more use of auto
    - mark user visible strings as translatable
    - return early on input errors
    - fix date conversion fallback to actually fall back to today

commit 585de5d1349acd178044c7ef208e9e6eb2f0b32c
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Mar 19 17:46:46 2021 +0100

    GncQuotes - break actual interaction with Finance::Quote out into a separate function query_fq
    
    That allows for later reuse and easier testing.

commit 70ab8a8a462b2bf99215ddfcea131ae8e0d6cd98
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu Mar 18 19:12:23 2021 +0100

    GncQuotes - drop parameterized constructor
    
    The book parameter is only needed while fetching quotes.
    In case the user passes one or more commodities to process
    the book can be readily derived from the commodity/commodities.
    In the other case (fetch all quotes) the user now is
    required to pass a book to the call.

commit 4c2863966b20f48a18c2b202d98ab142ed0679b2
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu Mar 18 16:33:16 2021 +0100

    GncQuotes - rename fetch_all to be an overload of fetch
    
    And add a third overload to fetch only a single quote

commit 7765e1370489c6b4d31a36956082a19ae740d736
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Wed Mar 17 15:04:02 2021 +0100

    Bindings - move log wrappers into the swig interface files
    
    They are only used for guile (and possibly python, so there's
    no need to carry them around in core-utils.

commit e5c6f6026b1132f0e6b76f621c82d9a2802fba7c
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Wed Mar 17 09:32:32 2021 +0100

    Remove support code that was only used by price-quotes.scm

commit e97fc3e4081aa513efe641cba06e0282c4ba1335
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Tue Mar 16 14:18:01 2021 +0100

    Drop price-quotes.scm, gnc-fq-helper.in and  gnc-fq-check.in - no longer used

commit bf357315fd5c4757dc36c7878c48713eb8474989
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Tue Mar 16 16:42:01 2021 +0100

    finance-quote-wrapper - implement check and fetch in one file via command line switches
    
    This obsoletes gnc-fq-check as the same function can now be
    performed with 'finance-quote-wrapper -v'

commit 8c08fedaa1dc9f319e99ed70166b5d7ac2df3a18
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Tue Mar 16 13:54:01 2021 +0100

    Use GncQuotes in price db window

commit 8896d61c7aa505857286c81a24ad37260ddf26eb
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Tue Mar 16 13:44:56 2021 +0100

    Build dialog-price-edit-db as C++

commit fbf9aecd25ab033b23dff6996a18969301742cad
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Tue Mar 16 12:16:10 2021 +0100

    Use GncQuotes in transfer dialog

commit 1a0be99bc69317aef82bd6db23c437afc02ed044
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Mon Mar 15 18:43:58 2021 +0100

    Build dialog-transfer as C++
    
    Preparation to use GncQuotes instead of price-quotes.scm

commit a00bce168c7082d7857b68e6464950a5efa1aef8
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Mon Mar 15 18:38:24 2021 +0100

    GncQuotes - cache default currency

commit fcbe6cf10cf0ec59d2179a87ce1d884b60a10ecc
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Sun Feb 28 22:36:22 2021 +0100

    Add code to parse json data returned by our F::Q wrapper
    
    This code will convert the json data into GncPrice objects and add them
    to the pricedb, effectively doing what price-quotes.scm does.
    
    A few notable remarks:
    - still requires plenty of cleaning up. This is the first proof of concept
    - like the original scm based code, this parser completely ignores  timezone
      information. As it wasn't used before and nobody complained, it may not
      be that important. Or it can be implemented later.
    - price-quotes.scm would first check if a price already existed in the pricedb
      and try to update that one instead of adding one (only if the old price's
      type is inferior). However that is redundant as gnc_pricedb_add_price does
      the same check. So I have omitted this extra check from GncQuotes.
    - currency quotes can be inverted. I have slightly changed the way to handle
      this. The perl wrapper code will simply set an "inverted" flag in that case,
      but will otherwise not swap currency and commodity as it used to be the case.
      On parsing, the inversion flag will cause the GncNumeric that's parsed from
      the price to be inverted. As it's still a GncNumeric that shouldn't result
      in any loss of precision, while keeping prices in the db always in the default
      currency.

commit 5c13da0e59901bbcdad97dc9511fb9a1e17bc5bc
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Feb 12 18:52:04 2021 +0100

    Move fetching quotes info to gnc-commands
    
    It needs gnc-prefs which I don't want to add by default to gnucash-cli.

commit 6ecc1ef73f134b0045a7df78245bb2a9544f15fc
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Feb 12 18:18:20 2021 +0100

    GncQuotes - switch to Pimpl idiom
    
    That allows the private implementation to pass a number of variables
    based on various boost libraries. It's better to not have them in
    the public interface to keep compilation times down.

commit 65ae46426b77ae95b45acd55ff73edf6071319a7
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Feb 12 15:12:10 2021 +0100

    GncQuotes - add parameterized construction
    
    For all but the basic check a book is required. Might
    as well be able to pass it directly and store a reference
    to it. That will simplify member function declarations.

commit 3685e5de736fde4a5cefdb14ac8f2b7d97ad093b
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu Feb 11 16:05:05 2021 +0100

    Factor out the async call to perl
    
    This will allow us to reuse it for several F::Q commands, like
    check, fetch,...

commit 6ce91d7f49691c59320a7e057ea1eaaa70b72188
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu Feb 11 15:20:21 2021 +0100

    Drop the single quotes instance code for now
    
    I have been reading on singleton implementations and there appears
    to be a lot of pushback against those.
    We can revisit this if it turns out performance degrades
    significantly by running the F::Q check multiple times.

commit 616a672d52a61719632b33ea1950fd3eb9e6a360
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu Feb 11 15:05:17 2021 +0100

    Rewrite boost::process call to properly capture both stdout and stderr
    
    The previous version of the code could only capture one
    but not both at the same time.

commit a6771754d5071607fe1f686e5d236bf5e86317a1
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu Feb 4 15:10:55 2021 +0100

    GncQuotes - start implementation of fetch/fetch_all

commit f3fdc5de12c29d4f91e41c0c548bb3cb105d8be0
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Sat Feb 6 19:34:40 2021 +0100

    Rewrite gnc-fq-helper as finance-quote-wrapper
    
    This rewritten version takes JSON input and spits out JSON.
    Additionally inverted currency quotes will only be flagged.
    The old code also swapped currencies in the result.
    GncQuotes will be written towards these new implementation
    choices.

commit 1d94887a0b8aa0bd2b86cb8a8da89fdbcba5159a
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Feb 5 17:48:06 2021 +0100

    Rewrite gnc_commodity_table_get_quotable_commodities as gnc_quotes_get_quotable_commodities
    
    It only makes sense in that context.

commit 466db526b2589961958a99485bfa76644a04d2df
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Jan 29 15:01:35 2021 +0100

    Move source files for GncQuotes to app-utils
    
    It will depend on functions in that library. This can probably be
    fixed by cleaning up app-utils, but that's not the topic of
    this feature.

commit 8c4bd86c7b44f257047ca94d6e246ac2c6b1b21e
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Jan 29 19:55:42 2021 +0100

    Fix memory leak as suggested by Christopher Lam

commit 9d62755b4a20e61990387fd001fddea60368be9a
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Jan 29 14:45:21 2021 +0100

    Make GncQuotes::check() a private function, returning nothing
    
    At the same time do an explicit reinstantiation of quotes_cached at first use
    to work around what seems to be a race condition between static instantiation
    and binreloc.

commit 32df095d4f73e1306516b445474af3b3c97adcc0
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Jan 29 12:13:46 2021 +0100

    Catch potential boost::process exceptions
    
    Could happen if the perl executable isn't found and perhaps also
    if there's a stream exception.

commit d79306f7db5a0c1bed4402abfe6579029d559365
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Jan 29 12:03:10 2021 +0100

    Protect boost process output read loop from deadlock
    
    As per the boost::process tutorials

commit f658ff409fa455273db91461ad6798fe339f5cef
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Jan 29 11:58:19 2021 +0100

    Tweak line endings in output streams
    
    Flush only at the very end.

commit 8b772384cd30cac87f1f2bb942e9ce42ad229571
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Jan 29 11:57:28 2021 +0100

    Various performance fixes based on feedback
    - const correctnes
    - avoid unnecessary copying
    - avoid need to reverse GList

commit 2f7ed7f25d0a67f972487e215c4fc0845f4b721b
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu Jan 28 17:34:19 2021 +0100

    Initial version of libgnc-quotes
    
    This library intends to wrap Finance::Quote the way price-quotes.scm currently does.
    In this first commit the library replaces price-quotes.scm's library to install
    quote sources. In addition it exposes a new command line parameter  in gnucash-cli
    to show which version of Finance::Quote is installed on the system (if any) and
    which quotes sources that verions exposes.

commit b0ae402c23dedc3914aa4a2a31214b48e9780679
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat Sep 17 15:47:05 2022 -0700

    Limit instantiation of GncInt128 constructors to integral values.
    
    Instead of using static_assert. This prevents the compiler from even
    trying and avoids weird compilation errors when testing types for
    instantiating other templates.

commit 3c75d212abc1e95b8647c191be7acb1088f9ad3f
Author: John Ralls <jralls at ceridwen.us>
Date:   Wed Sep 14 17:39:21 2022 -0700

    Fix build on Apple Silicon or maybe Apple-clang-14.0
    
    The compiler complains that there's no matching
    gnc_register_number_range_option for GncOptionDB*, which without this
    commit is true because the explicit templates are for GncOptionDBPtr&.
    Note that the original template definition is for GncOptionDB* and
    that the header-defined inlines that take GncOptionDBPtr& call the
    GncOptionDB* version.



Summary of changes:
 CMakeLists.txt                                     |    8 +
 bindings/app-utils.i                               |   16 -
 bindings/core-utils.i                              |    5 -
 bindings/engine.i                                  |   40 +-
 bindings/guile/glib-guile.c                        |  136 ---
 bindings/guile/glib-guile.h                        |   36 -
 bindings/guile/gnc-engine-guile.cpp                |    1 -
 bindings/guile/gnc-helpers.c                       |   41 -
 bindings/guile/gnc-helpers.h                       |   12 -
 bindings/guile/utilities.scm                       |    8 +-
 bindings/python/example_scripts/priceDB_test.py    |    2 +-
 .../example_scripts/price_database_example.py      |    2 +-
 common/config.h.cmake.in                           |    3 +
 gnucash/CMakeLists.txt                             |    7 +-
 gnucash/gnome-utils/CMakeLists.txt                 |    2 +-
 .../{dialog-transfer.c => dialog-transfer.cpp}     |  223 ++---
 gnucash/gnome/CMakeLists.txt                       |    4 +-
 ...og-price-edit-db.c => dialog-price-edit-db.cpp} |  280 +++---
 gnucash/gnucash-cli.cpp                            |   67 +-
 gnucash/gnucash-commands.cpp                       |  136 ++-
 gnucash/gnucash-commands.hpp                       |    6 +
 gnucash/gnucash-core-app.cpp                       |    6 +-
 gnucash/gnucash.cpp                                |   23 +-
 gnucash/price-quotes.scm                           |  544 ----------
 libgnucash/app-utils/CMakeLists.txt                |    6 +-
 libgnucash/app-utils/gnc-quotes.cpp                | 1059 ++++++++++++++++++++
 libgnucash/app-utils/gnc-quotes.hpp                |  146 +++
 libgnucash/app-utils/test/CMakeLists.txt           |   19 +
 libgnucash/app-utils/test/gtest-gnc-quotes.cpp     |  411 ++++++++
 libgnucash/core-utils/gnc-glib-utils.c             |   40 -
 libgnucash/core-utils/gnc-glib-utils.h             |   21 -
 libgnucash/engine/CMakeLists.txt                   |    1 +
 .../engine/gnc-commodity.hpp                       |   69 +-
 libgnucash/engine/gnc-pricedb.c                    |    1 -
 libgnucash/quotes/CMakeLists.txt                   |    6 +-
 libgnucash/quotes/Quote_example.pl                 |   90 --
 libgnucash/quotes/README                           |   20 +-
 libgnucash/quotes/finance-quote-wrapper.in         |  286 ++++++
 libgnucash/quotes/gnc-fq-check.in                  |  103 --
 libgnucash/quotes/gnc-fq-dump.in                   |  242 -----
 libgnucash/quotes/gnc-fq-helper.in                 |  435 --------
 libgnucash/quotes/gnc-fq-update.in                 |    1 -
 po/POTFILES.in                                     |    6 +-
 43 files changed, 2373 insertions(+), 2197 deletions(-)
 rename gnucash/gnome-utils/{dialog-transfer.c => dialog-transfer.cpp} (94%)
 rename gnucash/gnome/{dialog-price-edit-db.c => dialog-price-edit-db.cpp} (77%)
 delete mode 100644 gnucash/price-quotes.scm
 create mode 100644 libgnucash/app-utils/gnc-quotes.cpp
 create mode 100644 libgnucash/app-utils/gnc-quotes.hpp
 create mode 100644 libgnucash/app-utils/test/gtest-gnc-quotes.cpp
 copy gnucash/gnome-utils/dialog-reset-warnings.h => libgnucash/engine/gnc-commodity.hpp (65%)
 delete mode 100755 libgnucash/quotes/Quote_example.pl
 create mode 100755 libgnucash/quotes/finance-quote-wrapper.in
 delete mode 100755 libgnucash/quotes/gnc-fq-check.in
 delete mode 100755 libgnucash/quotes/gnc-fq-dump.in
 delete mode 100755 libgnucash/quotes/gnc-fq-helper.in



More information about the gnucash-patches mailing list