Author: scantor Date: Sun Aug 6 18:09:44 2017 New Revision: 1804250 URL: http://svn.apache.org/viewvc?rev=1804250&view=rev Log: XERCESC-2111 - Accomodate lack of snprintf
Modified: xerces/c/trunk/cmake/XercesFunctions.cmake xerces/c/trunk/config.h.cmake.in xerces/c/trunk/configure.ac xerces/c/trunk/src/xercesc/util/XMLDateTime.cpp Modified: xerces/c/trunk/cmake/XercesFunctions.cmake URL: http://svn.apache.org/viewvc/xerces/c/trunk/cmake/XercesFunctions.cmake?rev=1804250&r1=1804249&r2=1804250&view=diff ============================================================================== --- xerces/c/trunk/cmake/XercesFunctions.cmake (original) +++ xerces/c/trunk/cmake/XercesFunctions.cmake Sun Aug 6 18:09:44 2017 @@ -38,6 +38,7 @@ check_function_exists(memset HAVE_MEMSET check_function_exists(nl_langinfo HAVE_NL_LANGINFO) check_function_exists(setlocale HAVE_SETLOCALE) check_function_exists(localeconv HAVE_LOCALECONV) +check_function_exists(snprintf HAVE_SNPRINTF) check_function_exists(strcasecmp HAVE_STRCASECMP) check_function_exists(strncasecmp HAVE_STRNCASECMP) check_function_exists(stricmp HAVE_STRICMP) Modified: xerces/c/trunk/config.h.cmake.in URL: http://svn.apache.org/viewvc/xerces/c/trunk/config.h.cmake.in?rev=1804250&r1=1804249&r2=1804250&view=diff ============================================================================== --- xerces/c/trunk/config.h.cmake.in (original) +++ xerces/c/trunk/config.h.cmake.in Sun Aug 6 18:09:44 2017 @@ -171,6 +171,9 @@ /* Define to 1 if you have the `setlocale' function. */ #cmakedefine HAVE_SETLOCALE 1 +/* Define to 1 if you have the `snprintf' function. */ +#cmakedefine HAVE_SNPRINTF 1 + /* Define to 1 if you have the `socket' function. */ #cmakedefine HAVE_SOCKET 1 Modified: xerces/c/trunk/configure.ac URL: http://svn.apache.org/viewvc/xerces/c/trunk/configure.ac?rev=1804250&r1=1804249&r2=1804250&view=diff ============================================================================== --- xerces/c/trunk/configure.ac (original) +++ xerces/c/trunk/configure.ac Sun Aug 6 18:09:44 2017 @@ -137,7 +137,7 @@ AC_CHECK_FUNCS([getcwd pathconf realpath clock_gettime ftime gettimeofday timegm gmtime_r \ memmove memset nl_langinfo setlocale localeconv \ strcasecmp strncasecmp stricmp strnicmp strchr strdup \ - strrchr strstr strtol strtoul \ + strrchr strstr strtol strtoul snprintf \ towupper towlower mblen \ wcsupr wcslwr wcsnicmp wcsicmp \ ]) Modified: xerces/c/trunk/src/xercesc/util/XMLDateTime.cpp URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/util/XMLDateTime.cpp?rev=1804250&r1=1804249&r2=1804250&view=diff ============================================================================== --- xerces/c/trunk/src/xercesc/util/XMLDateTime.cpp (original) +++ xerces/c/trunk/src/xercesc/util/XMLDateTime.cpp Sun Aug 6 18:09:44 2017 @@ -23,7 +23,6 @@ // Includes // --------------------------------------------------------------------------- #include <stdlib.h> -#include <stdio.h> #include <assert.h> #include <errno.h> @@ -476,9 +475,15 @@ XMLDateTime::XMLDateTime(time_t epoch, b epoch %= 60; unsigned long seconds = epoch; + // These should just be replaced with an ostringstream but there's no STL usage anywhere else. + // Modern compilers have snprintf. Anything older should accomodate unsigned longs of + // 20 characters each, and this accomodates over 50. char timebuf[256]; +#ifdef HAVE_SNPRINTF snprintf(timebuf, 256, "%sP%luDT%luH%luM%luS", neg ? "-" : "", days, hours, minutes, seconds); - +#else + sprintf(timebuf, "%sP%luDT%luH%luM%luS", neg ? "-" : "", days, hours, minutes, seconds); +#endif XMLCh* timeptr = XMLString::transcode(timebuf); setBuffer(timeptr); XMLString::release(&timeptr); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@xerces.apache.org For additional commands, e-mail: commits-h...@xerces.apache.org