mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-25 23:21:33 +03:00
util: tweak format_timespan() a bit
Make sure to always print out at least one valid component instead of falling back early to 0.
This commit is contained in:
parent
5c0d398dfc
commit
7c537b2e28
@ -251,6 +251,12 @@ char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy) {
|
||||
if (t == (usec_t) -1)
|
||||
return NULL;
|
||||
|
||||
if (t <= 0) {
|
||||
snprintf(p, l, "0");
|
||||
p[l-1] = 0;
|
||||
return p;
|
||||
}
|
||||
|
||||
/* The result of this function can be parsed with parse_sec */
|
||||
|
||||
for (i = 0; i < ELEMENTSOF(table); i++) {
|
||||
@ -259,15 +265,11 @@ char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy) {
|
||||
bool done = false;
|
||||
usec_t a, b;
|
||||
|
||||
if (t == 0 || t < accuracy) {
|
||||
if (!something) {
|
||||
snprintf(p, l, "0");
|
||||
p[l-1] = 0;
|
||||
return p;
|
||||
}
|
||||
|
||||
if (t <= 0)
|
||||
break;
|
||||
|
||||
if (t < accuracy && something)
|
||||
break;
|
||||
}
|
||||
|
||||
if (t < table[i].usec)
|
||||
continue;
|
||||
@ -322,7 +324,6 @@ char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy) {
|
||||
l -= n;
|
||||
p += n;
|
||||
|
||||
|
||||
something = true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user