diff options
Diffstat (limited to 'ui-shared.c')
| -rw-r--r-- | ui-shared.c | 47 |
1 files changed, 44 insertions, 3 deletions
diff --git a/ui-shared.c b/ui-shared.c index c7fbc5e..acc771b 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
| @@ -88,16 +88,57 @@ char *cgit_currurl() | |||
| 88 | } | 88 | } |
| 89 | 89 | ||
| 90 | 90 | ||
| 91 | void cgit_print_date(unsigned long secs) | 91 | void cgit_print_date(time_t secs, char *format) |
| 92 | { | 92 | { |
| 93 | char buf[32]; | 93 | char buf[64]; |
| 94 | struct tm *time; | 94 | struct tm *time; |
| 95 | 95 | ||
| 96 | time = gmtime(&secs); | 96 | time = gmtime(&secs); |
| 97 | strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", time); | 97 | strftime(buf, sizeof(buf)-1, format, time); |
| 98 | html_txt(buf); | 98 | html_txt(buf); |
| 99 | } | 99 | } |
| 100 | 100 | ||
| 101 | void cgit_print_age(time_t t, time_t max_relative, char *format) | ||
| 102 | { | ||
| 103 | time_t now, secs; | ||
| 104 | |||
| 105 | time(&now); | ||
| 106 | secs = now - t; | ||
| 107 | |||
| 108 | if (secs > max_relative && max_relative >= 0) { | ||
| 109 | cgit_print_date(t, format); | ||
| 110 | return; | ||
| 111 | } | ||
| 112 | |||
| 113 | if (secs < TM_HOUR * 2) { | ||
| 114 | htmlf("<span class='age-mins'>%.0f min.</span>", | ||
| 115 | secs * 1.0 / TM_MIN); | ||
| 116 | return; | ||
| 117 | } | ||
| 118 | if (secs < TM_DAY * 2) { | ||
| 119 | htmlf("<span class='age-hours'>%.0f hours</span>", | ||
| 120 | secs * 1.0 / TM_HOUR); | ||
| 121 | return; | ||
| 122 | } | ||
| 123 | if (secs < TM_WEEK * 2) { | ||
| 124 | htmlf("<span class='age-days'>%.0f days</span>", | ||
| 125 | secs * 1.0 / TM_DAY); | ||
| 126 | return; | ||
| 127 | } | ||
| 128 | if (secs < TM_MONTH * 2) { | ||
| 129 | htmlf("<span class='age-weeks'>%.0f weeks</span>", | ||
| 130 | secs * 1.0 / TM_WEEK); | ||
| 131 | return; | ||
| 132 | } | ||
| 133 | if (secs < TM_YEAR * 2) { | ||
| 134 | htmlf("<span class='age-months'>%.0f months</span>", | ||
| 135 | secs * 1.0 / TM_MONTH); | ||
| 136 | return; | ||
| 137 | } | ||
| 138 | htmlf("<span class='age-years'>%.0f years</span>", | ||
| 139 | secs * 1.0 / TM_YEAR); | ||
| 140 | } | ||
| 141 | |||
| 101 | void cgit_print_docstart(char *title, struct cacheitem *item) | 142 | void cgit_print_docstart(char *title, struct cacheitem *item) |
| 102 | { | 143 | { |
| 103 | html("Content-Type: text/html; charset=utf-8\n"); | 144 | html("Content-Type: text/html; charset=utf-8\n"); |
