From: Alejandro Colomar Date: Mon, 29 Jan 2024 14:34:20 +0000 (+0100) Subject: lib/time/day_to_str.[ch]: day_to_str(): Accept a day instead of a date, and rename... X-Git-Tag: 4.15.1~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8fcf6cccff64cf270b8d4596dca3e6fd763f846c;p=thirdparty%2Fshadow.git lib/time/day_to_str.[ch]: day_to_str(): Accept a day instead of a date, and rename function It was always being called with 'day * DAY', so do that internally and simplify. This grabs some code from print_day_as_date(). Cc: Tobias Stoeckmann Signed-off-by: Alejandro Colomar --- diff --git a/lib/time/day_to_str.c b/lib/time/day_to_str.c index 4acfe907d..e3e42210b 100644 --- a/lib/time/day_to_str.c +++ b/lib/time/day_to_str.c @@ -1,4 +1,5 @@ // SPDX-FileCopyrightText: 2021-2024, Alejandro Colomar +// SPDX-FileCopyrightText: 2024, Tobias Stoeckmann // SPDX-License-Identifier: BSD-3-Clause @@ -7,4 +8,4 @@ #include "time/day_to_str.h" -extern inline void date_to_str(size_t size, char buf[size], long date); +extern inline void day_to_str(size_t size, char buf[size], long day); diff --git a/lib/time/day_to_str.h b/lib/time/day_to_str.h index 2689794ba..6aa855ac7 100644 --- a/lib/time/day_to_str.h +++ b/lib/time/day_to_str.h @@ -1,7 +1,6 @@ -/* - * SPDX-FileCopyrightText: 2021-2023, Alejandro Colomar - * SPDX-License-Identifier: BSD-3-Clause - */ +// SPDX-FileCopyrightText: 2021-2024, Alejandro Colomar +// SPDX-FileCopyrightText: 2024, Tobias Stoeckmann +// SPDX-License-Identifier: BSD-3-Clause #ifndef SHADOW_INCLUDE_LIB_TIME_DAY_TO_STR_H_ @@ -17,32 +16,36 @@ #include "string/strtcpy.h" -#define DAY_TO_STR(str, day) date_to_str(NITEMS(str), str, day * DAY) +#define DAY_TO_STR(str, day) day_to_str(NITEMS(str), str, day) -inline void date_to_str(size_t size, char buf[size], long date); +inline void day_to_str(size_t size, char buf[size], long day); inline void -date_to_str(size_t size, char buf[size], long date) +day_to_str(size_t size, char buf[size], long day) { - time_t t; + time_t date; const struct tm *tm; - t = date; - if (date < 0) { - (void) strtcpy(buf, "never", size); + if (day < 0) { + strtcpy(buf, "never", size); return; } - tm = gmtime(&t); + if (__builtin_mul_overflow(day, DAY, &date)) { + strtcpy(buf, "future", size); + return; + } + + tm = gmtime(&date); if (tm == NULL) { - (void) strtcpy(buf, "future", size); + strtcpy(buf, "future", size); return; } if (strftime(buf, size, "%Y-%m-%d", tm) == 0) - (void) strtcpy(buf, "future", size); + strtcpy(buf, "future", size); }