From d49c6515e4de9982efedfe5fa5eb7e7684e5dec6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Sun, 18 May 2025 22:15:39 +0200 Subject: [PATCH] relay/api: use specifier `%@` for times formatted by util_strftimeval --- src/plugins/relay/api/relay-api-msg.c | 12 ++---------- tests/unit/plugins/relay/api/test-relay-api-msg.cpp | 10 +++++----- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/src/plugins/relay/api/relay-api-msg.c b/src/plugins/relay/api/relay-api-msg.c index 7c9b6f182..dcd79877c 100644 --- a/src/plugins/relay/api/relay-api-msg.c +++ b/src/plugins/relay/api/relay-api-msg.c @@ -57,15 +57,11 @@ #define MSG_ADD_HDATA_TIME_USEC(__json_name, \ __var_name, __var_name_usec) \ - time_value = weechat_hdata_time (hdata, pointer, __var_name); \ - local_time = localtime (&time_value); \ - time_value -= local_time->tm_gmtoff; \ - local_time = localtime (&time_value); \ - tv.tv_sec = mktime (local_time); \ + tv.tv_sec = weechat_hdata_time (hdata, pointer, __var_name); \ tv.tv_usec = weechat_hdata_integer (hdata, pointer, \ __var_name_usec); \ weechat_util_strftimeval (str_time, sizeof (str_time), \ - "%FT%T.%fZ", &tv); \ + "%@%FT%T.%fZ", &tv); \ MSG_ADD_STR_BUF(__json_name, str_time); #define MSG_ADD_HDATA_STR(__json_name, __var_name) \ @@ -487,9 +483,7 @@ relay_api_msg_line_data_to_json (struct t_gui_line_data *line_data, const char *ptr_string; char *string, str_time[256], str_var[64]; int i, tags_count; - time_t time_value; struct timeval tv; - struct tm *local_time; hdata = relay_hdata_line_data; pointer = line_data; @@ -792,9 +786,7 @@ relay_api_msg_hotlist_to_json (struct t_gui_hotlist *hotlist) struct t_gui_hotlist *pointer; struct t_gui_buffer *buffer; cJSON *json, *json_count; - time_t time_value; struct timeval tv; - struct tm *local_time; char str_time[256], str_key[32]; int i, array_size; long long buffer_id; diff --git a/tests/unit/plugins/relay/api/test-relay-api-msg.cpp b/tests/unit/plugins/relay/api/test-relay-api-msg.cpp index 0090252d8..af94de04f 100644 --- a/tests/unit/plugins/relay/api/test-relay-api-msg.cpp +++ b/tests/unit/plugins/relay/api/test-relay-api-msg.cpp @@ -417,12 +417,12 @@ TEST(RelayApiMsg, LinesToJson) gmtime_r (&(gui_buffers->own_lines->last_line->prev_line->data->date), &gm_time); tv.tv_sec = mktime (&gm_time); tv.tv_usec = gui_buffers->own_lines->last_line->prev_line->data->date_usec; - util_strftimeval (str_date, sizeof (str_date), "%FT%T.%fZ", &tv); + util_strftimeval (str_date, sizeof (str_date), "%@%FT%T.%fZ", &tv); WEE_CHECK_OBJ_STR(str_date, json_line, "date"); gmtime_r (&(gui_buffers->own_lines->last_line->prev_line->data->date_printed), &gm_time); tv.tv_sec = mktime (&gm_time); tv.tv_usec = gui_buffers->own_lines->last_line->prev_line->data->date_usec_printed; - util_strftimeval (str_date, sizeof (str_date), "%FT%T.%fZ", &tv); + util_strftimeval (str_date, sizeof (str_date), "%@%FT%T.%fZ", &tv); WEE_CHECK_OBJ_STR(str_date, json_line, "date_printed"); WEE_CHECK_OBJ_BOOL(0, json_line, "highlight"); WEE_CHECK_OBJ_STR("nick1", json_line, "prefix"); @@ -453,12 +453,12 @@ TEST(RelayApiMsg, LinesToJson) gmtime_r (&(gui_buffers->own_lines->last_line->data->date), &gm_time); tv.tv_sec = mktime (&gm_time); tv.tv_usec = gui_buffers->own_lines->last_line->data->date_usec; - util_strftimeval (str_date, sizeof (str_date), "%FT%T.%fZ", &tv); + util_strftimeval (str_date, sizeof (str_date), "%@%FT%T.%fZ", &tv); WEE_CHECK_OBJ_STR(str_date, json_line, "date"); gmtime_r (&(gui_buffers->own_lines->last_line->data->date_printed), &gm_time); tv.tv_sec = mktime (&gm_time); tv.tv_usec = gui_buffers->own_lines->last_line->data->date_usec_printed; - util_strftimeval (str_date, sizeof (str_date), "%FT%T.%fZ", &tv); + util_strftimeval (str_date, sizeof (str_date), "%@%FT%T.%fZ", &tv); WEE_CHECK_OBJ_STR(str_date, json_line, "date_printed"); WEE_CHECK_OBJ_BOOL(0, json_line, "highlight"); WEE_CHECK_OBJ_STR("", json_line, "prefix"); @@ -624,7 +624,7 @@ TEST(RelayApiMsg, HotlistToJson) gmtime_r (&time_value, &gm_time); tv.tv_sec = mktime (&gm_time); tv.tv_usec = hdata_integer (relay_hdata_hotlist, gui_hotlist, "time_usec"); - util_strftimeval (str_date, sizeof (str_date), "%FT%T.%fZ", &tv); + util_strftimeval (str_date, sizeof (str_date), "%@%FT%T.%fZ", &tv); WEE_CHECK_OBJ_STR(str_date, json, "date"); WEE_CHECK_OBJ_NUM(gui_buffers->id, json, "buffer_id"); json_count = cJSON_GetObjectItem (json, "count");