Workaround for debian and other old OS that do not have std::put_time
This commit is contained in:
@@ -156,4 +156,12 @@ check_cxx_source_compiles("
|
|||||||
|
|
||||||
mark_as_advanced(HAS_GET_TIME)
|
mark_as_advanced(HAS_GET_TIME)
|
||||||
|
|
||||||
|
check_cxx_source_compiles("
|
||||||
|
#include <iomanip>
|
||||||
|
int main()
|
||||||
|
{ std::put_time(nullptr, \"\"); }"
|
||||||
|
HAS_PUT_TIME)
|
||||||
|
|
||||||
|
mark_as_advanced(HAS_PUT_TIME)
|
||||||
|
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/louloulibs.h.cmake ${CMAKE_BINARY_DIR}/src/louloulibs.h)
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/louloulibs.h.cmake ${CMAKE_BINARY_DIR}/src/louloulibs.h)
|
||||||
|
|||||||
@@ -8,3 +8,4 @@
|
|||||||
#cmakedefine SOFTWARE_VERSION "${SOFTWARE_VERSION}"
|
#cmakedefine SOFTWARE_VERSION "${SOFTWARE_VERSION}"
|
||||||
#cmakedefine PROJECT_NAME "${PROJECT_NAME}"
|
#cmakedefine PROJECT_NAME "${PROJECT_NAME}"
|
||||||
#cmakedefine HAS_GET_TIME
|
#cmakedefine HAS_GET_TIME
|
||||||
|
#cmakedefine HAS_PUT_TIME
|
||||||
|
|||||||
@@ -15,6 +15,10 @@
|
|||||||
#include <database/database.hpp>
|
#include <database/database.hpp>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef HAS_PUT_TIME
|
||||||
|
#include <ctime>
|
||||||
|
#endif
|
||||||
|
|
||||||
using namespace std::string_literals;
|
using namespace std::string_literals;
|
||||||
|
|
||||||
void DisconnectUserStep1(XmppComponent& xmpp_component, AdhocSession&, XmlNode& command_node)
|
void DisconnectUserStep1(XmppComponent& xmpp_component, AdhocSession&, XmlNode& command_node)
|
||||||
@@ -766,7 +770,15 @@ void GetIrcConnectionInfoStep1(XmppComponent& component, AdhocSession& session,
|
|||||||
if (irc->is_using_tls())
|
if (irc->is_using_tls())
|
||||||
ss << " (using TLS)";
|
ss << " (using TLS)";
|
||||||
const std::time_t now_c = std::chrono::system_clock::to_time_t(irc->connection_date);
|
const std::time_t now_c = std::chrono::system_clock::to_time_t(irc->connection_date);
|
||||||
|
#ifdef HAS_PUT_TIME
|
||||||
ss << " since " << std::put_time(std::localtime(&now_c), "%F %T");
|
ss << " since " << std::put_time(std::localtime(&now_c), "%F %T");
|
||||||
|
#else
|
||||||
|
constexpr std::size_t timestamp_size{10 + 1 + 8 + 1};
|
||||||
|
char buf[timestamp_size] = {};
|
||||||
|
const auto res = std::strftime(buf, timestamp_size, "%F %T", std::localtime(&now_c));
|
||||||
|
if (res > 0)
|
||||||
|
ss << " since " << buf;
|
||||||
|
#endif
|
||||||
ss << " (" << std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now() - irc->connection_date).count() << " seconds ago).";
|
ss << " (" << std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now() - irc->connection_date).count() << " seconds ago).";
|
||||||
|
|
||||||
for (const auto& it: bridge->resources_in_chan)
|
for (const auto& it: bridge->resources_in_chan)
|
||||||
|
|||||||
Reference in New Issue
Block a user