From 719d9e62b3ebd45a7f3aeb2b5cda8c040725f9bc Mon Sep 17 00:00:00 2001 From: Jürgen Knödlseder Date: Sun, 14 Aug 2016 00:05:33 +0200 Subject: [PATCH] Save application parameters only if they have been loaded --- include/GApplication.hpp | 19 ++++++++++--------- src/app/GApplication.cpp | 37 +++++++++++++++++++++++++------------ 2 files changed, 35 insertions(+), 21 deletions(-) diff --git a/include/GApplication.hpp b/include/GApplication.hpp index 1e04ea8..78f4d07 100644 --- a/include/GApplication.hpp +++ b/include/GApplication.hpp @@ -121,15 +121,16 @@ protected: void set_log_filename(void); // Protected data members - std::string m_name; //!< Application name - std::string m_version; //!< Application version - std::string m_parfile; //!< Parameter filename - std::string m_logfile; //!< Log filename - std::vector m_args; //!< Command line arguments - std::time_t m_tstart; //!< Calendar start time of execution - std::clock_t m_cstart; //!< Clock start time of execution - GApplicationPars m_pars; //!< Application parameters - bool m_need_help; //!< --help specified + std::string m_name; //!< Application name + std::string m_version; //!< Application version + std::string m_parfile; //!< Parameter filename + std::string m_logfile; //!< Log filename + std::vector m_args; //!< Command line arguments + std::time_t m_tstart; //!< Calendar start time of execution + std::clock_t m_cstart; //!< Clock start time of execution + GApplicationPars m_pars; //!< Application parameters + bool m_pars_loaded; //!< Application parameters loaded + bool m_need_help; //!< --help specified }; diff --git a/src/app/GApplication.cpp b/src/app/GApplication.cpp index 1828111..67eb425 100644 --- a/src/app/GApplication.cpp +++ b/src/app/GApplication.cpp @@ -94,6 +94,9 @@ GApplication::GApplication(const std::string& name, const std::string& version) // Initialise application parameters m_pars.load(par_filename()); + // Signal that application parameters have been loaded + m_pars_loaded = true; + // Set log filename and chattiness set_log_filename(); set_log_chatter(); @@ -158,6 +161,9 @@ GApplication::GApplication(const std::string& name, const std::string& version, // Initialise application parameters m_pars.load(par_filename(), m_args); + // Signal that application parameters have been loaded + m_pars_loaded = true; + // Set log filename and chattiness set_log_filename(); set_log_chatter(); @@ -266,6 +272,9 @@ void GApplication::clear(void) // Initialise application parameters m_pars.load(par_filename()); + // Signal that application parameters have been loaded + m_pars_loaded = true; + // Set log filename and chattiness set_log_filename(); set_log_chatter(); @@ -847,7 +856,8 @@ void GApplication::init_members(void) m_logfile.clear(); m_args.clear(); m_pars.clear(); - m_need_help = false; + m_pars_loaded = false; + m_need_help = false; // Save the execution calendar start time std::time(&m_tstart); @@ -873,15 +883,16 @@ void GApplication::copy_members(const GApplication& app) log = app.log; // Copy protected attributes - m_name = app.m_name; - m_version = app.m_version; - m_parfile = app.m_parfile; - m_logfile = app.m_logfile; - m_args = app.m_args; - m_tstart = app.m_tstart; - m_cstart = app.m_cstart; - m_pars = app.m_pars; - m_need_help = app.m_need_help; + m_name = app.m_name; + m_version = app.m_version; + m_parfile = app.m_parfile; + m_logfile = app.m_logfile; + m_args = app.m_args; + m_tstart = app.m_tstart; + m_cstart = app.m_cstart; + m_pars = app.m_pars; + m_pars_loaded = app.m_pars_loaded; + m_need_help = app.m_need_help; // Return return; @@ -893,8 +904,10 @@ void GApplication::copy_members(const GApplication& app) ***************************************************************************/ void GApplication::free_members(void) { - // Save application parameters - m_pars.save(par_filename()); + // Save application parameters if they have been loaded + if (m_pars_loaded) { + m_pars.save(par_filename()); + } // Close log file logFileClose(); -- libgit2 0.21.4