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