summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/snprintf.c11
-rw-r--r--main/spprintf.c11
2 files changed, 20 insertions, 2 deletions
diff --git a/main/snprintf.c b/main/snprintf.c
index 861242d193..853a078885 100644
--- a/main/snprintf.c
+++ b/main/snprintf.c
@@ -716,7 +716,16 @@ static int format_converter(register buffy * odp, const char *fmt, va_list ap) /
modifier = LM_LONG_LONG;
} else
#endif
- modifier = LM_LONG;
+ if (*fmt == '3' && *(fmt+1) == '2') {
+ fmt += 2;
+ modifier = LM_LONG;
+ } else {
+#ifdef _WIN64
+ modifier = LM_LONG_LONG;
+#else
+ modifier = LM_LONG;
+#endif
+ }
break;
case 'l':
fmt++;
diff --git a/main/spprintf.c b/main/spprintf.c
index 23d695d0dc..68ff792cdc 100644
--- a/main/spprintf.c
+++ b/main/spprintf.c
@@ -312,7 +312,16 @@ static void xbuf_format_converter(smart_str *xbuf, const char *fmt, va_list ap)
modifier = LM_LONG_LONG;
} else
#endif
- modifier = LM_LONG;
+ if (*fmt == '3' && *(fmt+1) == '2') {
+ fmt += 2;
+ modifier = LM_LONG;
+ } else {
+#ifdef _WIN64
+ modifier = LM_LONG_LONG;
+#else
+ modifier = LM_LONG;
+#endif
+ }
break;
case 'l':
fmt++;