| -rw-r--r-- | ui-shared.c | 20 | ||||
| -rw-r--r-- | ui-shared.h | 1 |
2 files changed, 21 insertions, 0 deletions
diff --git a/ui-shared.c b/ui-shared.c index d1f9249..eaa45fb 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -607,6 +607,26 @@ void cgit_submodule_link(const char *class, char *path, const char *rev) path[len - 1] = tail; } +static const char *fmt_date(time_t secs, const char *format, int local_time) +{ + static char buf[64]; + struct tm *time; + + if (!secs) + return ""; + if (local_time) + time = localtime(&secs); + else + time = gmtime(&secs); + strftime(buf, sizeof(buf)-1, format, time); + return buf; +} + +void cgit_print_date(time_t secs, const char *format, int local_time) +{ + html_txt(fmt_date(secs, format, local_time)); +} + const struct date_mode *cgit_date_mode(const char *format) { static struct date_mode mode; diff --git a/ui-shared.h b/ui-shared.h index 43789de..e42f13a 100644 --- a/ui-shared.h +++ b/ui-shared.h @@ -62,6 +62,7 @@ extern void cgit_print_error(const char *fmt, ...); __attribute__((format (printf,1,0))) extern void cgit_vprint_error(const char *fmt, va_list ap); extern const struct date_mode *cgit_date_mode(const char *format); +extern void cgit_print_date(time_t secs, const char *format, int local_time); extern void cgit_print_age(time_t t, int tz, time_t max_relative); extern void cgit_print_http_headers(void); extern void cgit_redirect(const char *url, bool permanent); |