commit - 5943eee28016d0b1f6e87c25366b3a85a95a727a
commit + 09867e481449ff3ca17bfc7132da42e839319511
blob - 8c1f0a2fe706b6338dc31930faca0cb9c0d7bb2e
blob + 0ebd0d6734cfc7bed752a53694a775aa00e278cd
--- got/got.c
+++ got/got.c
static char *
get_datestr(time_t *time, char *datebuf)
{
- char *p, *s = ctime_r(time, datebuf);
+ struct tm mytm, *tm;
+ char *p, *s;
+
+ tm = gmtime_r(time, &mytm);
+ if (tm == NULL)
+ return NULL;
+ s = asctime_r(tm, datebuf);
+ if (s == NULL)
+ return NULL;
p = strchr(s, '\n');
if (p)
*p = '\0';
printf("from: %s\n", got_object_commit_get_author(commit));
committer_time = got_object_commit_get_committer_time(commit);
datestr = get_datestr(&committer_time, datebuf);
- printf("date: %s UTC\n", datestr);
+ if (datestr)
+ printf("date: %s UTC\n", datestr);
author = got_object_commit_get_author(commit);
committer = got_object_commit_get_committer(commit);
if (strcmp(author, committer) != 0)
blob - 3a4758573cc31e0fe79549eef2a7b05ccce29621
blob + bf2e9f2ec10bebbef9454911e9980f3f1250ffbb
--- lib/object_parse.c
+++ lib/object_parse.c
if (space == NULL)
return got_error(GOT_ERR_BAD_OBJ_DATA);
- /* Timestamp parsed here is expressed in comitter's local time. */
+ /* Timestamp parsed here is expressed as UNIX timestamp (UTC). */
*time = strtonum(space + 1, 0, INT64_MAX, &errstr);
if (errstr)
return got_error(GOT_ERR_BAD_OBJ_DATA);
- /* Express the time stamp in UTC. */
- *time -= *gmtoff;
-
/* Strip off parsed time information, leaving just author and email. */
*space = '\0';
blob - 0119a32cf90c03a3afc72f5b5dfdbe5b3ec1e7d4
blob + 6f4b6076ae0d011c28278b2e69626ade8a7f8b2e
--- tog/tog.c
+++ tog/tog.c
static char *
get_datestr(time_t *time, char *datebuf)
{
- char *p, *s = ctime_r(time, datebuf);
+ struct tm mytm, *tm;
+ char *p, *s;
+
+ tm = gmtime_r(time, &mytm);
+ if (tm == NULL)
+ return NULL;
+ s = asctime_r(tm, datebuf);
+ if (s == NULL)
+ return NULL;
p = strchr(s, '\n');
if (p)
*p = '\0';
struct got_reflist_head *refs, struct got_repository *repo, FILE *outfile)
{
const struct got_error *err = NULL;
- char datebuf[26];
+ char datebuf[26], *datestr;
struct got_commit_object *commit;
char *id_str = NULL, *logmsg = NULL;
time_t committer_time;
goto done;
}
committer_time = got_object_commit_get_committer_time(commit);
- if (fprintf(outfile, "date: %s UTC\n",
- get_datestr(&committer_time, datebuf)) < 0) {
+ datestr = get_datestr(&committer_time, datebuf);
+ if (datestr && fprintf(outfile, "date: %s UTC\n", datestr) < 0) {
err = got_error_from_errno("fprintf");
goto done;
}