1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-05 23:56:58 +03:00

Remove unnecessary uses of Abs()

Use C standard abs() or fabs() instead.

Reviewed-by: Zhang Mingli <zmlpostgres@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://www.postgresql.org/message-id/flat/4beb42b5-216b-bce8-d452-d924d5794c63%40enterprisedb.com
This commit is contained in:
Peter Eisentraut 2022-10-07 13:28:38 +02:00
parent 0fe954c285
commit f14aad5169
26 changed files with 54 additions and 49 deletions

View File

@ -95,7 +95,7 @@ gdb_date_dist(const void *a, const void *b, FmgrInfo *flinfo)
DateADTGetDatum(*((const DateADT *) a)), DateADTGetDatum(*((const DateADT *) a)),
DateADTGetDatum(*((const DateADT *) b))); DateADTGetDatum(*((const DateADT *) b)));
return (float8) Abs(DatumGetInt32(diff)); return (float8) abs(DatumGetInt32(diff));
} }
@ -123,7 +123,7 @@ date_dist(PG_FUNCTION_ARGS)
PG_GETARG_DATUM(0), PG_GETARG_DATUM(0),
PG_GETARG_DATUM(1)); PG_GETARG_DATUM(1));
PG_RETURN_INT32(Abs(DatumGetInt32(diff))); PG_RETURN_INT32(abs(DatumGetInt32(diff)));
} }

View File

@ -79,7 +79,7 @@ gbt_float8_dist(const void *a, const void *b, FmgrInfo *flinfo)
r = arg1 - arg2; r = arg1 - arg2;
if (unlikely(isinf(r)) && !isinf(arg1) && !isinf(arg2)) if (unlikely(isinf(r)) && !isinf(arg1) && !isinf(arg2))
float_overflow_error(); float_overflow_error();
return Abs(r); return fabs(r);
} }
@ -110,7 +110,7 @@ float8_dist(PG_FUNCTION_ARGS)
if (unlikely(isinf(r)) && !isinf(a) && !isinf(b)) if (unlikely(isinf(r)) && !isinf(a) && !isinf(b))
float_overflow_error(); float_overflow_error();
PG_RETURN_FLOAT8(Abs(r)); PG_RETURN_FLOAT8(fabs(r));
} }
/************************************************** /**************************************************

View File

@ -105,7 +105,7 @@ int2_dist(PG_FUNCTION_ARGS)
(errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE),
errmsg("smallint out of range"))); errmsg("smallint out of range")));
ra = Abs(r); ra = abs(r);
PG_RETURN_INT16(ra); PG_RETURN_INT16(ra);
} }

View File

@ -106,7 +106,7 @@ int4_dist(PG_FUNCTION_ARGS)
(errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE),
errmsg("integer out of range"))); errmsg("integer out of range")));
ra = Abs(r); ra = abs(r);
PG_RETURN_INT32(ra); PG_RETURN_INT32(ra);
} }

View File

@ -83,7 +83,7 @@ intr2num(const Interval *i)
static float8 static float8
gbt_intv_dist(const void *a, const void *b, FmgrInfo *flinfo) gbt_intv_dist(const void *a, const void *b, FmgrInfo *flinfo)
{ {
return (float8) Abs(intr2num((const Interval *) a) - intr2num((const Interval *) b)); return fabs(intr2num((const Interval *) a) - intr2num((const Interval *) b));
} }
/* /*

View File

@ -118,7 +118,7 @@ gbt_time_dist(const void *a, const void *b, FmgrInfo *flinfo)
i = DatumGetIntervalP(DirectFunctionCall2(time_mi_time, i = DatumGetIntervalP(DirectFunctionCall2(time_mi_time,
TimeADTGetDatumFast(*aa), TimeADTGetDatumFast(*aa),
TimeADTGetDatumFast(*bb))); TimeADTGetDatumFast(*bb)));
return (float8) Abs(INTERVAL_TO_SEC(i)); return fabs(INTERVAL_TO_SEC(i));
} }

View File

@ -123,7 +123,7 @@ gbt_ts_dist(const void *a, const void *b, FmgrInfo *flinfo)
i = DatumGetIntervalP(DirectFunctionCall2(timestamp_mi, i = DatumGetIntervalP(DirectFunctionCall2(timestamp_mi,
TimestampGetDatumFast(*aa), TimestampGetDatumFast(*aa),
TimestampGetDatumFast(*bb))); TimestampGetDatumFast(*bb)));
return (float8) Abs(INTERVAL_TO_SEC(i)); return fabs(INTERVAL_TO_SEC(i));
} }

View File

@ -87,7 +87,7 @@ typedef struct
(ivp)->day * (24.0 * SECS_PER_HOUR) + \ (ivp)->day * (24.0 * SECS_PER_HOUR) + \
(ivp)->month * (30.0 * SECS_PER_DAY)) (ivp)->month * (30.0 * SECS_PER_DAY))
#define GET_FLOAT_DISTANCE(t, arg1, arg2) Abs( ((float8) *((const t *) (arg1))) - ((float8) *((const t *) (arg2))) ) #define GET_FLOAT_DISTANCE(t, arg1, arg2) fabs( ((float8) *((const t *) (arg1))) - ((float8) *((const t *) (arg2))) )
extern Interval *abs_interval(Interval *a); extern Interval *abs_interval(Interval *a);

View File

@ -426,7 +426,7 @@ gbt_var_penalty(float *res, const GISTENTRY *o, const GISTENTRY *n,
tmp[1] = (unsigned char) (((VARSIZE(uk.lower) - VARHDRSZ) <= ul) ? 0 : (VARDATA(uk.lower)[ul])); tmp[1] = (unsigned char) (((VARSIZE(uk.lower) - VARHDRSZ) <= ul) ? 0 : (VARDATA(uk.lower)[ul]));
tmp[2] = (unsigned char) (((VARSIZE(ok.upper) - VARHDRSZ) <= ul) ? 0 : (VARDATA(ok.upper)[ul])); tmp[2] = (unsigned char) (((VARSIZE(ok.upper) - VARHDRSZ) <= ul) ? 0 : (VARDATA(ok.upper)[ul]));
tmp[3] = (unsigned char) (((VARSIZE(uk.upper) - VARHDRSZ) <= ul) ? 0 : (VARDATA(uk.upper)[ul])); tmp[3] = (unsigned char) (((VARSIZE(uk.upper) - VARHDRSZ) <= ul) ? 0 : (VARDATA(uk.upper)[ul]));
dres = Abs(tmp[0] - tmp[1]) + Abs(tmp[3] - tmp[2]); dres = abs(tmp[0] - tmp[1]) + abs(tmp[3] - tmp[2]);
dres /= 256.0; dres /= 256.0;
} }

View File

@ -925,7 +925,7 @@ rt_cube_size(NDBOX *a, double *size)
{ {
result = 1.0; result = 1.0;
for (i = 0; i < DIM(a); i++) for (i = 0; i < DIM(a); i++)
result *= Abs(UR_COORD(a, i) - LL_COORD(a, i)); result *= fabs(UR_COORD(a, i) - LL_COORD(a, i));
} }
*size = result; *size = result;
} }

View File

@ -4,6 +4,7 @@
#include "postgres.h" #include "postgres.h"
#include <limits.h> #include <limits.h>
#include <math.h>
#include "_int.h" #include "_int.h"
#include "access/gist.h" #include "access/gist.h"
@ -539,7 +540,7 @@ g_int_picksplit(PG_FUNCTION_ARGS)
union_d = inner_int_union(datum_r, datum_alpha); union_d = inner_int_union(datum_r, datum_alpha);
rt__int_size(union_d, &size_beta); rt__int_size(union_d, &size_beta);
pfree(union_d); pfree(union_d);
costvector[i - 1].cost = Abs((size_alpha - size_l) - (size_beta - size_r)); costvector[i - 1].cost = fabs((size_alpha - size_l) - (size_beta - size_r));
} }
qsort((void *) costvector, maxoff, sizeof(SPLITCOST), comparecost); qsort((void *) costvector, maxoff, sizeof(SPLITCOST), comparecost);

View File

@ -3,6 +3,8 @@
*/ */
#include "postgres.h" #include "postgres.h"
#include <math.h>
#include "_int.h" #include "_int.h"
#include "access/gist.h" #include "access/gist.h"
#include "access/reloptions.h" #include "access/reloptions.h"
@ -389,7 +391,7 @@ g_intbig_picksplit(PG_FUNCTION_ARGS)
_j = GETENTRY(entryvec, j); _j = GETENTRY(entryvec, j);
size_alpha = hemdist(datum_l, _j, siglen); size_alpha = hemdist(datum_l, _j, siglen);
size_beta = hemdist(datum_r, _j, siglen); size_beta = hemdist(datum_r, _j, siglen);
costvector[j - 1].cost = Abs(size_alpha - size_beta); costvector[j - 1].cost = abs(size_alpha - size_beta);
} }
qsort((void *) costvector, maxoff, sizeof(SPLITCOST), comparecost); qsort((void *) costvector, maxoff, sizeof(SPLITCOST), comparecost);

View File

@ -7,6 +7,8 @@
*/ */
#include "postgres.h" #include "postgres.h"
#include <math.h>
#include "access/gist.h" #include "access/gist.h"
#include "access/reloptions.h" #include "access/reloptions.h"
#include "access/stratnum.h" #include "access/stratnum.h"
@ -315,7 +317,7 @@ _ltree_picksplit(PG_FUNCTION_ARGS)
_j = GETENTRY(entryvec, j); _j = GETENTRY(entryvec, j);
size_alpha = hemdist(datum_l, _j, siglen); size_alpha = hemdist(datum_l, _j, siglen);
size_beta = hemdist(datum_r, _j, siglen); size_beta = hemdist(datum_r, _j, siglen);
costvector[j - 1].cost = Abs(size_alpha - size_beta); costvector[j - 1].cost = abs(size_alpha - size_beta);
} }
qsort((void *) costvector, maxoff, sizeof(SPLITCOST), comparecost); qsort((void *) costvector, maxoff, sizeof(SPLITCOST), comparecost);

View File

@ -952,7 +952,7 @@ restore(char *result, float val, int n)
} }
else else
{ {
if (Abs(exp) <= 4) if (abs(exp) <= 4)
{ {
/* /*
* remove the decimal point from the mantissa and write the digits * remove the decimal point from the mantissa and write the digits
@ -1039,7 +1039,7 @@ restore(char *result, float val, int n)
} }
} }
/* do nothing for Abs(exp) > 4; %e must be OK */ /* do nothing for abs(exp) > 4; %e must be OK */
/* just get rid of zeroes after [eE]- and +zeroes after [Ee]. */ /* just get rid of zeroes after [eE]- and +zeroes after [Ee]. */
/* ... this is not done yet. */ /* ... this is not done yet. */

View File

@ -797,8 +797,8 @@ gist_box_picksplit(PG_FUNCTION_ARGS)
for (i = 0; i < commonEntriesCount; i++) for (i = 0; i < commonEntriesCount; i++)
{ {
box = DatumGetBoxP(entryvec->vector[commonEntries[i].index].key); box = DatumGetBoxP(entryvec->vector[commonEntries[i].index].key);
commonEntries[i].delta = Abs(float8_mi(box_penalty(leftBox, box), commonEntries[i].delta = fabs(float8_mi(box_penalty(leftBox, box),
box_penalty(rightBox, box))); box_penalty(rightBox, box)));
} }
/* /*

View File

@ -162,7 +162,7 @@ gimme_edge(PlannerInfo *root, Gene gene1, Gene gene2, Edge *edge_table)
for (i = 0; i < edges; i++) for (i = 0; i < edges; i++)
{ {
if ((Gene) Abs(edge_table[city1].edge_list[i]) == city2) if ((Gene) abs(edge_table[city1].edge_list[i]) == city2)
{ {
/* mark shared edges as negative */ /* mark shared edges as negative */
@ -249,14 +249,14 @@ remove_gene(PlannerInfo *root, Gene gene, Edge edge, Edge *edge_table)
for (i = 0; i < edge.unused_edges; i++) for (i = 0; i < edge.unused_edges; i++)
{ {
possess_edge = (int) Abs(edge.edge_list[i]); possess_edge = abs(edge.edge_list[i]);
genes_remaining = edge_table[possess_edge].unused_edges; genes_remaining = edge_table[possess_edge].unused_edges;
/* find the input gene in all edge_lists and delete it */ /* find the input gene in all edge_lists and delete it */
for (j = 0; j < genes_remaining; j++) for (j = 0; j < genes_remaining; j++)
{ {
if ((Gene) Abs(edge_table[possess_edge].edge_list[j]) == gene) if ((Gene) abs(edge_table[possess_edge].edge_list[j]) == gene)
{ {
edge_table[possess_edge].unused_edges--; edge_table[possess_edge].unused_edges--;
@ -307,7 +307,7 @@ gimme_gene(PlannerInfo *root, Edge edge, Edge *edge_table)
* converting to absolute values * converting to absolute values
*/ */
if (friend < 0) if (friend < 0)
return (Gene) Abs(friend); return (Gene) abs(friend);
/* /*

View File

@ -3206,7 +3206,7 @@ check_new_partition_bound(char *relname, Relation parent,
* datums list. * datums list.
*/ */
PartitionRangeDatum *datum = PartitionRangeDatum *datum =
list_nth(spec->upperdatums, Abs(cmpval) - 1); list_nth(spec->upperdatums, abs(cmpval) - 1);
/* /*
* The new partition overlaps with the * The new partition overlaps with the
@ -3232,7 +3232,7 @@ check_new_partition_bound(char *relname, Relation parent,
* if we have equality, point to the first one. * if we have equality, point to the first one.
*/ */
datum = cmpval == 0 ? linitial(spec->lowerdatums) : datum = cmpval == 0 ? linitial(spec->lowerdatums) :
list_nth(spec->lowerdatums, Abs(cmpval) - 1); list_nth(spec->lowerdatums, abs(cmpval) - 1);
overlap = true; overlap = true;
overlap_location = datum->location; overlap_location = datum->location;
with = boundinfo->indexes[offset + 1]; with = boundinfo->indexes[offset + 1];

View File

@ -448,14 +448,14 @@ AppendSeconds(char *cp, int sec, fsec_t fsec, int precision, bool fillzeros)
Assert(precision >= 0); Assert(precision >= 0);
if (fillzeros) if (fillzeros)
cp = pg_ultostr_zeropad(cp, Abs(sec), 2); cp = pg_ultostr_zeropad(cp, abs(sec), 2);
else else
cp = pg_ultostr(cp, Abs(sec)); cp = pg_ultostr(cp, abs(sec));
/* fsec_t is just an int32 */ /* fsec_t is just an int32 */
if (fsec != 0) if (fsec != 0)
{ {
int32 value = Abs(fsec); int32 value = abs(fsec);
char *end = &cp[precision + 1]; char *end = &cp[precision + 1];
bool gotnonzero = false; bool gotnonzero = false;
@ -490,7 +490,7 @@ AppendSeconds(char *cp, int sec, fsec_t fsec, int precision, bool fillzeros)
* which will generate a correct answer in the minimum valid width. * which will generate a correct answer in the minimum valid width.
*/ */
if (value) if (value)
return pg_ultostr(cp, Abs(fsec)); return pg_ultostr(cp, abs(fsec));
return end; return end;
} }

View File

@ -8870,7 +8870,7 @@ div_var_fast(const NumericVar *var1, const NumericVar *var2,
if (qdigit != 0) if (qdigit != 0)
{ {
/* Do we need to normalize now? */ /* Do we need to normalize now? */
maxdiv += Abs(qdigit); maxdiv += abs(qdigit);
if (maxdiv > (INT_MAX - INT_MAX / NBASE - 1) / (NBASE - 1)) if (maxdiv > (INT_MAX - INT_MAX / NBASE - 1) / (NBASE - 1))
{ {
/* /*
@ -8923,7 +8923,7 @@ div_var_fast(const NumericVar *var1, const NumericVar *var2,
fquotient = fdividend * fdivisorinverse; fquotient = fdividend * fdivisorinverse;
qdigit = (fquotient >= 0.0) ? ((int) fquotient) : qdigit = (fquotient >= 0.0) ? ((int) fquotient) :
(((int) fquotient) - 1); /* truncate towards -infinity */ (((int) fquotient) - 1); /* truncate towards -infinity */
maxdiv += Abs(qdigit); maxdiv += abs(qdigit);
} }
/* /*
@ -9107,7 +9107,7 @@ div_var_int(const NumericVar *var, int ival, int ival_weight,
* become as large as divisor * NBASE - 1, and so it requires a 64-bit * become as large as divisor * NBASE - 1, and so it requires a 64-bit
* integer if this exceeds UINT_MAX. * integer if this exceeds UINT_MAX.
*/ */
divisor = Abs(ival); divisor = abs(ival);
if (divisor <= UINT_MAX / NBASE) if (divisor <= UINT_MAX / NBASE)
{ {
@ -9948,7 +9948,7 @@ exp_var(const NumericVar *arg, NumericVar *result, int rscale)
/* Guard against overflow/underflow */ /* Guard against overflow/underflow */
/* If you change this limit, see also power_var()'s limit */ /* If you change this limit, see also power_var()'s limit */
if (Abs(val) >= NUMERIC_MAX_RESULT_SCALE * 3) if (fabs(val) >= NUMERIC_MAX_RESULT_SCALE * 3)
{ {
if (val > 0) if (val > 0)
ereport(ERROR, ereport(ERROR,
@ -9966,15 +9966,15 @@ exp_var(const NumericVar *arg, NumericVar *result, int rscale)
* Reduce x to the range -0.01 <= x <= 0.01 (approximately) by dividing by * Reduce x to the range -0.01 <= x <= 0.01 (approximately) by dividing by
* 2^ndiv2, to improve the convergence rate of the Taylor series. * 2^ndiv2, to improve the convergence rate of the Taylor series.
* *
* Note that the overflow check above ensures that Abs(x) < 6000, which * Note that the overflow check above ensures that fabs(x) < 6000, which
* means that ndiv2 <= 20 here. * means that ndiv2 <= 20 here.
*/ */
if (Abs(val) > 0.01) if (fabs(val) > 0.01)
{ {
ndiv2 = 1; ndiv2 = 1;
val /= 2; val /= 2;
while (Abs(val) > 0.01) while (fabs(val) > 0.01)
{ {
ndiv2++; ndiv2++;
val /= 2; val /= 2;
@ -10116,7 +10116,7 @@ estimate_ln_dweight(const NumericVar *var)
*---------- *----------
*/ */
ln_var = log((double) digits) + dweight * 2.302585092994046; ln_var = log((double) digits) + dweight * 2.302585092994046;
ln_dweight = (int) log10(Abs(ln_var)); ln_dweight = (int) log10(fabs(ln_var));
} }
else else
{ {
@ -10427,7 +10427,7 @@ power_var(const NumericVar *base, const NumericVar *exp, NumericVar *result)
val = numericvar_to_double_no_overflow(&ln_num); val = numericvar_to_double_no_overflow(&ln_num);
/* initial overflow/underflow test with fuzz factor */ /* initial overflow/underflow test with fuzz factor */
if (Abs(val) > NUMERIC_MAX_RESULT_SCALE * 3.01) if (fabs(val) > NUMERIC_MAX_RESULT_SCALE * 3.01)
{ {
if (val > 0) if (val > 0)
ereport(ERROR, ereport(ERROR,
@ -10583,7 +10583,7 @@ power_var_int(const NumericVar *base, int exp, NumericVar *result, int rscale)
* Now we can proceed with the multiplications. * Now we can proceed with the multiplications.
*/ */
neg = (exp < 0); neg = (exp < 0);
mask = Abs(exp); mask = abs(exp);
init_var(&base_prod); init_var(&base_prod);
set_var_from_var(base, &base_prod); set_var_from_var(base, &base_prod);

View File

@ -743,8 +743,8 @@ range_gist_picksplit(PG_FUNCTION_ARGS)
emptyCount = total_count - nonEmptyCount; emptyCount = total_count - nonEmptyCount;
if (infCount > 0 && nonInfCount > 0 && if (infCount > 0 && nonInfCount > 0 &&
(Abs(infCount - nonInfCount) <= (abs(infCount - nonInfCount) <=
Abs(emptyCount - nonEmptyCount))) abs(emptyCount - nonEmptyCount)))
{ {
classes_groups[CLS_NORMAL] = SPLIT_RIGHT; classes_groups[CLS_NORMAL] = SPLIT_RIGHT;
classes_groups[CLS_CONTAIN_EMPTY] = SPLIT_RIGHT; classes_groups[CLS_CONTAIN_EMPTY] = SPLIT_RIGHT;

View File

@ -7835,7 +7835,7 @@ brincostestimate(PlannerInfo *root, IndexPath *path, double loop_count,
double varCorrelation = 0.0; double varCorrelation = 0.0;
if (sslot.nnumbers > 0) if (sslot.nnumbers > 0)
varCorrelation = Abs(sslot.numbers[0]); varCorrelation = fabs(sslot.numbers[0]);
if (varCorrelation > *indexCorrelation) if (varCorrelation > *indexCorrelation)
*indexCorrelation = varCorrelation; *indexCorrelation = varCorrelation;

View File

@ -3290,7 +3290,7 @@ interval_mul(PG_FUNCTION_ARGS)
* cascade from months and days. It might still be >24 if the combination * cascade from months and days. It might still be >24 if the combination
* of cascade and the seconds factor operation itself. * of cascade and the seconds factor operation itself.
*/ */
if (Abs(sec_remainder) >= SECS_PER_DAY) if (fabs(sec_remainder) >= SECS_PER_DAY)
{ {
result->day += (int) (sec_remainder / SECS_PER_DAY); result->day += (int) (sec_remainder / SECS_PER_DAY);
sec_remainder -= (int) (sec_remainder / SECS_PER_DAY) * SECS_PER_DAY; sec_remainder -= (int) (sec_remainder / SECS_PER_DAY) * SECS_PER_DAY;
@ -3347,7 +3347,7 @@ interval_div(PG_FUNCTION_ARGS)
sec_remainder = (orig_day / factor - result->day + sec_remainder = (orig_day / factor - result->day +
month_remainder_days - (int) month_remainder_days) * SECS_PER_DAY; month_remainder_days - (int) month_remainder_days) * SECS_PER_DAY;
sec_remainder = TSROUND(sec_remainder); sec_remainder = TSROUND(sec_remainder);
if (Abs(sec_remainder) >= SECS_PER_DAY) if (fabs(sec_remainder) >= SECS_PER_DAY)
{ {
result->day += (int) (sec_remainder / SECS_PER_DAY); result->day += (int) (sec_remainder / SECS_PER_DAY);
sec_remainder -= (int) (sec_remainder / SECS_PER_DAY) * SECS_PER_DAY; sec_remainder -= (int) (sec_remainder / SECS_PER_DAY) * SECS_PER_DAY;

View File

@ -700,7 +700,7 @@ gtsvector_picksplit(PG_FUNCTION_ARGS)
costvector[j - 1].pos = j; costvector[j - 1].pos = j;
size_alpha = hemdistcache(&(cache[seed_1]), &(cache[j]), siglen); size_alpha = hemdistcache(&(cache[seed_1]), &(cache[j]), siglen);
size_beta = hemdistcache(&(cache[seed_2]), &(cache[j]), siglen); size_beta = hemdistcache(&(cache[seed_2]), &(cache[j]), siglen);
costvector[j - 1].cost = Abs(size_alpha - size_beta); costvector[j - 1].cost = abs(size_alpha - size_beta);
} }
qsort((void *) costvector, maxoff, sizeof(SPLITCOST), comparecost); qsort((void *) costvector, maxoff, sizeof(SPLITCOST), comparecost);

View File

@ -257,7 +257,7 @@ calc_rank_and(const float *w, TSVector t, TSQuery q)
{ {
for (p = 0; p < lenct; p++) for (p = 0; p < lenct; p++)
{ {
dist = Abs((int) WEP_GETPOS(post[l]) - (int) WEP_GETPOS(ct[p])); dist = abs((int) WEP_GETPOS(post[l]) - (int) WEP_GETPOS(ct[p]));
if (dist || (dist == 0 && (pos[i] == POSNULL || pos[k] == POSNULL))) if (dist || (dist == 0 && (pos[i] == POSNULL || pos[k] == POSNULL)))
{ {
float curw; float curw;

View File

@ -5378,7 +5378,7 @@ estimate_variable_size(struct config_generic *gconf)
* small values. Maximum value is 2147483647, i.e. 10 chars. * small values. Maximum value is 2147483647, i.e. 10 chars.
* Include one byte for sign. * Include one byte for sign.
*/ */
if (Abs(*conf->variable) < 1000) if (abs(*conf->variable) < 1000)
valsize = 3 + 1; valsize = 3 + 1;
else else
valsize = 10 + 1; valsize = 10 + 1;

View File

@ -742,9 +742,9 @@ AppendSeconds(char *cp, int sec, fsec_t fsec, int precision, bool fillzeros)
else else
{ {
if (fillzeros) if (fillzeros)
sprintf(cp, "%02d.%0*d", abs(sec), precision, (int) Abs(fsec)); sprintf(cp, "%02d.%0*d", abs(sec), precision, abs(fsec));
else else
sprintf(cp, "%d.%0*d", abs(sec), precision, (int) Abs(fsec)); sprintf(cp, "%d.%0*d", abs(sec), precision, abs(fsec));
TrimTrailingZeros(cp); TrimTrailingZeros(cp);
} }
} }