From 576fc9b52cc2fd7d444c445630d0e91a9b1834ee Mon Sep 17 00:00:00 2001 From: John Ralls Date: Sun, 19 Mar 2023 10:28:30 -0700 Subject: [PATCH] Fix quotes on Windows. Boost process wchar_t conversion chokes if it's fed an empty string. This would happen when the user had no alphavantage key. Separate the process invocation to not present the empty value to boost process. --- libgnucash/app-utils/gnc-quotes.cpp | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/libgnucash/app-utils/gnc-quotes.cpp b/libgnucash/app-utils/gnc-quotes.cpp index b0ea470c7a2..704460f669a 100644 --- a/libgnucash/app-utils/gnc-quotes.cpp +++ b/libgnucash/app-utils/gnc-quotes.cpp @@ -211,14 +211,23 @@ GncFQQuoteSource::run_cmd (const StrVec& args, const std::string& json_string) c boost::asio::io_service svc; auto input_buf = bp::buffer (json_string); - bp::child process (c_cmd, args, - bp::std_out > out_buf, - bp::std_err > err_buf, - bp::std_in < input_buf, - bp::env["ALPHAVANTAGE_API_KEY"]= (m_api_key.empty() ? "" : m_api_key), - svc); - svc.run(); - process.wait(); + bp::child process; + if (m_api_key.empty()) + process = bp::child(c_cmd, args, + bp::std_out > out_buf, + bp::std_err > err_buf, + bp::std_in < input_buf, + svc); + else + process = bp::child(c_cmd, args, + bp::std_out > out_buf, + bp::std_err > err_buf, + bp::std_in < input_buf, + bp::env["ALPHAVANTAGE_API_KEY"] = m_api_key, + svc); + + svc.run(); + process.wait(); { auto raw = out_buf.get();