Code

Make show_rfc2822_date() just another date output format.
authorJunio C Hamano <gitster@pobox.com>
Sat, 14 Jul 2007 06:14:52 +0000 (23:14 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sat, 14 Jul 2007 06:14:52 +0000 (23:14 -0700)
These days, show_date() takes a date_mode parameter to specify
the output format, and a separate specialized function for dates
in E-mails does not make much sense anymore.

This retires show_rfc2822_date() function and make it just
another date output format.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
cache.h
commit.c
date.c
refs.c
sha1_name.c

diff --git a/cache.h b/cache.h
index b39557dd017274019ef7e686aa837bcdbf18ec1f..328c1ad411d68c73f31bc93a0416690f889cba34 100644 (file)
--- a/cache.h
+++ b/cache.h
@@ -409,9 +409,16 @@ extern void *read_object_with_reference(const unsigned char *sha1,
                                        unsigned long *size,
                                        unsigned char *sha1_ret);
 
-enum date_mode { DATE_NORMAL = 0, DATE_RELATIVE, DATE_SHORT, DATE_LOCAL, DATE_ISO8601 };
+enum date_mode {
+       DATE_NORMAL = 0,
+       DATE_RELATIVE,
+       DATE_SHORT,
+       DATE_LOCAL,
+       DATE_ISO8601,
+       DATE_RFC2822
+};
+
 const char *show_date(unsigned long time, int timezone, enum date_mode mode);
-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 *);
index d11941c7f4cb6bf303ff7750c15a2fac753c4518..4c5dfa9af0c8870bdd777264f35b7ff45f0a2f4c 100644 (file)
--- a/commit.c
+++ b/commit.c
@@ -585,7 +585,7 @@ static int add_user_info(const char *what, enum cmit_fmt fmt, char *buf,
                break;
        case CMIT_FMT_EMAIL:
                ret += sprintf(buf + ret, "Date: %s\n",
-                              show_rfc2822_date(time, tz));
+                              show_date(time, tz, DATE_RFC2822));
                break;
        case CMIT_FMT_FULLER:
                ret += sprintf(buf + ret, "%sDate: %s\n", what,
@@ -778,9 +778,9 @@ static void fill_person(struct interp *table, const char *msg, int len)
                        tz = -tz;
        }
 
-       interp_set_entry(table, 2, show_date(date, tz, 0));
-       interp_set_entry(table, 3, show_rfc2822_date(date, tz));
-       interp_set_entry(table, 4, show_date(date, tz, 1));
+       interp_set_entry(table, 2, show_date(date, tz, DATE_NORMAL));
+       interp_set_entry(table, 3, show_date(date, tz, DATE_RFC2822));
+       interp_set_entry(table, 4, show_date(date, tz, DATE_RELATIVE));
        interp_set_entry(table, 6, show_date(date, tz, DATE_ISO8601));
 }
 
diff --git a/date.c b/date.c
index 735d8f3bed88d179f964a6238a800d4914f147da..45b0b1deb36672d9a27ac98c95c92884f8d80cf8 100644 (file)
--- a/date.c
+++ b/date.c
@@ -144,6 +144,11 @@ const char *show_date(unsigned long time, int tz, enum date_mode mode)
                                tm->tm_mday,
                                tm->tm_hour, tm->tm_min, tm->tm_sec,
                                tz);
+       else if (mode == DATE_RFC2822)
+               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);
        else
                sprintf(timebuf, "%.3s %.3s %d %02d:%02d:%02d %d%c%+05d",
                                weekday_names[tm->tm_wday],
@@ -156,21 +161,6 @@ const char *show_date(unsigned long time, int tz, enum date_mode mode)
        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.
  *
diff --git a/refs.c b/refs.c
index 4dc7e8b47659b75cc0dcf334f1bf33798b2e5157..2694e7066d2dfdb155016ac3cd0104913b475c79 100644 (file)
--- a/refs.c
+++ b/refs.c
@@ -1300,7 +1300,7 @@ int read_ref_at(const char *ref, unsigned long at_time, int cnt, unsigned char *
                                if (hashcmp(logged_sha1, sha1)) {
                                        fprintf(stderr,
                                                "warning: Log %s has gap after %s.\n",
-                                               logfile, show_rfc2822_date(date, tz));
+                                               logfile, show_date(date, tz, DATE_RFC2822));
                                }
                        }
                        else if (date == at_time) {
@@ -1313,7 +1313,7 @@ int read_ref_at(const char *ref, unsigned long at_time, int cnt, unsigned char *
                                if (hashcmp(logged_sha1, sha1)) {
                                        fprintf(stderr,
                                                "warning: Log %s unexpectedly ended on %s.\n",
-                                               logfile, show_rfc2822_date(date, tz));
+                                               logfile, show_date(date, tz, DATE_RFC2822));
                                }
                        }
                        munmap(log_mapped, mapsz);
index 858f08c34a2de917b630d02974a839d626d23e7f..2d727d54dc43c23cb2fe19369d58e57e2a020ca9 100644 (file)
@@ -370,7 +370,7 @@ static int get_sha1_basic(const char *str, int len, unsigned char *sha1)
                                fprintf(stderr,
                                        "warning: Log for '%.*s' only goes "
                                        "back to %s.\n", len, str,
-                                       show_rfc2822_date(co_time, co_tz));
+                                       show_date(co_time, co_tz, DATE_RFC2822));
                        else
                                fprintf(stderr,
                                        "warning: Log for '%.*s' only has "