upx-clang-format -i snprintf.cpp
This commit is contained in:
+37
-62
@@ -58,7 +58,6 @@
|
||||
*
|
||||
**************************************************************/
|
||||
|
||||
|
||||
#if 1
|
||||
#include "conf.h"
|
||||
#else
|
||||
@@ -128,22 +127,18 @@
|
||||
#undef MAX
|
||||
#define MAX(p, q) (((p) >= (q)) ? (p) : (q))
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
//
|
||||
**************************************************************************/
|
||||
|
||||
static void dopr_outch(char *buffer, size_t *currlen, size_t maxlen, int c)
|
||||
{
|
||||
static void dopr_outch(char *buffer, size_t *currlen, size_t maxlen, int c) {
|
||||
if (*currlen < maxlen)
|
||||
buffer[*currlen] = (char) c;
|
||||
*currlen += 1;
|
||||
}
|
||||
|
||||
|
||||
static void fmtstr(char *buffer, size_t *currlen, size_t maxlen,
|
||||
const char *value, int flags, int min, int max)
|
||||
{
|
||||
static void fmtstr(char *buffer, size_t *currlen, size_t maxlen, const char *value, int flags,
|
||||
int min, int max) {
|
||||
int padlen, strln; /* amount to pad */
|
||||
int cnt = 0;
|
||||
|
||||
@@ -177,11 +172,9 @@ static void fmtstr(char *buffer, size_t *currlen, size_t maxlen,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Have to handle DP_F_NUM (ie 0x and 0 alternates) */
|
||||
static void fmtint(char *buffer, size_t *currlen, size_t maxlen,
|
||||
LLONG value, unsigned base, int min, int max, int flags)
|
||||
{
|
||||
static void fmtint(char *buffer, size_t *currlen, size_t maxlen, LLONG value, unsigned base,
|
||||
int min, int max, int flags) {
|
||||
int signvalue = 0;
|
||||
ULLONG uvalue;
|
||||
char convert[64 + 1];
|
||||
@@ -217,8 +210,10 @@ static void fmtint(char *buffer, size_t *currlen, size_t maxlen,
|
||||
|
||||
zpadlen = max - place;
|
||||
spadlen = min - MAX(max, place) - (signvalue ? 1 : 0);
|
||||
if (zpadlen < 0) zpadlen = 0;
|
||||
if (spadlen < 0) spadlen = 0;
|
||||
if (zpadlen < 0)
|
||||
zpadlen = 0;
|
||||
if (spadlen < 0)
|
||||
spadlen = 0;
|
||||
if (flags & DP_F_ZERO) {
|
||||
zpadlen = MAX(zpadlen, spadlen);
|
||||
spadlen = 0;
|
||||
@@ -227,8 +222,7 @@ static void fmtint(char *buffer, size_t *currlen, size_t maxlen,
|
||||
spadlen = -spadlen; /* Left Justifty */
|
||||
|
||||
#ifdef DEBUG_SNPRINTF
|
||||
printf("zpad: %d, spad: %d, min: %d, max: %d, place: %d\n",
|
||||
zpadlen, spadlen, min, max, place);
|
||||
printf("zpad: %d, spad: %d, min: %d, max: %d, place: %d\n", zpadlen, spadlen, min, max, place);
|
||||
#endif
|
||||
|
||||
/* Spaces */
|
||||
@@ -258,15 +252,13 @@ static void fmtint(char *buffer, size_t *currlen, size_t maxlen,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
// floating format support
|
||||
**************************************************************************/
|
||||
|
||||
#if !(NO_FLOAT)
|
||||
|
||||
static LDOUBLE abs_val(LDOUBLE value)
|
||||
{
|
||||
static LDOUBLE abs_val(LDOUBLE value) {
|
||||
LDOUBLE result = value;
|
||||
|
||||
if (value < 0)
|
||||
@@ -275,8 +267,7 @@ static LDOUBLE abs_val(LDOUBLE value)
|
||||
return result;
|
||||
}
|
||||
|
||||
static LDOUBLE POW10(int exp)
|
||||
{
|
||||
static LDOUBLE POW10(int exp) {
|
||||
LDOUBLE result = 1;
|
||||
|
||||
while (exp) {
|
||||
@@ -287,21 +278,20 @@ static LDOUBLE POW10(int exp)
|
||||
return result;
|
||||
}
|
||||
|
||||
static LLONG ROUND(LDOUBLE value)
|
||||
{
|
||||
static LLONG ROUND(LDOUBLE value) {
|
||||
LLONG intpart;
|
||||
|
||||
intpart = (LLONG) value;
|
||||
value = value - intpart;
|
||||
if (value >= 0.5) intpart++;
|
||||
if (value >= 0.5)
|
||||
intpart++;
|
||||
|
||||
return intpart;
|
||||
}
|
||||
|
||||
/* a replacement for modf that doesn't need the math library. Should
|
||||
be portable, but slow */
|
||||
static double my_modf(double x0, double *iptr)
|
||||
{
|
||||
static double my_modf(double x0, double *iptr) {
|
||||
int i;
|
||||
long l;
|
||||
double x = x0;
|
||||
@@ -309,7 +299,8 @@ static double my_modf(double x0, double *iptr)
|
||||
|
||||
for (i = 0; i < 100; i++) {
|
||||
l = (long) x;
|
||||
if (l <= (x+1) && l >= (x-1)) break;
|
||||
if (l <= (x + 1) && l >= (x - 1))
|
||||
break;
|
||||
x *= 0.1;
|
||||
f *= 10.0;
|
||||
}
|
||||
@@ -332,10 +323,8 @@ static double my_modf(double x0, double *iptr)
|
||||
return x - *iptr;
|
||||
}
|
||||
|
||||
|
||||
static void fmtfp (char *buffer, size_t *currlen, size_t maxlen,
|
||||
LDOUBLE fvalue, int min, int max, int flags)
|
||||
{
|
||||
static void fmtfp(char *buffer, size_t *currlen, size_t maxlen, LDOUBLE fvalue, int min, int max,
|
||||
int flags) {
|
||||
/* avoid warnings with 'gcc -Wshadow' */
|
||||
#undef index
|
||||
#define index iindex
|
||||
@@ -418,8 +407,7 @@ static void fmtfp (char *buffer, size_t *currlen, size_t maxlen,
|
||||
iconvert[iplace] = 0;
|
||||
|
||||
/* Convert fractional part */
|
||||
if (fracpart)
|
||||
{
|
||||
if (fracpart) {
|
||||
do {
|
||||
temp = fracpart;
|
||||
my_modf(fracpart * 0.1, &fracpart);
|
||||
@@ -435,7 +423,8 @@ static void fmtfp (char *buffer, size_t *currlen, size_t maxlen,
|
||||
/* -1 for decimal point, another -1 if we are printing a sign */
|
||||
padlen = min - iplace - max - 1 - ((signvalue) ? 1 : 0);
|
||||
zpadlen = max - fplace;
|
||||
if (zpadlen < 0) zpadlen = 0;
|
||||
if (zpadlen < 0)
|
||||
zpadlen = 0;
|
||||
if (padlen < 0)
|
||||
padlen = 0;
|
||||
if (flags & DP_F_MINUS)
|
||||
@@ -489,16 +478,13 @@ static void fmtfp (char *buffer, size_t *currlen, size_t maxlen,
|
||||
#undef index
|
||||
}
|
||||
|
||||
|
||||
#endif /* !(NO_FLOAT) */
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
// dopr()
|
||||
**************************************************************************/
|
||||
|
||||
static size_t dopr(char *buffer, size_t maxlen, const char *format, va_list args)
|
||||
{
|
||||
static size_t dopr(char *buffer, size_t maxlen, const char *format, va_list args) {
|
||||
char ch;
|
||||
LLONG value;
|
||||
#if !(NO_FLOAT)
|
||||
@@ -704,16 +690,19 @@ static size_t dopr(char *buffer, size_t maxlen, const char *format, va_list args
|
||||
break;
|
||||
case 's':
|
||||
strvalue = va_arg(args, const char *);
|
||||
if (!strvalue) strvalue = "(NULL)";
|
||||
if (!strvalue)
|
||||
strvalue = "(NULL)";
|
||||
if (max == -1) {
|
||||
max = (int) strlen(strvalue);
|
||||
}
|
||||
if (min > 0 && max >= 0 && min > max) max = min;
|
||||
if (min > 0 && max >= 0 && min > max)
|
||||
max = min;
|
||||
fmtstr(buffer, &currlen, maxlen, strvalue, flags, min, max);
|
||||
break;
|
||||
case 'p':
|
||||
strvalue = (const char *) va_arg(args, const void *);
|
||||
fmtint (buffer, &currlen, maxlen, (LLONG) (upx_uintptr_t) strvalue, 16, min, max, flags);
|
||||
fmtint(buffer, &currlen, maxlen, (LLONG)(upx_uintptr_t) strvalue, 16, min, max,
|
||||
flags);
|
||||
break;
|
||||
case 'n':
|
||||
if (cflags == DP_C_SHORT) {
|
||||
@@ -767,14 +756,12 @@ static size_t dopr(char *buffer, size_t maxlen, const char *format, va_list args
|
||||
return currlen;
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
// public entries
|
||||
**************************************************************************/
|
||||
|
||||
// UPX version with assertions
|
||||
static int xdopr(char *buffer, size_t maxlen, const char *format, va_list args)
|
||||
{
|
||||
static int xdopr(char *buffer, size_t maxlen, const char *format, va_list args) {
|
||||
size_t ret;
|
||||
|
||||
// preconditions
|
||||
@@ -787,8 +774,7 @@ static int xdopr(char *buffer, size_t maxlen, const char *format, va_list args)
|
||||
ret = dopr(buffer, maxlen, format, args);
|
||||
|
||||
// postconditions
|
||||
if (buffer != NULL)
|
||||
{
|
||||
if (buffer != NULL) {
|
||||
assert((int) ret >= 0);
|
||||
assert(ret < maxlen);
|
||||
assert(buffer[ret] == '\0');
|
||||
@@ -797,15 +783,11 @@ static int xdopr(char *buffer, size_t maxlen, const char *format, va_list args)
|
||||
return (int) ret;
|
||||
}
|
||||
|
||||
|
||||
int upx_vsnprintf(char *str, size_t count, const char *format, va_list ap)
|
||||
{
|
||||
int upx_vsnprintf(char *str, size_t count, const char *format, va_list ap) {
|
||||
return xdopr(str, count, format, ap);
|
||||
}
|
||||
|
||||
|
||||
int __acc_cdecl_va upx_snprintf(char *str, size_t count, const char *format,...)
|
||||
{
|
||||
int __acc_cdecl_va upx_snprintf(char *str, size_t count, const char *format, ...) {
|
||||
va_list ap;
|
||||
int ret;
|
||||
|
||||
@@ -815,16 +797,13 @@ int __acc_cdecl_va upx_snprintf(char *str, size_t count, const char *format,...)
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
int upx_vasprintf(char **ptr, const char *format, va_list ap)
|
||||
{
|
||||
int upx_vasprintf(char **ptr, const char *format, va_list ap) {
|
||||
int ret;
|
||||
|
||||
assert(ptr != NULL);
|
||||
*ptr = NULL;
|
||||
ret = xdopr(NULL, 0, format, ap);
|
||||
if (ret > 0)
|
||||
{
|
||||
if (ret > 0) {
|
||||
*ptr = (char *) malloc(ret + 1);
|
||||
assert(*ptr != NULL);
|
||||
if (*ptr == NULL)
|
||||
@@ -834,9 +813,7 @@ int upx_vasprintf(char **ptr, const char *format, va_list ap)
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
int __acc_cdecl_va upx_asprintf(char **ptr, const char *format, ...)
|
||||
{
|
||||
int __acc_cdecl_va upx_asprintf(char **ptr, const char *format, ...) {
|
||||
va_list ap;
|
||||
int ret;
|
||||
|
||||
@@ -846,7 +823,6 @@ int __acc_cdecl_va upx_asprintf(char **ptr, const char *format, ...)
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
//
|
||||
**************************************************************************/
|
||||
@@ -998,4 +974,3 @@ int main(void)
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user