[freetds] [PATCH] for win32 support of snprintf call in src/ctlib/ct.c

James K. Lowden jklowden at freetds.org
Mon Feb 8 23:07:45 EST 2010


David Dick wrote:
> +#ifdef WIN32
> +					*outlen= _snprintf(
> +#else
> +					*outlen= snprintf(
> +#endif

Thank you for the patch, but we have to turn it down!  Cf.
include/tds_sysdep_private.h for a better way:

#ifdef __MSVCRT__
#define getpid()           _getpid()
#define strdup(s)          _strdup(s)
#define stricmp(s1,s2)     _stricmp(s1,s2)
#define strnicmp(s1,s2,n)  _strnicmp(s1,s2,n)
#endif

The test is for using Microsoft's compiler, not Win32, because we're
actually interested in something slightly different: which C Standard
library is being used.  

Your patch assumes any Win32 compilation uses Microsoft's library, which
wouldn't be the case with MinGW, for instance.  The above test assumes --
rather more safely -- that anyone compiling with Microsoft's compiler is
using their C runtime.  (While it's possible to use another
implementation, it's surely rarely done.) 

--jkl



More information about the FreeTDS mailing list