diff --git a/src/include01/transaction.cpp b/src/include01/transaction.cpp index eb4a91eda..253aa4b72 100644 --- a/src/include01/transaction.cpp +++ b/src/include01/transaction.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -6,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -715,6 +717,34 @@ bool TTransaction::get_warnings(TString_array & warnings) const return warnings.items() > 0; } +bool TTransaction::set_user(const char * u) +{ + const char * wrk_user = u != nullptr ? u : user(); + + return set("User", wrk_user, -1, nullptr); +} + +bool TTransaction::set_hostname(const char * h) +{ + const char * wrk_host = h != nullptr ? h : get_hostname(); + + return set("HostName", wrk_host, -1, nullptr); +} + +bool TTransaction::set_version() +{ + int year, release, tag, patch; + + if (main_app().get_version_info(year, release, tag, patch)) + { + TString80 ver; + ver.format("%d %d.%d-%d", year, release, tag, patch); + set("Version", ver, -1, nullptr); + return true; + } + return false; +} + bool TTransaction::read() { if (_type == ini_transaction) diff --git a/src/include01/transaction.h b/src/include01/transaction.h index 64c00b058..bc57bd74c 100644 --- a/src/include01/transaction.h +++ b/src/include01/transaction.h @@ -168,7 +168,10 @@ public: bool set_stop_on_error(bool val) { return set("StopOnError", val ? 1 : 0, -1, nullptr); } bool set_caller(const TString & caller) { return set("From", caller, -1, nullptr); } bool set_firm(int firm) { return set("Firm", firm, -1, nullptr); } - const char * ext() const { return _type == ini_transaction ? "ini" : "xml"; } + bool set_user(const char * u = nullptr); + bool set_hostname(const char * h = nullptr); + bool set_version(); + const char * ext() const { return _type == ini_transaction ? "ini" : "xml"; } bool read(); bool write();