summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.h2
-rw-r--r--html.c14
-rw-r--r--shared.c3
-rw-r--r--ui-repolist.c5
4 files changed, 24 insertions, 0 deletions
diff --git a/cgit.h b/cgit.h
index f3d783e..3ee11bb 100644
--- a/cgit.h
+++ b/cgit.h
@@ -76,4 +76,5 @@ extern char *cgit_root_title;
76extern char *cgit_css; 76extern char *cgit_css;
77extern char *cgit_logo; 77extern char *cgit_logo;
78extern char *cgit_index_header;
78extern char *cgit_logo_link; 79extern char *cgit_logo_link;
79extern char *cgit_module_link; 80extern char *cgit_module_link;
@@ -145,4 +146,5 @@ extern void html_link_open(char *url, char *title, char *class);
145extern void html_link_close(void); 146extern void html_link_close(void);
146extern void html_filemode(unsigned short mode); 147extern void html_filemode(unsigned short mode);
148extern int html_include(const char *filename);
147 149
148extern int cgit_read_config(const char *filename, configfn fn); 150extern int cgit_read_config(const char *filename, configfn fn);
diff --git a/html.c b/html.c
index 175b4b6..33a956f 100644
--- a/html.c
+++ b/html.c
@@ -167,2 +167,16 @@ void html_filemode(unsigned short mode)
167 html_fileperm(mode); 167 html_fileperm(mode);
168} 168}
169
170int html_include(const char *filename)
171{
172 FILE *f;
173 char buf[4096];
174 size_t len;
175
176 if (!(f = fopen(filename, "r")))
177 return -1;
178 while((len = fread(buf, 1, 4096, f)) > 0)
179 write(htmlfd, buf, len);
180 fclose(f);
181 return 0;
182}
diff --git a/shared.c b/shared.c
index 53cd9b0..54b1813 100644
--- a/shared.c
+++ b/shared.c
@@ -15,4 +15,5 @@ char *cgit_root_title = "Git repository browser";
15char *cgit_css = "/cgit.css"; 15char *cgit_css = "/cgit.css";
16char *cgit_logo = "/git-logo.png"; 16char *cgit_logo = "/git-logo.png";
17char *cgit_index_header = NULL;
17char *cgit_logo_link = "http://www.kernel.org/pub/software/scm/git/docs/"; 18char *cgit_logo_link = "http://www.kernel.org/pub/software/scm/git/docs/";
18char *cgit_module_link = "./?repo=%s&page=commit&id=%s"; 19char *cgit_module_link = "./?repo=%s&page=commit&id=%s";
@@ -102,4 +103,6 @@ void cgit_global_config_cb(const char *name, const char *value)
102 else if (!strcmp(name, "logo")) 103 else if (!strcmp(name, "logo"))
103 cgit_logo = xstrdup(value); 104 cgit_logo = xstrdup(value);
105 else if (!strcmp(name, "index-header"))
106 cgit_index_header = xstrdup(value);
104 else if (!strcmp(name, "logo-link")) 107 else if (!strcmp(name, "logo-link"))
105 cgit_logo_link = xstrdup(value); 108 cgit_logo_link = xstrdup(value);
diff --git a/ui-repolist.c b/ui-repolist.c
index d7311e4..8e367a2 100644
--- a/ui-repolist.c
+++ b/ui-repolist.c
@@ -18,4 +18,9 @@ void cgit_print_repolist(struct cacheitem *item)
18 18
19 html("<table class='list nowrap'>"); 19 html("<table class='list nowrap'>");
20 if (cgit_index_header) {
21 html("<tr class='nohover'><td colspan='4' class='include-block'>");
22 html_include(cgit_index_header);
23 html("</td></tr>");
24 }
20 html("<tr class='nohover'>" 25 html("<tr class='nohover'>"
21 "<th class='left'>Name</th>" 26 "<th class='left'>Name</th>"