GIT 1.5.3
[gitweb.git] / date.c
diff --git a/date.c b/date.c
index 316841e8ad3705559fddb0ca4aff969fdf91b011..93bef6efbe38cb8983fdda14b75ce772f90e1b6a 100644 (file)
--- a/date.c
+++ b/date.c
@@ -137,6 +137,18 @@ const char *show_date(unsigned long time, int tz, enum date_mode mode)
        if (mode == DATE_SHORT)
                sprintf(timebuf, "%04d-%02d-%02d", tm->tm_year + 1900,
                                tm->tm_mon + 1, tm->tm_mday);
+       else if (mode == DATE_ISO8601)
+               sprintf(timebuf, "%04d-%02d-%02d %02d:%02d:%02d %+05d",
+                               tm->tm_year + 1900,
+                               tm->tm_mon + 1,
+                               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],
@@ -149,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.
  *
@@ -663,6 +660,14 @@ static void date_am(struct tm *tm, int *num)
        tm->tm_hour = (hour % 12);
 }
 
+static void date_never(struct tm *tm, int *num)
+{
+       tm->tm_mon = tm->tm_wday = tm->tm_yday
+               = tm->tm_hour = tm->tm_min = tm->tm_sec = 0;
+       tm->tm_year = 70;
+       tm->tm_mday = 1;
+}
+
 static const struct special {
        const char *name;
        void (*fn)(struct tm *, int *);
@@ -673,6 +678,7 @@ static const struct special {
        { "tea", date_tea },
        { "PM", date_pm },
        { "AM", date_am },
+       { "never", date_never },
        { NULL }
 };