aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
* Merge branch 'stable'Gravatar Lars Hjemli2009-09-07-1/+2
|\
| * ui-plain.c: only return the blob with the specified pathGravatar Lars Hjemli2009-09-07-1/+2
| | | | | | | | | | | | | | | | | | | | When a path to a directory was specified for the 'plain' view, each blob in the directory used to be returned to the client. This patch fixes the issue by matching the path of each blob against the requested path. Noticed-by: Lars Stoltenow <penma@penma.de> Signed-off-by: Lars Hjemli <larsh@slackbox.hjemli.net>
* | cgitrc.5.txt: fix description and markup for 'snapshots' optionGravatar Lars Hjemli2009-08-24-8/+3
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | scan-tree: split the pw_gecos field at the ',' to get the real nameGravatar Stefan Naewe2009-08-20-0/+3
| | | | | | | | | | Signed-off-by: Stefan Naewe <stefan.naewe@atlas-elektronik.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | cgit.c: fix caching keyed on PATH_INFO with no QUERY_STRINGGravatar Lars Hjemli2009-08-20-1/+1
| | | | | | | | | | | | | | | | When generating a hash for caching, ctx.qry.raw is used as key. And since cgit_parse_url() zero-terminates it's argument (after the repo path), ctx.qry.raw must xstrdup(ctx.qry.url). Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add and use a common readfile() functionGravatar Lars Hjemli2009-08-19-23/+34
| | | | | | | | | | | | | | | | | | | | | | | | This function is used to read the full content of a textfile into a newly allocated buffer (with zerotermination). It replaces the earlier readfile() in scan-tree.c (which was rather error-prone[1]), and is reused by read_agefile() in ui-repolist.c. 1: No checks for EINTR and EAGAIN, fixed-size buffer Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'stable'Gravatar Lars Hjemli2009-08-19-0/+2
|\ \ | |/
| * truncate buffer before reading empty filesGravatar Simon Arlott2009-08-18-0/+2
| | | | | | | | | | | | | | | | | | | | If readfile() reads an empty file, fgets() won't truncate the buffer and it'll still contain the contents of the previously read file. [lh: fixed similar issue in ui-repolist.c] Signed-off-by: Simon Arlott <simon@fire.lp0.eu> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'stable'Gravatar Lars Hjemli2009-08-18-8/+11
|\ \ | |/
| * ui-shared: don't print header <img/> if there isn't a logo definedGravatar Matthew Metnetsky2009-08-18-8/+11
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'stable'Gravatar Lars Hjemli2009-08-17-1/+7
|\ \ | |/
| * cgit.c: do not segfault on unexpected query-string formatGravatar Lars Hjemli2009-08-17-0/+3
| | | | | | | | | | | | | | | | The querystring_cb() function will be invoked with a NULL value when the querystring contains a name not followed by a '='. Such a value used to cause a segfault, which this patch fixes. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * ui-tag.c: do not segfault when id is missing from query-stringGravatar Lars Hjemli2009-08-17-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The purpose of the tag page is to print info about a specific tag, but if no tag was specified on the query-string cgit used to segfault. With this patch, cgit will fallback to the value of the 'h' parameter instead (which is never NULL due to prepare_repo_cmd() in cgit.c). It will now also verify that the specified tagname is in fact a valid ref in the 'refs/tags/' namespace, i.e. specifying 'id=master' will trigger a 'Bad tag reference' error. Noticed-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | ui-log.c: handle lightweight tags when printing commit decorationsGravatar Lars Hjemli2009-08-17-0/+4
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | ui-refs.c: improve handling of lightweight tagsGravatar Stefan Bühler2009-08-17-1/+18
| | | | | | | | | | | | | | | | | | | | When a lightweight tag is referencing a commit object, cgit now uses the commit date when comparing tag age. Also, the commitdate and author info is printed in the refs view, making lightweight tags appear similar to annotated tags. Signed-off-by: Stefan Bühler <lighttpd@stbuehler.de> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Use GIT-1.6.3.4Gravatar Lars Hjemli2009-08-17-1/+1
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'lh/embedded'Gravatar Lars Hjemli2009-08-11-39/+63
|\ \
| * | ui-shared: add support for header/footer options when embedded=1Gravatar Lars Hjemli2009-08-11-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When embedded=1, cgit used to ignore the header and footer options. But honoring these options when embedded=1 makes it possible to "frame" the html fragment generated by cgit with any kind of static content, i.e. it should become easier to integrate cgit with site-specfic layouts. Original-patch-by: Mark Constable <markc@renta.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | ui-shared: add support for NO_HTTP=1/--nohttpGravatar Lars Hjemli2009-08-10-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cgit_print_http_headers() used to do nothing if 'embedded' was specified in cgitrc, but that was wrong - we never want to skip the headers when invoked as a CGI app. Sadly, there's no easy way to detect if we're invoked as a CGI app or if we're invoked by another CGI app, so for the latter case cgit needs to be invoked with either --nohttp on the command line or NO_HTTP=1 in the environment. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | Cleanup handling of environment variablesGravatar Lars Hjemli2009-08-10-33/+45
| | | | | | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | cgitrc.5.txt: describe where/how cgit will locate cgitrcGravatar Lars Hjemli2009-08-11-0/+7
| | | | | | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | cgit.c: make '/cgit.png' the default value for 'logo' optionGravatar Lars Hjemli2009-08-11-2/+2
| | | | | | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | cgit.css: align commit message with subject in expanded log listingGravatar Lars Hjemli2009-08-11-1/+1
|/ / | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add some example filter scriptsGravatar Lars Hjemli2009-08-09-0/+51
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'lh/about'Gravatar Lars Hjemli2009-08-09-10/+48
|\ \ | | | | | | | | | | | | Conflicts: cgit.h
| * | Add 'about-filter' and 'repo.about-filter' optionsGravatar Lars Hjemli2009-08-09-2/+28
| | | | | | | | | | | | | | | | | | | | | | | | These options can be used to execute a filter command on each about-page, both top-level and for each repository (repo.about-filter can be used to override the current about-filter). Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | ui-summary: enable arbitrary paths below repo.readmeGravatar Lars Hjemli2009-08-09-8/+20
| | | | | | | | | | | | | | | | | | | | | | | | This change makes it possible to include any number of pages below the 'about' tab for a repository. The path is assumed to be located in the same directory as the 'repo.readme' file. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | Merge branch 'lh/plugins'Gravatar Lars Hjemli2009-08-09-32/+125
|\ \ \ | |/ / | | | | | | | | | | | | Conflicts: cgit.c cgit.h
| * | cgit.c: allow repo.*-filter options to unset the current defaultGravatar Lars Hjemli2009-08-09-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | If e.g. repo.commit-filter is specified as an empty string, this is now properly handled as disabling the global commit-filter setting for the current repository. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | Add support for repo.commit-filter and repo.source-filterGravatar Lars Hjemli2009-08-09-21/+35
| | | | | | | | | | | | | | | | | | | | | These options can be used to override the default commit- and source- filter settings per repository. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | ui-commit: add support for 'commit-filter' optionGravatar Lars Hjemli2009-08-01-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new option specifies a filter which is executed on the commit message, i.e. the commit message is written to the filters STDIN and the filters STDOUT is included verbatim as the commit message. This can be used to implement commit linking by creating a simple shell script in e.g. /usr/bin/cgit-commit-filter.sh like this: #/bin/sh sed -re 's|\b([0-9a-fA-F]{6,40})\b|<a href="./?id=\1">\1</a>|g' Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | ui-tree: add support for source-filter optionGravatar Lars Hjemli2009-08-01-4/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new option is used to specify an external command which will be executed when displaying blob content in the tree view. Blob content will be written to STDIN of the filter and STDOUT from the filter will be included verbatim in the html output from cgit. The file name of the blob will be passed as the only argument to the filter command. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | ui-snapshot: use cgit_{open|close}_filter() to execute compressorsGravatar Lars Hjemli2009-08-01-28/+7
| | | | | | | | | | | | | | | | | | | | | This simplifies the code in ui-snapshot.c and makes the test-suite verify the new filter-functions. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | Add generic filter/plugin infrastructureGravatar Lars Hjemli2009-08-01-0/+62
| | | | | | | | | | | | | | | | | | | | | The functions cgit_open_filter() and cgit_close_filter() can be used to execute filters on the output stream from cgit. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | Merge branch 'lh/mimetypes'Gravatar Lars Hjemli2009-08-09-5/+45
|\ \ \
| * | | Add support for mime type registration and lookupGravatar Lars Hjemli2009-07-25-5/+45
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes it possible to register mappings from filename extension to mime type in cgitrc and use this mapping when returning blob content in `plain` view. The reason for adding this mapping to cgitrc (as opposed to parsing something like /etc/mime.types) is to allow quick lookup of a limited number of filename extensions (/etc/mime-types on my machine currently contains over 700 entries). NB: A nice addition to this patch would be to parse /etc/mime.types when `plain` view is requested for a file with an extension for which there is no mapping registered in cgitrc. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | Expose file extension in tree lists as class to allow nicer tree stylingGravatar Martin Szulecki2009-08-08-1/+7
| | | | | | | | | | | | Signed-off-by: Martin Szulecki <opensuse@sukimashita.com>
* | | Introduce noplainemail option to hide email adresses from spambotsGravatar Martin Szulecki2009-08-08-7/+22
|/ / | | | | | | Signed-off-by: Martin Szulecki <opensuse@sukimashita.com>
* | Merge branch 'lh/embedded'Gravatar Lars Hjemli2009-07-25-6/+37
|\ \ | | | | | | | | | | | | | | | Conflicts: cgitrc.5.txt ui-shared.c
| * | cgit.h: keep config flags sortedGravatar Lars Hjemli2009-07-25-2/+2
| | | | | | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | cgitrc.5.txt: document 'embedded' and 'noheader'Gravatar Lars Hjemli2009-07-25-0/+9
| | | | | | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | Add support for 'noheader' optionGravatar Lars Hjemli2009-07-25-7/+16
| | | | | | | | | | | | | | | | | | | | | | | | This option can be used to disable the standard cgit page header, which might be useful in combination with the 'embedded' option. Suggested-by: Mark Constable <markc@renta.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | Add support for an 'embedded' option in cgitrcGravatar Lars Hjemli2009-02-02-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When activated, cgit will neither generate http headers nor any 'framing' html elements (like <html> and <body>). Also, all page content is now wrapped in a <div id='cgit'> element to make it easier to select the correct cgit classes when embedded/themed. Suggested-by: Matt Sealey <matt@genesi-usa.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | Merge branch 'ml/head-include'Gravatar Lars Hjemli2009-07-25-1/+10
|\ \ \
| * | | cgitrc.5.txt: document 'head-include'Gravatar Lars Hjemli2009-07-25-0/+4
| | | | | | | | | | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | | Add head-include configuration option.Gravatar Mark Lodato2009-06-08-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds an option to the configuration file, "head-include", which works just like "header" or "footer", except the content is put into the HTML's <head> tag.
* | | | Merge branch 'plain-etag'Gravatar Lars Hjemli2009-07-25-0/+12
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Conflicts: ui-shared.c
| * | | | Add support for HEAD requestsGravatar Lars Hjemli2009-02-20-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a quick 'n dirty hack which makes cgit honor HEAD requests. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | | | Add support for ETag in 'plain' viewGravatar Lars Hjemli2009-02-20-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When downloading a blob identified by its path, the client might want to know if the blob has been modified since a previous download of the same path. To this end, an ETag containing the blob SHA1 seems to be ideal. Todo: add support for HEAD requests... Suggested-by: Owen Taylor <otaylor@redhat.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | | | | Merge branch 'rt/plain-binary'Gravatar Lars Hjemli2009-07-25-2/+11
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>