From 5a106eb09b9b5e189b96cc736046a92b054f6c7f Mon Sep 17 00:00:00 2001 From: Lars Hjemli Date: Mon, 11 Dec 2006 16:38:30 +0100 Subject: Move common output-functions into ui-shared.c While at it, replace the cgit_[lib_]error constants with a proper function Signed-off-by: Lars Hjemli --- ui-shared.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 ui-shared.c (limited to 'ui-shared.c') diff --git a/ui-shared.c b/ui-shared.c new file mode 100644 index 0000000..e795043 --- /dev/null +++ b/ui-shared.c @@ -0,0 +1,76 @@ +/* ui-shared.c: common web output functions + * + * Copyright (C) 2006 Lars Hjemli + * + * Licensed under GNU General Public License v2 + * (see COPYING for full license text) + */ + +#include "cgit.h" + +const char cgit_doctype[] = +"\n"; + +static char *http_date(time_t t) +{ + static char day[][4] = + {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; + static char month[][4] = + {"Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Now", "Dec"}; + struct tm *tm = gmtime(&t); + return fmt("%s, %02d %s %04d %02d:%02d:%02d GMT", day[tm->tm_wday], + tm->tm_mday, month[tm->tm_mon], 1900+tm->tm_year, + tm->tm_hour, tm->tm_min, tm->tm_sec); +} + +static int ttl_seconds(int ttl) +{ + if (ttl<0) + return 60 * 60 * 24 * 365; + else + return ttl * 60; +} + +void cgit_print_error(char *msg) +{ + html("
"); + html_txt(msg); + html("
\n"); +} +void cgit_print_docstart(char *title, struct cacheitem *item) +{ + html("Content-Type: text/html; charset=utf-8\n"); + htmlf("Last-Modified: %s\n", http_date(item->st.st_mtime)); + htmlf("Expires: %s\n", http_date(item->st.st_mtime + + ttl_seconds(item->ttl))); + html("\n"); + html(cgit_doctype); + html("\n"); + html("\n"); + html(""); + html_txt(title); + html("\n"); + htmlf("\n", cgit_version); + html("\n"); + html("\n"); + html("\n"); +} + +void cgit_print_docend() +{ + html("\n\n"); +} + +void cgit_print_pageheader(char *title) +{ + html(""); +} -- cgit 1.4.1