Skip to content

Commit

Permalink
Use RFC2822 dates from "git fmt-patch".
Browse files Browse the repository at this point in the history
Still Work-in-progress git fmt-patch (should it be known as
format-patch-ng?) is matched with the fix made by Huw Davies
in 262a6ef commit to use
RFC2822 date format.

Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Junio C Hamano committed May 1, 2006
1 parent 53f420e commit 2a38704
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 5 deletions.
1 change: 1 addition & 0 deletions cache.h
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,7 @@ extern void *read_object_with_reference(const unsigned char *sha1,
unsigned char *sha1_ret);

const char *show_date(unsigned long time, int timezone);
const char *show_rfc2822_date(unsigned long time, int timezone);
int parse_date(const char *date, char *buf, int bufsize);
void datestamp(char *buf, int bufsize);
unsigned long approxidate(const char *);
Expand Down
3 changes: 2 additions & 1 deletion commit.c
Original file line number Diff line number Diff line change
Expand Up @@ -442,7 +442,8 @@ static int add_user_info(const char *what, enum cmit_fmt fmt, char *buf, const c
ret += sprintf(buf + ret, "Date: %s\n", show_date(time, tz));
break;
case CMIT_FMT_EMAIL:
ret += sprintf(buf + ret, "Date: %s\n", show_date(time, tz));
ret += sprintf(buf + ret, "Date: %s\n",
show_rfc2822_date(time, tz));
break;
case CMIT_FMT_FULLER:
ret += sprintf(buf + ret, "%sDate: %s\n", what, show_date(time, tz));
Expand Down
29 changes: 25 additions & 4 deletions date.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,18 +42,24 @@ static const char *weekday_names[] = {
* thing, which means that tz -0100 is passed in as the integer -100,
* even though it means "sixty minutes off"
*/
const char *show_date(unsigned long time, int tz)
static struct tm *time_to_tm(unsigned long time, int tz)
{
struct tm *tm;
time_t t;
static char timebuf[200];
int minutes;

minutes = tz < 0 ? -tz : tz;
minutes = (minutes / 100)*60 + (minutes % 100);
minutes = tz < 0 ? -minutes : minutes;
t = time + minutes * 60;
tm = gmtime(&t);
return gmtime(&t);
}

const char *show_date(unsigned long time, int tz)
{
struct tm *tm;
static char timebuf[200];

tm = time_to_tm(time, tz);
if (!tm)
return NULL;
sprintf(timebuf, "%.3s %.3s %d %02d:%02d:%02d %d %+05d",
Expand All @@ -65,6 +71,21 @@ const char *show_date(unsigned long time, int tz)
return timebuf;
}

const char *show_rfc2822_date(unsigned long time, int tz)
{
struct tm *tm;
static char timebuf[200];

tm = time_to_tm(time, tz);
if (!tm)
return NULL;
sprintf(timebuf, "%.3s, %d %.3s %d %02d:%02d:%02d %+05d",
weekday_names[tm->tm_wday], tm->tm_mday,
month_names[tm->tm_mon], tm->tm_year + 1900,
tm->tm_hour, tm->tm_min, tm->tm_sec, tz);
return timebuf;
}

/*
* Check these. And note how it doesn't do the summer-time conversion.
*
Expand Down

0 comments on commit 2a38704

Please sign in to comment.