This commit is contained in:
parent
be4816f509
commit
c3d5ec8ead
3 changed files with 79 additions and 24 deletions
|
|
@ -10,6 +10,27 @@
|
|||
## Serialization utilities for the compiler.
|
||||
import strutils, math
|
||||
|
||||
# MSVC prior to 2013 doesn't have C99 functions
|
||||
when defined(windows) and (defined(vcc) or defined(bcc)):
|
||||
{.emit: """#if defined(_MSC_VER) && _MSC_VER < 1900
|
||||
#include <stdarg.h>
|
||||
static int c99_vsnprintf(char *outBuf, size_t size, const char *format, va_list ap) {
|
||||
int count = -1;
|
||||
if (size != 0) count = _vsnprintf_s(outBuf, size, _TRUNCATE, format, ap);
|
||||
if (count == -1) count = _vscprintf(format, ap);
|
||||
return count;
|
||||
}
|
||||
int snprintf(char *outBuf, size_t size, const char *format, ...) {
|
||||
int count;
|
||||
va_list ap;
|
||||
va_start(ap, format);
|
||||
count = c99_vsnprintf(outBuf, size, format, ap);
|
||||
va_end(ap);
|
||||
return count;
|
||||
}
|
||||
#endif
|
||||
""".}
|
||||
|
||||
proc c_snprintf(s: cstring; n:uint; frmt: cstring): cint {.importc: "snprintf", header: "<stdio.h>", nodecl, varargs.}
|
||||
|
||||
proc toStrMaxPrecision*(f: BiggestFloat, literalPostfix = ""): string =
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue