Skip to content

Commit

Permalink
lib/time/day_to_str.[ch]: day_to_str(): Accept a day instead of a dat…
Browse files Browse the repository at this point in the history
…e, 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 <[email protected]>
Signed-off-by: Alejandro Colomar <[email protected]>
  • Loading branch information
alejandro-colomar authored and hallyn committed Mar 14, 2024
1 parent 8fee869 commit 8fcf6cc
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 15 deletions.
3 changes: 2 additions & 1 deletion lib/time/day_to_str.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// SPDX-FileCopyrightText: 2021-2024, Alejandro Colomar <[email protected]>
// SPDX-FileCopyrightText: 2024, Tobias Stoeckmann <[email protected]>
// SPDX-License-Identifier: BSD-3-Clause


Expand All @@ -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);
31 changes: 17 additions & 14 deletions lib/time/day_to_str.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
/*
* SPDX-FileCopyrightText: 2021-2023, Alejandro Colomar <[email protected]>
* SPDX-License-Identifier: BSD-3-Clause
*/
// SPDX-FileCopyrightText: 2021-2024, Alejandro Colomar <[email protected]>
// SPDX-FileCopyrightText: 2024, Tobias Stoeckmann <[email protected]>
// SPDX-License-Identifier: BSD-3-Clause


#ifndef SHADOW_INCLUDE_LIB_TIME_DAY_TO_STR_H_
Expand All @@ -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);
}


Expand Down

0 comments on commit 8fcf6cc

Please sign in to comment.