From: Zbigniew Jędrzejewski-Szmek Date: Wed, 7 Apr 2021 15:31:34 +0000 (+0200) Subject: timedatectl: rework handling of conditions in print_status_info() X-Git-Tag: v249-rc1~456^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a03e335b86a44285c38514be2f2be9883ea7d294;p=thirdparty%2Fsystemd.git timedatectl: rework handling of conditions in print_status_info() gcc-11.0.1-0.3.fc34.x86_64 was complaining that n might be unset with --optimization=1. It was wrong, but let's rework the code to make it obvious that it is always set. --- diff --git a/src/timedate/timedatectl.c b/src/timedate/timedatectl.c index fb08f9ad260..4cab8acbd9c 100644 --- a/src/timedate/timedatectl.c +++ b/src/timedate/timedatectl.c @@ -96,21 +96,17 @@ static int print_status_info(const StatusInfo *i) { } else log_warning("Could not get time from timedated and not operating locally, ignoring."); - if (have_time) - n = strftime(a, sizeof a, "%a %Y-%m-%d %H:%M:%S %Z", localtime_r(&sec, &tm)); - + n = have_time ? strftime(a, sizeof a, "%a %Y-%m-%d %H:%M:%S %Z", localtime_r(&sec, &tm)) : 0; r = table_add_many(table, TABLE_STRING, "Local time:", - TABLE_STRING, have_time && n > 0 ? a : "n/a"); + TABLE_STRING, n > 0 ? a : "n/a"); if (r < 0) return table_log_add_error(r); - if (have_time) - n = strftime(a, sizeof a, "%a %Y-%m-%d %H:%M:%S UTC", gmtime_r(&sec, &tm)); - + n = have_time ? strftime(a, sizeof a, "%a %Y-%m-%d %H:%M:%S UTC", gmtime_r(&sec, &tm)) : 0; r = table_add_many(table, TABLE_STRING, "Universal time:", - TABLE_STRING, have_time && n > 0 ? a : "n/a"); + TABLE_STRING, n > 0 ? a : "n/a"); if (r < 0) return table_log_add_error(r); @@ -119,26 +115,23 @@ static int print_status_info(const StatusInfo *i) { rtc_sec = (time_t) (i->rtc_time / USEC_PER_SEC); n = strftime(a, sizeof a, "%a %Y-%m-%d %H:%M:%S", gmtime_r(&rtc_sec, &tm)); - } - + } else + n = 0; r = table_add_many(table, TABLE_STRING, "RTC time:", - TABLE_STRING, i->rtc_time > 0 && n > 0 ? a : "n/a"); + TABLE_STRING, n > 0 ? a : "n/a"); if (r < 0) return table_log_add_error(r); - if (have_time) - n = strftime(a, sizeof a, "%Z, %z", localtime_r(&sec, &tm)); - r = table_add_cell(table, NULL, TABLE_STRING, "Time zone:"); if (r < 0) return table_log_add_error(r); - r = table_add_cell_stringf(table, NULL, "%s (%s)", strna(i->timezone), have_time && n > 0 ? a : "n/a"); + n = have_time ? strftime(a, sizeof a, "%Z, %z", localtime_r(&sec, &tm)) : 0; + r = table_add_cell_stringf(table, NULL, "%s (%s)", strna(i->timezone), n > 0 ? a : "n/a"); if (r < 0) return table_log_add_error(r); - /* Restore the $TZ */ r = set_unset_env("TZ", old_tz, true); if (r < 0)