diff --git a/src/lib/core/datetime.c b/src/lib/core/datetime.c index 387db53f0eedef40f754db93344afaaa8dfc6b7e..e28cb79655363bc1efdbed559a5be41e9aac929e 100644 --- a/src/lib/core/datetime.c +++ b/src/lib/core/datetime.c @@ -577,63 +577,55 @@ interval_to_string(const struct interval *ival, char *buf, ssize_t len) "%+d", /* true */ }; - bool need_sign = true; size_t sz = 0; if (ival->year != 0) { SNPRINT(sz, snprintf, buf, len, "%+d years", ival->year); - need_sign = false; } if (ival->month != 0) { SPACE(); - SNPRINT(sz, snprintf, buf, len, signed_fmt[need_sign], + SNPRINT(sz, snprintf, buf, len, signed_fmt[sz == 0], ival->month); SNPRINT(sz, snprintf, buf, len, " months"); - need_sign = false; } if (ival->week != 0) { SPACE(); - SNPRINT(sz, snprintf, buf, len, signed_fmt[need_sign], + SNPRINT(sz, snprintf, buf, len, signed_fmt[sz == 0], ival->week); SNPRINT(sz, snprintf, buf, len, " weeks"); - need_sign = false; } int64_t days = (int64_t)ival->day; if (days != 0) { SPACE(); - SNPRINT(sz, snprintf, buf, len, long_signed_fmt[need_sign], + SNPRINT(sz, snprintf, buf, len, long_signed_fmt[sz == 0], days); SNPRINT(sz, snprintf, buf, len, " days"); - need_sign = false; } int64_t hours = (int64_t)ival->hour; if (ival->hour != 0) { SPACE(); - SNPRINT(sz, snprintf, buf, len, long_signed_fmt[need_sign], + SNPRINT(sz, snprintf, buf, len, long_signed_fmt[sz == 0], hours); SNPRINT(sz, snprintf, buf, len, " hours"); - need_sign = false; } int64_t minutes = (int64_t)ival->min; if (minutes != 0) { SPACE(); - SNPRINT(sz, snprintf, buf, len, long_signed_fmt[need_sign], + SNPRINT(sz, snprintf, buf, len, long_signed_fmt[sz == 0], minutes); SNPRINT(sz, snprintf, buf, len, " minutes"); - need_sign = false; } int64_t secs = (int64_t)ival->sec; if (secs != 0 || sz == 0) { SPACE(); - SNPRINT(sz, snprintf, buf, len, long_signed_fmt[need_sign], + SNPRINT(sz, snprintf, buf, len, long_signed_fmt[sz == 0], secs); SNPRINT(sz, snprintf, buf, len, " seconds"); - need_sign = false; } int32_t nsec = ival->nsec; if (nsec != 0) { SPACE(); - SNPRINT(sz, snprintf, buf, len, signed_fmt[need_sign], + SNPRINT(sz, snprintf, buf, len, signed_fmt[sz == 0], nsec); SNPRINT(sz, snprintf, buf, len, " nanoseconds"); }