Small snprintf.cpp update.

This commit is contained in:
Markus F.X.J. Oberhumer
2016-09-25 23:50:05 +02:00
parent 156ca03b67
commit e6da9e8d1a
+7 -5
View File
@@ -642,6 +642,8 @@ static size_t dopr(char *buffer, size_t maxsize, const char *format, va_list arg
fmtint(buffer, &currsize, maxsize, value, 16, min, max, flags); fmtint(buffer, &currsize, maxsize, value, 16, min, max, flags);
break; break;
#if !(NO_FLOAT) #if !(NO_FLOAT)
case 'F':
flags |= DP_F_UP;
case 'f': case 'f':
if (cflags == DP_C_LDOUBLE) if (cflags == DP_C_LDOUBLE)
fvalue = va_arg(args, LDOUBLE); fvalue = va_arg(args, LDOUBLE);
@@ -667,11 +669,14 @@ static size_t dopr(char *buffer, size_t maxsize, const char *format, va_list arg
fvalue = va_arg(args, double); fvalue = va_arg(args, double);
break; break;
#else #else
case 'F':
case 'f': case 'f':
case 'E': case 'E':
case 'e': case 'e':
case 'G': case 'G':
case 'g': case 'g':
case 'A':
case 'a':
assert(0); assert(0);
exit(255); exit(255);
#endif /* !(NO_FLOAT) */ #endif /* !(NO_FLOAT) */
@@ -715,10 +720,6 @@ static size_t dopr(char *buffer, size_t maxsize, const char *format, va_list arg
case '%': case '%':
dopr_outch(buffer, &currsize, maxsize, ch); dopr_outch(buffer, &currsize, maxsize, ch);
break; break;
case 'w':
/* not supported yet, treat as next char */
ch = *format++;
break;
default: default:
/* Unknown, skip */ /* Unknown, skip */
break; break;
@@ -791,7 +792,8 @@ int upx_vasprintf(char **ptr, const char *format, va_list ap) {
assert(*ptr != NULL); assert(*ptr != NULL);
if (*ptr == NULL) if (*ptr == NULL)
return -1; return -1;
len = upx_vsnprintf(*ptr, len + 1, format, ap); int len2 = upx_vsnprintf(*ptr, len + 1, format, ap);
assert(len2 == len);
} }
return len; return len;
} }