Support negative nsecs when viewing seconds with hours and minutes.
svn path=/trunk/; revision=38862
This commit is contained in:
parent
afeee11220
commit
50be3577ab
|
@ -771,12 +771,17 @@ static gint
|
|||
set_time_hour_min_sec(const nstime_t *ts, gchar *buf)
|
||||
{
|
||||
time_t secs = ts->secs;
|
||||
long nsecs = (long) ts->nsecs;
|
||||
gboolean negative = FALSE;
|
||||
|
||||
if (secs < 0) {
|
||||
secs = -secs;
|
||||
negative = TRUE;
|
||||
}
|
||||
if (nsecs < 0) {
|
||||
nsecs = -nsecs;
|
||||
negative = TRUE;
|
||||
}
|
||||
|
||||
switch(timestamp_get_precision()) {
|
||||
case TS_PREC_FIXED_SEC:
|
||||
|
@ -806,18 +811,18 @@ set_time_hour_min_sec(const nstime_t *ts, gchar *buf)
|
|||
(gint32) secs / (60 * 60),
|
||||
(gint32) (secs / 60) % 60,
|
||||
(gint32) secs % 60,
|
||||
(long)ts->nsecs / 100000000);
|
||||
nsecs / 100000000);
|
||||
} else if (secs >= 60) {
|
||||
g_snprintf(buf, COL_MAX_LEN, "%s%dm %2d.%01lds",
|
||||
negative ? "- " : "",
|
||||
(gint32) secs / 60,
|
||||
(gint32) secs % 60,
|
||||
(long)ts->nsecs / 100000000);
|
||||
nsecs / 100000000);
|
||||
} else {
|
||||
g_snprintf(buf, COL_MAX_LEN, "%s%d.%01lds",
|
||||
negative ? "- " : "",
|
||||
(gint32) secs,
|
||||
(long)ts->nsecs / 100000000);
|
||||
nsecs / 100000000);
|
||||
}
|
||||
break;
|
||||
case TS_PREC_FIXED_CSEC:
|
||||
|
@ -828,18 +833,18 @@ set_time_hour_min_sec(const nstime_t *ts, gchar *buf)
|
|||
(gint32) secs / (60 * 60),
|
||||
(gint32) (secs / 60) % 60,
|
||||
(gint32) secs % 60,
|
||||
(long)ts->nsecs / 10000000);
|
||||
nsecs / 10000000);
|
||||
} else if (secs >= 60) {
|
||||
g_snprintf(buf, COL_MAX_LEN, "%s%dm %2d.%02lds",
|
||||
negative ? "- " : "",
|
||||
(gint32) secs / 60,
|
||||
(gint32) secs % 60,
|
||||
(long)ts->nsecs / 10000000);
|
||||
nsecs / 10000000);
|
||||
} else {
|
||||
g_snprintf(buf, COL_MAX_LEN, "%s%d.%02lds",
|
||||
negative ? "- " : "",
|
||||
(gint32) secs,
|
||||
(long)ts->nsecs / 10000000);
|
||||
nsecs / 10000000);
|
||||
}
|
||||
break;
|
||||
case TS_PREC_FIXED_MSEC:
|
||||
|
@ -850,18 +855,18 @@ set_time_hour_min_sec(const nstime_t *ts, gchar *buf)
|
|||
(gint32) secs / (60 * 60),
|
||||
(gint32) (secs / 60) % 60,
|
||||
(gint32) secs % 60,
|
||||
(long)ts->nsecs / 1000000);
|
||||
nsecs / 1000000);
|
||||
} else if (secs >= 60) {
|
||||
g_snprintf(buf, COL_MAX_LEN, "%s%dm %2d.%03lds",
|
||||
negative ? "- " : "",
|
||||
(gint32) secs / 60,
|
||||
(gint32) secs % 60,
|
||||
(long)ts->nsecs / 1000000);
|
||||
nsecs / 1000000);
|
||||
} else {
|
||||
g_snprintf(buf, COL_MAX_LEN, "%s%d.%03lds",
|
||||
negative ? "- " : "",
|
||||
(gint32) secs,
|
||||
(long)ts->nsecs / 1000000);
|
||||
nsecs / 1000000);
|
||||
}
|
||||
break;
|
||||
case TS_PREC_FIXED_USEC:
|
||||
|
@ -872,18 +877,18 @@ set_time_hour_min_sec(const nstime_t *ts, gchar *buf)
|
|||
(gint32) secs / (60 * 60),
|
||||
(gint32) (secs / 60) % 60,
|
||||
(gint32) secs % 60,
|
||||
(long)ts->nsecs / 1000);
|
||||
nsecs / 1000);
|
||||
} else if (secs >= 60) {
|
||||
g_snprintf(buf, COL_MAX_LEN, "%s%dm %2d.%06lds",
|
||||
negative ? "- " : "",
|
||||
(gint32) secs / 60,
|
||||
(gint32) secs % 60,
|
||||
(long)ts->nsecs / 1000);
|
||||
nsecs / 1000);
|
||||
} else {
|
||||
g_snprintf(buf, COL_MAX_LEN, "%s%d.%06lds",
|
||||
negative ? "- " : "",
|
||||
(gint32) secs,
|
||||
(long)ts->nsecs / 1000);
|
||||
nsecs / 1000);
|
||||
}
|
||||
break;
|
||||
case TS_PREC_FIXED_NSEC:
|
||||
|
@ -894,18 +899,18 @@ set_time_hour_min_sec(const nstime_t *ts, gchar *buf)
|
|||
(gint32) secs / (60 * 60),
|
||||
(gint32) (secs / 60) % 60,
|
||||
(gint32) secs % 60,
|
||||
(long)ts->nsecs);
|
||||
nsecs);
|
||||
} else if (secs >= 60) {
|
||||
g_snprintf(buf, COL_MAX_LEN, "%s%dm %2d.%09lds",
|
||||
negative ? "- " : "",
|
||||
(gint32) secs / 60,
|
||||
(gint32) secs % 60,
|
||||
(long)ts->nsecs);
|
||||
nsecs);
|
||||
} else {
|
||||
g_snprintf(buf, COL_MAX_LEN, "%s%d.%09lds",
|
||||
negative ? "- " : "",
|
||||
(gint32) secs,
|
||||
(long)ts->nsecs);
|
||||
nsecs);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
Loading…
Reference in New Issue