diff options
| -rw-r--r-- | cgit.h | 2 | ||||
| -rw-r--r-- | html.c | 14 | ||||
| -rw-r--r-- | shared.c | 3 | ||||
| -rw-r--r-- | ui-repolist.c | 5 | 
4 files changed, 24 insertions, 0 deletions
| @@ -75,6 +75,7 @@ extern struct repoinfo *cgit_repo;  extern char *cgit_root_title;  extern char *cgit_css;  extern char *cgit_logo; +extern char *cgit_index_header;  extern char *cgit_logo_link;  extern char *cgit_module_link;  extern char *cgit_virtual_root; @@ -144,6 +145,7 @@ extern void html_hidden(char *name, char *value);  extern void html_link_open(char *url, char *title, char *class);  extern void html_link_close(void);  extern void html_filemode(unsigned short mode); +extern int html_include(const char *filename);  extern int cgit_read_config(const char *filename, configfn fn);  extern int cgit_parse_query(char *txt, configfn fn); @@ -166,3 +166,17 @@ void html_filemode(unsigned short mode)  	html_fileperm(mode >> 3);  	html_fileperm(mode);  } + +int html_include(const char *filename) +{ +	FILE *f; +	char buf[4096]; +	size_t len; + +	if (!(f = fopen(filename, "r"))) +		return -1; +	while((len = fread(buf, 1, 4096, f)) > 0) +		write(htmlfd, buf, len); +	fclose(f); +	return 0; +} @@ -14,6 +14,7 @@ struct repoinfo *cgit_repo;  char *cgit_root_title   = "Git repository browser";  char *cgit_css          = "/cgit.css";  char *cgit_logo         = "/git-logo.png"; +char *cgit_index_header = NULL;  char *cgit_logo_link    = "http://www.kernel.org/pub/software/scm/git/docs/";  char *cgit_module_link  = "./?repo=%s&page=commit&id=%s";  char *cgit_virtual_root = NULL; @@ -101,6 +102,8 @@ void cgit_global_config_cb(const char *name, const char *value)  		cgit_css = xstrdup(value);  	else if (!strcmp(name, "logo"))  		cgit_logo = xstrdup(value); +	else if (!strcmp(name, "index-header")) +		cgit_index_header = xstrdup(value);  	else if (!strcmp(name, "logo-link"))  		cgit_logo_link = xstrdup(value);  	else if (!strcmp(name, "module-link")) diff --git a/ui-repolist.c b/ui-repolist.c index d7311e4..8e367a2 100644 --- a/ui-repolist.c +++ b/ui-repolist.c @@ -17,6 +17,11 @@ void cgit_print_repolist(struct cacheitem *item)  	cgit_print_pageheader(cgit_root_title, 0);  	html("<table class='list nowrap'>"); +	if (cgit_index_header) { +		html("<tr class='nohover'><td colspan='4' class='include-block'>"); +		html_include(cgit_index_header); +		html("</td></tr>"); +	}  	html("<tr class='nohover'>"  	     "<th class='left'>Name</th>"  	     "<th class='left'>Description</th>" | 
