diff options
-rw-r--r-- | main/snprintf.c | 11 | ||||
-rw-r--r-- | main/spprintf.c | 11 |
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++; |