aboutsummaryrefslogtreecommitdiff
path: root/src/platform/w32functions.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/platform/w32functions.c')
-rw-r--r--src/platform/w32functions.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/platform/w32functions.c b/src/platform/w32functions.c
index 7a0686e8..e4f93db0 100644
--- a/src/platform/w32functions.c
+++ b/src/platform/w32functions.c
@@ -29,6 +29,8 @@
29#include <string.h> 29#include <string.h>
30#include <stdint.h> 30#include <stdint.h>
31#include <time.h> 31#include <time.h>
32#include <stdio.h>
33#include <stdarg.h>
32 34
33 35
34/** 36/**
@@ -640,3 +642,27 @@ int MHD_W32_random_(void)
640 & 0x7fffffff; 642 & 0x7fffffff;
641 return (int)rnd_val; 643 return (int)rnd_val;
642} 644}
645
646/* Emulate snprintf function on W32 */
647int W32_snprintf(char *__restrict s, size_t n, const char *__restrict format, ...)
648{
649 int ret;
650 va_list args;
651 if (0 != n && NULL != s )
652 {
653 va_start(args, format);
654 ret = _vsnprintf(s, n, format, args);
655 va_end(args);
656 if (n == ret)
657 s[n - 1] = 0;
658 if (ret >= 0)
659 return ret;
660 }
661 va_start(args, format);
662 ret = _vscprintf(format, args);
663 va_end(args);
664 if (0 <= ret && 0 != n && NULL == s)
665 return -1;
666
667 return ret;
668}