fix times (and timezone) - stagit-gopher - A git gopher frontend. (mirror) | |
git clone git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2h… | |
Log | |
Files | |
Refs | |
Tags | |
README | |
LICENSE | |
--- | |
commit 462ba66ee7e0ae16f41d4fff9c8540913c3941a9 | |
parent 7a1da0b9853093781dd1b130d63619b17ecc8c01 | |
Author: Hiltjo Posthuma <[email protected]> | |
Date: Sun, 1 May 2016 16:10:17 +0200 | |
fix times (and timezone) | |
- in the index and log show the short time (GMT). | |
- in the Atom feed use GMT time. | |
- for commits show the time + offset. | |
Diffstat: | |
M stagit-index.c | 12 +++--------- | |
M stagit.c | 38 ++++++++++++++++++++++-------… | |
2 files changed, 30 insertions(+), 20 deletions(-) | |
--- | |
diff --git a/stagit-index.c b/stagit-index.c | |
@@ -42,25 +42,19 @@ xmlencode(FILE *fp, const char *s, size_t len) | |
} | |
void | |
-printtimeformat(FILE *fp, const git_time *intime, const char *fmt) | |
+printtimeshort(FILE *fp, const git_time *intime) | |
{ | |
struct tm *intm; | |
time_t t; | |
char out[32]; | |
- t = (time_t) intime->time + (intime->offset * 60); | |
+ t = (time_t)intime->time; | |
if (!(intm = gmtime(&t))) | |
return; | |
- strftime(out, sizeof(out), fmt, intm); | |
+ strftime(out, sizeof(out), "%Y-%m-%d %H:%M", intm); | |
fputs(out, fp); | |
} | |
-void | |
-printtimeshort(FILE *fp, const git_time *intime) | |
-{ | |
- printtimeformat(fp, intime, "%Y-%m-%d %H:%M"); | |
-} | |
- | |
int | |
writeheader(FILE *fp) | |
{ | |
diff --git a/stagit.c b/stagit.c | |
@@ -268,35 +268,51 @@ mkdirp(const char *path) | |
} | |
void | |
-printtimeformat(FILE *fp, const git_time *intime, const char *fmt) | |
+printtimez(FILE *fp, const git_time *intime) | |
{ | |
struct tm *intm; | |
time_t t; | |
char out[32]; | |
- t = (time_t) intime->time + (intime->offset * 60); | |
+ t = (time_t)intime->time; | |
if (!(intm = gmtime(&t))) | |
return; | |
- strftime(out, sizeof(out), fmt, intm); | |
+ strftime(out, sizeof(out), "%Y-%m-%dT%H:%M:%SZ", intm); | |
fputs(out, fp); | |
} | |
void | |
-printtimez(FILE *fp, const git_time *intime) | |
-{ | |
- printtimeformat(fp, intime, "%Y-%m-%dT%H:%M:%SZ"); | |
-} | |
- | |
-void | |
printtime(FILE *fp, const git_time *intime) | |
{ | |
- printtimeformat(fp, intime, "%a %b %e %T %Y"); | |
+ struct tm *intm; | |
+ time_t t; | |
+ int offset, sign = '+'; | |
+ char out[32]; | |
+ | |
+ offset = intime->offset * 60; | |
+ t = (time_t)intime->time + offset; | |
+ if (!(intm = gmtime(&t))) | |
+ return; | |
+ strftime(out, sizeof(out), "%a %b %e %H:%M:%S", intm); | |
+ if (offset < 0) { | |
+ offset = -offset; | |
+ sign = '-'; | |
+ } | |
+ fprintf(fp, "%s %c%02d%02d", out, sign, offset / 60, offset % 60); | |
} | |
void | |
printtimeshort(FILE *fp, const git_time *intime) | |
{ | |
- printtimeformat(fp, intime, "%Y-%m-%d %H:%M"); | |
+ struct tm *intm; | |
+ time_t t; | |
+ char out[32]; | |
+ | |
+ t = (time_t)intime->time; | |
+ if (!(intm = gmtime(&t))) | |
+ return; | |
+ strftime(out, sizeof(out), "%Y-%m-%d %H:%M", intm); | |
+ fputs(out, fp); | |
} | |
int |