This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch 3.6.x in repository nx-libs. from 70e1e6a Merge branch 'uli42-pr/fix_xext_includes' into 3.6.x new df8908b nxcomp/configure.ac: add check for ::ctime_s. new 2eb2f2e nxcomp/src/Timestamp.{cpp,h}: use ::ctime_s or ::ctime_r instead of plain ctime, on-stack buffers and return std::string objects. new 1086c4a Merge branch 'Ionic-bugfix/ctime' into 3.6.x The 3 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: nxcomp/configure.ac | 17 +++++++++++++++ nxcomp/src/Timestamp.cpp | 55 +++++++++++++++++++++++++++++++++--------------- nxcomp/src/Timestamp.h | 16 +++++++++----- 3 files changed, 66 insertions(+), 22 deletions(-) -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x in repository nx-libs. commit df8908b9dc0a4583c4b426cbbe47249cd895e16a Author: Mihai Moldovan <ionic@ionic.de> Date: Sat Dec 30 09:25:26 2017 +0100 nxcomp/configure.ac: add check for ::ctime_s. --- nxcomp/configure.ac | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/nxcomp/configure.ac b/nxcomp/configure.ac index 12c3b50..b7350a4 100644 --- a/nxcomp/configure.ac +++ b/nxcomp/configure.ac @@ -94,6 +94,23 @@ std::tm tm = *std::localtime(&t); [Use std::put_time to format times, must be made available by the compiler if turned on.])], [AC_MSG_RESULT([no])]) +# Check if ::ctime_s is available. +AC_MSG_CHECKING([if ::ctime_s is available]) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM( +[[ +#define __STDC_WANT_LIB_EXT1__ 1 +#include <ctime> +]], +[[ +time_t res = time(NULL); +char str[26] = { }; +::ctime_s(str, sizeof(str), &res); +]])], + [AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_CTIME_S, [1], + [Use ::ctime_s to format times, must be made available by the compiler if turned on.])], + [AC_MSG_RESULT([no])]) + AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug], [enable to get info session log output (disabled by default)])], -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x in repository nx-libs. commit 2eb2f2e6ca13d84113e30041ade2dbfa9f4e1432 Author: Mihai Moldovan <ionic@ionic.de> Date: Sat Dec 30 09:30:03 2017 +0100 nxcomp/src/Timestamp.{cpp,h}: use ::ctime_s or ::ctime_r instead of plain ctime, on-stack buffers and return std::string objects. Fixes: ArcticaProject/nx-libs#616 --- nxcomp/src/Timestamp.cpp | 55 +++++++++++++++++++++++++++++++++--------------- nxcomp/src/Timestamp.h | 16 +++++++++----- 2 files changed, 49 insertions(+), 22 deletions(-) diff --git a/nxcomp/src/Timestamp.cpp b/nxcomp/src/Timestamp.cpp index e7e0c49..4a9dd33 100644 --- a/nxcomp/src/Timestamp.cpp +++ b/nxcomp/src/Timestamp.cpp @@ -44,34 +44,55 @@ T_timestamp timestamp; -// -// The following functions all use the ctime -// static buffer from the C library. -// - -char *strTimestamp(const T_timestamp &ts) +std::string strTimestamp(const T_timestamp &ts) { - char *ctime_now = ctime((time_t *) &ts.tv_sec); + std::string ret; + + char ctime_now[26] = { }; + bool err = true; - ctime_now[24] = '\0'; +#if HAVE_CTIME_S + errno_t retval = ::ctime_s(ctime_now, sizeof(ctime_now), static_cast<const time_t*>(&ts.tv_sec)); - return ctime_now; + if (retval != 0) +#else + char *retval = ::ctime_r(static_cast<const time_t*>(&ts.tv_sec), ctime_now); + + if (!(retval)) +#endif + { + std::cerr << "WARNING: converting time to string failed." << std::endl; + } + else + { + /* Replace newline at position 25 with a NULL byte. */ + ctime_now[24] = '\0'; + + ret = ctime_now; + } + + return ret; } // -// This is especially dirty. +// This is especially dirty. // -char *strMsTimestamp(const T_timestamp &ts) +std::string strMsTimestamp(const T_timestamp &ts) { - char *ctime_now = ctime((time_t *) &ts.tv_sec); + std::string ret; + + std::string ctime_now = strTimestamp(ts); - char ctime_new[25]; + if (!(ctime_now.empty())) + { + char ctime_new[26] = { }; - sprintf(ctime_new, "%.8s:%3.3f", ctime_now + 11, - (float) ts.tv_usec / 1000); + snprintf(ctime_new, sizeof(ctime_new), "%.8s:%3.3f", + ctime_now.c_str() + 11, static_cast<float>(ts.tv_usec) / 1000); - strncpy(ctime_now, ctime_new, 24); + ret = ctime_new; + } - return ctime_now; + return ret; } diff --git a/nxcomp/src/Timestamp.h b/nxcomp/src/Timestamp.h index bb9b243..9e6fafc 100644 --- a/nxcomp/src/Timestamp.h +++ b/nxcomp/src/Timestamp.h @@ -26,11 +26,17 @@ #ifndef Timestamp_H #define Timestamp_H +#if HAVE_CTIME_S +#define __STDC_WANT_LIB_EXT1__ 1 +#include <time.h> +#endif /* HAVE_CTIME_S */ + #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <iostream> +#include <string> -#include <time.h> #include <sys/time.h> #include "Misc.h" @@ -260,15 +266,15 @@ inline int checkDiffTimestamp(const T_timestamp &ts1, const T_timestamp &ts2, // Return a string representing the timestamp. // -char *strTimestamp(const T_timestamp &ts); -char *strMsTimestamp(const T_timestamp &ts); +std::string strTimestamp(const T_timestamp &ts); +std::string strMsTimestamp(const T_timestamp &ts); -inline char *strTimestamp() +inline std::string strTimestamp() { return strTimestamp(getTimestamp()); } -inline char *strMsTimestamp() +inline std::string strMsTimestamp() { return strMsTimestamp(getTimestamp()); } -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x in repository nx-libs. commit 1086c4aa5b4ad65bb51dac1dbab606f14ebaf98b Merge: 70e1e6a 2eb2f2e Author: Mihai Moldovan <ionic@ionic.de> Date: Tue Jan 9 01:08:17 2018 +0100 Merge branch 'Ionic-bugfix/ctime' into 3.6.x Attributes GH PR #623: https://github.com/ArcticaProject/nx-libs/pull/623 Fixes: ArcticaProject/nx-libs#616 nxcomp/configure.ac | 17 +++++++++++++++ nxcomp/src/Timestamp.cpp | 55 +++++++++++++++++++++++++++++++++--------------- nxcomp/src/Timestamp.h | 16 +++++++++----- 3 files changed, 66 insertions(+), 22 deletions(-) -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git