[systemd-devel] [PATCH] journalctl: add --utc option
Lennart Poettering
lennart at poettering.net
Thu Oct 2 02:19:58 PDT 2014
On Thu, 02.10.14 09:36, Jan Synacek (jsynacek at redhat.com) wrote:
> Introduce option to display time in UTC.
Looks generally OK.
> struct tm tm;
> + struct tm *(*gettime_r)(const time_t *, struct tm *);
This isn't particularly beautiful and easy to grok, but certainly
efficient. So, let's leave it in...
>
> r = -ENOENT;
> + gettime_r = (flags & OUTPUT_UTC) ? gmtime_r : localtime_r;
>
> if (realtime)
> r = safe_atou64(realtime, &x);
> @@ -329,17 +331,17 @@ static int output_short(
>
> switch(mode) {
> case OUTPUT_SHORT_ISO:
> - r = strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S%z", localtime_r(&t, &tm));
> + r = strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S%z", gettime_r(&t, &tm));
> break;
> case OUTPUT_SHORT_PRECISE:
> - r = strftime(buf, sizeof(buf), "%b %d %H:%M:%S", localtime_r(&t, &tm));
> + r = strftime(buf, sizeof(buf), "%b %d %H:%M:%S", gettime_r(&t, &tm));
> if (r > 0) {
> snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
> ".%06llu", (unsigned long long) (x % USEC_PER_SEC));
> }
> break;
> default:
> - r = strftime(buf, sizeof(buf), "%b %d %H:%M:%S", localtime_r(&t, &tm));
> + r = strftime(buf, sizeof(buf), "%b %d %H:%M:%S", gettime_r(&t, &tm));
> }
>
> if (r <= 0) {
> diff --git a/src/shared/output-mode.h b/src/shared/output-mode.h
> index ac1bb01..8f78aac 100644
> --- a/src/shared/output-mode.h
> +++ b/src/shared/output-mode.h
> @@ -26,6 +26,7 @@ typedef enum OutputMode {
> OUTPUT_SHORT_ISO,
> OUTPUT_SHORT_PRECISE,
> OUTPUT_SHORT_MONOTONIC,
> + OUTPUT_UTC,
> OUTPUT_VERBOSE,
> OUTPUT_EXPORT,
> OUTPUT_JSON,
This should not be part of OutputMode, but of OutputFlags!
Otherwise looks good. Do you have commit access? If so, please push after fixing the issue above.
Lennart
--
Lennart Poettering, Red Hat
More information about the systemd-devel
mailing list