]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
tree-wide: add FORMAT_TIMESTAMP_RELATIVE()
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 1 Jul 2021 12:43:52 +0000 (12:43 +0000)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 9 Jul 2021 09:03:36 +0000 (11:03 +0200)
src/basic/time-util.h
src/coredump/coredumpctl.c
src/login/loginctl.c
src/machine/machinectl.c
src/systemctl/systemctl-show.c

index 896124c4e43e3a2901bd3a5395b646eab2ed5ae5..acca1d1a2f21f889d735f5296b17e9265d6c2332 100644 (file)
@@ -129,8 +129,11 @@ static inline char* format_timestamp(char *buf, size_t l, usec_t t) {
  * see C11 §6.5.2.5, and
  * https://stackoverflow.com/questions/34880638/compound-literal-lifetime-and-if-blocks */
 #define FORMAT_TIMESTAMP(t) format_timestamp((char[FORMAT_TIMESTAMP_MAX]){}, FORMAT_TIMESTAMP_MAX, t)
+#define FORMAT_TIMESTAMP_RELATIVE(t)                                    \
+        format_timestamp_relative((char[FORMAT_TIMESTAMP_RELATIVE_MAX]){}, FORMAT_TIMESTAMP_RELATIVE_MAX, t)
 #define FORMAT_TIMESPAN(t, accuracy) format_timespan((char[FORMAT_TIMESPAN_MAX]){}, FORMAT_TIMESPAN_MAX, t, accuracy)
 
+
 int parse_timestamp(const char *t, usec_t *usec);
 
 int parse_sec(const char *t, usec_t *usec);
index 556670468af5d3fa8827f33e95397fb561ca12b1..c1969d12f5278b2fa3a67dac53625aac9a72508f 100644 (file)
@@ -645,15 +645,11 @@ static int print_info(FILE *file, sd_journal *j, bool need_space) {
                 usec_t u;
 
                 r = safe_atou64(timestamp, &u);
-                if (r >= 0) {
-                        char relative[FORMAT_TIMESPAN_MAX];
+                if (r >= 0)
+                        fprintf(file, "     Timestamp: %s (%s)\n",
+                                FORMAT_TIMESTAMP(u), FORMAT_TIMESTAMP_RELATIVE(u));
 
-                        fprintf(file,
-                                "     Timestamp: %s (%s)\n",
-                                FORMAT_TIMESTAMP(u),
-                                format_timestamp_relative(relative, sizeof(relative), u));
-
-                } else
+                else
                         fprintf(file, "     Timestamp: %s\n", timestamp);
         }
 
index b4f6548183cf892329f67248d6af62931c96f762..318d71a28a82632435cacfb98bc2b15cd50b33de 100644 (file)
@@ -450,7 +450,6 @@ static int print_session_status_info(sd_bus *bus, const char *path, bool *new_li
 
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
-        char since1[FORMAT_TIMESTAMP_RELATIVE_MAX];
         const char *s1, *s2;
         SessionStatusInfo i = {};
         int r;
@@ -471,7 +470,7 @@ static int print_session_status_info(sd_bus *bus, const char *path, bool *new_li
         else
                 printf("%"PRIu32"\n", i.uid);
 
-        s1 = format_timestamp_relative(since1, sizeof(since1), i.timestamp.realtime);
+        s1 = FORMAT_TIMESTAMP_RELATIVE(i.timestamp.realtime);
         s2 = FORMAT_TIMESTAMP(i.timestamp.realtime);
 
         if (s1)
@@ -580,7 +579,6 @@ static int print_user_status_info(sd_bus *bus, const char *path, bool *new_line)
 
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
-        char since1[FORMAT_TIMESTAMP_RELATIVE_MAX];
         const char *s1, *s2;
         _cleanup_(user_status_info_clear) UserStatusInfo i = {};
         int r;
@@ -599,7 +597,7 @@ static int print_user_status_info(sd_bus *bus, const char *path, bool *new_line)
         else
                 printf("%"PRIu32"\n", i.uid);
 
-        s1 = format_timestamp_relative(since1, sizeof(since1), i.timestamp.realtime);
+        s1 = FORMAT_TIMESTAMP_RELATIVE(i.timestamp.realtime);
         s2 = FORMAT_TIMESTAMP(i.timestamp.realtime);
 
         if (s1)
index 1bae6d887486bd7c7aabcb0a6732a216fb5fe17d..f05179734b7b56af5e9ea7cb91cc29279009406d 100644 (file)
@@ -507,7 +507,6 @@ static void machine_status_info_clear(MachineStatusInfo *info) {
 }
 
 static void print_machine_status_info(sd_bus *bus, MachineStatusInfo *i) {
-        char since1[FORMAT_TIMESTAMP_RELATIVE_MAX];
         _cleanup_free_ char *addresses = NULL;
         const char *s1, *s2;
         int ifi = -1;
@@ -522,7 +521,7 @@ static void print_machine_status_info(sd_bus *bus, MachineStatusInfo *i) {
         else
                 putchar('\n');
 
-        s1 = format_timestamp_relative(since1, sizeof(since1), i->timestamp.realtime);
+        s1 = FORMAT_TIMESTAMP_RELATIVE(i->timestamp.realtime);
         s2 = FORMAT_TIMESTAMP(i->timestamp.realtime);
 
         if (s1)
@@ -827,7 +826,6 @@ typedef struct ImageStatusInfo {
 } ImageStatusInfo;
 
 static void print_image_status_info(sd_bus *bus, ImageStatusInfo *i) {
-        char ts_relative[FORMAT_TIMESTAMP_RELATIVE_MAX];
         char bs[FORMAT_BYTES_MAX];
         char bs_exclusive[FORMAT_BYTES_MAX];
         const char *s1, *s2, *s3, *s4;
@@ -857,14 +855,14 @@ static void print_image_status_info(sd_bus *bus, ImageStatusInfo *i) {
                i->read_only ? "read-only" : "writable",
                i->read_only ? ansi_normal() : "");
 
-        s1 = format_timestamp_relative(ts_relative, sizeof(ts_relative), i->crtime);
+        s1 = FORMAT_TIMESTAMP_RELATIVE(i->crtime);
         s2 = FORMAT_TIMESTAMP(i->crtime);
         if (s1 && s2)
                 printf("\t Created: %s; %s\n", s2, s1);
         else if (s2)
                 printf("\t Created: %s\n", s2);
 
-        s1 = format_timestamp_relative(ts_relative, sizeof(ts_relative), i->mtime);
+        s1 = FORMAT_TIMESTAMP_RELATIVE(i->mtime);
         s2 = FORMAT_TIMESTAMP(i->mtime);
         if (s1 && s2)
                 printf("\tModified: %s; %s\n", s2, s1);
index 030f097df530ce1f5b4e7d574016fea592437277..3b5f2a432099517f63736e3391f169d3553c066b 100644 (file)
@@ -300,7 +300,7 @@ static void print_status_info(
                 UnitStatusInfo *i,
                 bool *ellipsized) {
 
-        char since1[FORMAT_TIMESTAMP_RELATIVE_MAX], since2[FORMAT_TIMESTAMP_MAX];
+        char since2[FORMAT_TIMESTAMP_MAX];
         const char *s1, *s2, *active_on, *active_off, *on, *off, *ss, *fs;
         _cleanup_free_ char *formatted_path = NULL;
         ExecStatusInfo *p;
@@ -419,7 +419,7 @@ static void print_status_info(
                     STRPTR_IN_SET(i->active_state, "activating")          ? i->inactive_exit_timestamp :
                                                                             i->active_exit_timestamp;
 
-        s1 = format_timestamp_relative(since1, sizeof(since1), timestamp);
+        s1 = FORMAT_TIMESTAMP_RELATIVE(timestamp);
         s2 = format_timestamp_style(since2, sizeof(since2), timestamp, arg_timestamp_style);
 
         if (s1)
@@ -442,8 +442,7 @@ static void print_status_info(
         }
 
         if (endswith(i->id, ".timer")) {
-                char tstamp1[FORMAT_TIMESTAMP_RELATIVE_MAX],
-                     tstamp2[FORMAT_TIMESTAMP_MAX];
+                char tstamp2[FORMAT_TIMESTAMP_MAX];
                 const char *next_rel_time, *next_time;
                 dual_timestamp nw, next = {i->next_elapse_real,
                                            i->next_elapse_monotonic};
@@ -453,7 +452,7 @@ static void print_status_info(
 
                 dual_timestamp_get(&nw);
                 next_elapse = calc_next_elapse(&nw, &next);
-                next_rel_time = format_timestamp_relative(tstamp1, sizeof tstamp1, next_elapse);
+                next_rel_time = FORMAT_TIMESTAMP_RELATIVE(next_elapse);
                 next_time = format_timestamp_style(tstamp2, sizeof tstamp2, next_elapse, arg_timestamp_style);
 
                 if (next_time && next_rel_time)
@@ -478,7 +477,7 @@ static void print_status_info(
                 UnitCondition *c;
                 int n = 0;
 
-                s1 = format_timestamp_relative(since1, sizeof(since1), i->condition_timestamp);
+                s1 = FORMAT_TIMESTAMP_RELATIVE(i->condition_timestamp);
                 s2 = format_timestamp_style(since2, sizeof(since2), i->condition_timestamp, arg_timestamp_style);
 
                 printf("  Condition: start %scondition failed%s at %s%s%s\n",
@@ -500,7 +499,7 @@ static void print_status_info(
         }
 
         if (!i->assert_result && i->assert_timestamp > 0) {
-                s1 = format_timestamp_relative(since1, sizeof(since1), i->assert_timestamp);
+                s1 = FORMAT_TIMESTAMP_RELATIVE(i->assert_timestamp);
                 s2 = format_timestamp_style(since2, sizeof(since2), i->assert_timestamp, arg_timestamp_style);
 
                 printf("     Assert: start %sassertion failed%s at %s%s%s\n",
@@ -2015,7 +2014,7 @@ static int show_all(
 }
 
 static int show_system_status(sd_bus *bus) {
-        char since1[FORMAT_TIMESTAMP_RELATIVE_MAX], since2[FORMAT_TIMESTAMP_MAX];
+        char since2[FORMAT_TIMESTAMP_MAX];
         _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
         _cleanup_(machine_info_clear) struct machine_info mi = {};
         _cleanup_free_ char *hn = NULL;
@@ -2059,7 +2058,7 @@ static int show_system_status(sd_bus *bus) {
 
         printf("    Since: %s; %s\n",
                format_timestamp_style(since2, sizeof(since2), mi.timestamp, arg_timestamp_style),
-               format_timestamp_relative(since1, sizeof(since1), mi.timestamp));
+               FORMAT_TIMESTAMP_RELATIVE(mi.timestamp));
 
         printf("   CGroup: %s\n", mi.control_group ?: "/");
         if (IN_SET(arg_transport,