]> gitweb.ps.run Git - ps-cgit/commitdiff
Merge branch 'virtual-url'
authorLars Hjemli <hjemli@gmail.com>
Sun, 20 May 2007 20:09:55 +0000 (22:09 +0200)
committerLars Hjemli <hjemli@gmail.com>
Sun, 20 May 2007 20:09:55 +0000 (22:09 +0200)
* virtual-url:
  Don't be fooled by trailing '/' in url-parameter
  cache_safe_filename() needs more buffers
  Enable url=value querystring parameter
  Add lookup-function for valid repo commands
  Move cgit_get_repoinfo into shared.c

Makefile
cgit.h
git
html.c
shared.c
ui-repolist.c

index 914db1c0b43b8f178d80727932f809c4c987f499..5e16a4f6e2ac7dd4b2f0700d991f4f252c023af0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -31,14 +31,12 @@ CFLAGS += -DCGIT_SCRIPT_NAME='"$(CGIT_SCRIPT_NAME)"'
 
 
 #
-# If make is run on a nongit platform, we need to get the git sources as a tarball.
-# But there is currently no recent enough tarball available on kernel.org, so download
-# a zipfile from hjemli.net instead
+# If make is run on a nongit platform, get the git sources as a tarball.
 #
 GITVER = $(shell git version 2>/dev/null || echo nogit)
 ifeq ($(GITVER),nogit)
-GITURL = http://hjemli.net/git/git/snapshot/?id=v1.5.2-rc2
-INITGIT = test -e git/git.c || (curl "$(GITURL)" > tmp.zip && unzip tmp.zip)
+GITURL = http://www.kernel.org/pub/software/scm/git/git-1.5.2.tar.bz2
+INITGIT = test -e git/git.c || ((curl "$(GITURL)" | tar -xj) && mv git-1.5.2 git)
 else
 INITGIT = ./submodules.sh -i
 endif
diff --git a/cgit.h b/cgit.h
index e5b3f5e8719a3f5be5c14f08580064c7bc110360..e0879bd26d0eda774d045586e1f1e6b16a0e3aaf 100644 (file)
--- a/cgit.h
+++ b/cgit.h
@@ -87,6 +87,7 @@ extern int cgit_cmd;
 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;
@@ -158,6 +159,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);
diff --git a/git b/git
index 9159afbfce955db86373dab95b5f8e31fb763dae..aba170cdb4874b72dd619e6f7bbc13c33295f831 160000 (submodule)
--- a/git
+++ b/git
@@ -1 +1 @@
-Subproject commit 9159afbfce955db86373dab95b5f8e31fb763dae
+Subproject commit aba170cdb4874b72dd619e6f7bbc13c33295f831
diff --git a/html.c b/html.c
index 175b4b687efb75d443b847738775a1de92e97cf6..33a956fd5db8140eed9c1a237d3db31337d76918 100644 (file)
--- a/html.c
+++ b/html.c
@@ -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;
+}
index 0b074da779d652b9983b9d487793540482ac9ae7..45fde7fe3bc23fd8d7e9bbf6861f70395330df25 100644 (file)
--- a/shared.c
+++ b/shared.c
@@ -15,6 +15,7 @@ int cgit_cmd;
 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;
@@ -127,6 +128,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"))
index d7311e4d492768c689d7a35196dfe45108b23d74..8e367a2e34e386944bf9b2915c68945f1f886acb 100644 (file)
@@ -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>"