about summary refs log tree commit
diff options
context:
space:
mode:
-rw-r--r--cgit.c3
-rw-r--r--cgit.h3
-rw-r--r--ui-commit.c4
-rw-r--r--ui-patch.c2
-rw-r--r--ui-shared.c11
-rw-r--r--ui-shared.h2
-rw-r--r--ui-tag.c2
7 files changed, 17 insertions, 10 deletions
diff --git a/cgit.c b/cgit.c
index e2d5edb..f49fffa 100644
--- 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
index 7881aca..b01fa31 100644
--- 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
index 4bbb391..a6a85a4 100644
--- 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
index c1c4ce3..e60877d 100644
--- 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
index 4280a70..197ee37 100644
--- 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
index 3005d30..07da4b4 100644
--- 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
index ab2c66d..b4db32e 100644
--- 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) {