neocgit

a more 'modern' version of cgit
Log | Files | Refs | Submodules | README | LICENSE | git clone https://git.ne02ptzero.me/git/neocgit

commit 0f0ab148c6d444316af10e6b4c7a60630fed45d3
parent a1266edfe6ec1fd678c8f6b60ffbd21d88ff5a93
Author: Stefan Naewe <stefan.naewe@atlas-elektronik.com>
Date:   Fri,  1 Aug 2008 14:54:38 +0200

Added `local-time` option to cgitrc

When `local-time` is set, commit, tag and patch timestamps will be printed
in the servers timezone. Also, regardless of the value of `local-time`,
these timestamps will now always show the timezone.

Signed-off-by: Stefan Naewe <stefan.naewe@atlas-elektronik.com>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>

Diffstat:
Mcgit.c | 3+++
Mcgit.h | 3++-
Mui-commit.c | 4++--
Mui-patch.c | 2+-
Mui-shared.c | 11+++++++----
Mui-shared.h | 2+-
Mui-tag.c | 2+-
7 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/cgit.c b/cgit.c @@ -87,6 +87,8 @@ void config_cb(const char *name, const char *value) ctx.cfg.robots = xstrdup(value); else if (!strcmp(name, "clone-prefix")) ctx.cfg.clone_prefix = xstrdup(value); + else if (!strcmp(name, "local-time")) + ctx.cfg.local_time = atoi(value); else if (!strcmp(name, "repo.group")) ctx.cfg.repo_group = xstrdup(value); else if (!strcmp(name, "repo.url")) @@ -167,6 +169,7 @@ static void prepare_context(struct cgit_context *ctx) ctx->cfg.cache_static_ttl = -1; ctx->cfg.css = "/cgit.css"; ctx->cfg.logo = "/git-logo.png"; + ctx->cfg.local_time = 0; ctx->cfg.max_repo_count = 50; ctx->cfg.max_commit_count = 50; ctx->cfg.max_lock_attempts = 5; diff --git a/cgit.h b/cgit.h @@ -22,7 +22,7 @@ /* * Dateformats used on misc. pages */ -#define FMT_LONGDATE "%Y-%m-%d %H:%M:%S" +#define FMT_LONGDATE "%Y-%m-%d %H:%M:%S (%Z)" #define FMT_SHORTDATE "%Y-%m-%d" @@ -148,6 +148,7 @@ struct cgit_config { int enable_index_links; int enable_log_filecount; int enable_log_linecount; + int local_time; int max_repo_count; int max_commit_count; int max_lock_attempts; diff --git a/ui-commit.c b/ui-commit.c @@ -40,14 +40,14 @@ void cgit_print_commit(char *hex) html(" "); html_txt(info->author_email); html("</td><td class='right'>"); - cgit_print_date(info->author_date, FMT_LONGDATE); + cgit_print_date(info->author_date, FMT_LONGDATE, ctx.cfg.local_time); html("</td></tr>\n"); html("<tr><th>committer</th><td>"); html_txt(info->committer); html(" "); html_txt(info->committer_email); html("</td><td class='right'>"); - cgit_print_date(info->committer_date, FMT_LONGDATE); + cgit_print_date(info->committer_date, FMT_LONGDATE, ctx.cfg.local_time); html("</td></tr>\n"); html("<tr><th>commit</th><td colspan='2' class='sha1'>"); tmp = sha1_to_hex(commit->object.sha1); diff --git a/ui-patch.c b/ui-patch.c @@ -103,7 +103,7 @@ void cgit_print_patch(char *hex) htmlf("From %s Mon Sep 17 00:00:00 2001\n", sha1_to_hex(sha1)); htmlf("From: %s%s\n", info->author, info->author_email); html("Date: "); - cgit_print_date(info->author_date, "%a, %d %b %Y %H:%M:%S %z%n"); + cgit_print_date(info->author_date, "%a, %d %b %Y %H:%M:%S %z%n", ctx.cfg.local_time); htmlf("Subject: %s\n\n", info->subject); if (info->msg && *info->msg) { htmlf("%s", info->msg); diff --git a/ui-shared.c b/ui-shared.c @@ -353,14 +353,17 @@ void cgit_object_link(struct object *obj) html_link_close(); } -void cgit_print_date(time_t secs, char *format) +void cgit_print_date(time_t secs, char *format, int local_time) { char buf[64]; struct tm *time; if (!secs) return; - time = gmtime(&secs); + if(local_time) + time = localtime(&secs); + else + time = gmtime(&secs); strftime(buf, sizeof(buf)-1, format, time); html_txt(buf); } @@ -375,7 +378,7 @@ void cgit_print_age(time_t t, time_t max_relative, char *format) secs = now - t; if (secs > max_relative && max_relative >= 0) { - cgit_print_date(t, format); + cgit_print_date(t, format, ctx.cfg.local_time); return; } @@ -453,7 +456,7 @@ void cgit_print_docend() html_include(ctx.cfg.footer); else { html("<div class='footer'>generated "); - cgit_print_date(time(NULL), FMT_LONGDATE); + cgit_print_date(time(NULL), FMT_LONGDATE, ctx.cfg.local_time); htmlf(" by cgit %s", cgit_version); html("</div>\n"); } diff --git a/ui-shared.h b/ui-shared.h @@ -27,7 +27,7 @@ extern void cgit_diff_link(char *name, char *title, char *class, char *head, extern void cgit_object_link(struct object *obj); extern void cgit_print_error(char *msg); -extern void cgit_print_date(time_t secs, char *format); +extern void cgit_print_date(time_t secs, char *format, int local_time); extern void cgit_print_age(time_t t, time_t max_relative, char *format); extern void cgit_print_http_headers(struct cgit_context *ctx); extern void cgit_print_docstart(struct cgit_context *ctx); diff --git a/ui-tag.c b/ui-tag.c @@ -57,7 +57,7 @@ void cgit_print_tag(char *revname) revname, sha1_to_hex(sha1)); if (info->tagger_date > 0) { html("<tr><td>Tag date</td><td>"); - cgit_print_date(info->tagger_date, FMT_LONGDATE); + cgit_print_date(info->tagger_date, FMT_LONGDATE, ctx.cfg.local_time); html("</td></tr>\n"); } if (info->tagger) {