aboutsummaryrefslogtreecommitdiffstats
path: root/cgit.h
Commit message (Collapse)AuthorAgeLines
* Add support for environment variable expansionGravatar Lars Hjemli2010-03-22-0/+2
| | | | | | | | | | | | This patch teaches cgit to expand environment variables in certain cgitrc option values (cache_root, scan-path, include) plus when finding the location of cgitrc itself. One use case for this feature is virtual hosting - e.g. by setting $CGIT_CONFIG='/etc/cgitrc/$HTTP_HOST' in httpd.conf, all virtual hosts automatically gets their own cgitrc. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Merge branch 'lh/remote-branches'Gravatar Lars Hjemli2009-12-09-0/+2
|\
| * Add support for remote branchesGravatar Lars Hjemli2009-11-08-0/+2
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'ro/ssdiff'Gravatar Lars Hjemli2009-12-09-0/+2
|\ \
| * | Add possibility to switch between unidiff and side-by-side-diff.Gravatar Ragnar Ouchterlony2009-09-17-0/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A new config option side-by-side-diffs added, defaulting to 0, meaning unidiff. Also a query option (ss) is used toggle this. In the commit page you can switch between the two diff formats by clicking on the link on the "commit"-row, to the right of (patch). In the diff page you can switch by using the link at the start of the page. All commit-links and diff-links will remember the choice. Signed-off-by: Ragnar Ouchterlony <ragnar@lysator.liu.se> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | "max-blob-size" config var to limit generated HTML sizeGravatar Georg Lukas2009-11-28-0/+1
|/ | | | | | | | | Sometimes it is not feasible to generate the HTML pretty-print for large files, especially if a source-filter is involved or binary data is to be displayed. The "max-blob-size" config var allows to disable HTML output for blobs bigger than X KBytes. Plain downloads are not affected. Signed-off-by: Georg Lukas <georg@op-co.de>
* Merge branch 'lh/repo-scan'Gravatar Lars Hjemli2009-09-14-2/+7
|\
| * Add config option 'enable-filter-overrides'Gravatar Lars Hjemli2009-08-24-0/+1
| | | | | | | | | | | | | | This option must be enabled if repo-specific cgitrc files should be allowed to override any of the 'filter' options. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * Add support for repo-local cgitrc fileGravatar Lars Hjemli2009-08-24-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When recursively scanning a directory tree looking for git repositories, cgit will now parse cgitrc files found within such repositories. The repo-specific config files can include any repo-specific options except 'repo.url' and 'repo.path'. Also, in such config files the 'repo.' prefix can not be used, i.e. the valid options then becomes: * name * clone-url * desc * ower * defbranch * snapshots * enable-log-filecount * enable-log-linecount * max-stats * module-link * section * about-filter * commit-filter * source-filter * readme Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * Introduce 'section' as canonical spelling for 'repo.group'Gravatar Lars Hjemli2009-08-24-2/+2
| | | | | | | | | | | | | | | | The 'repo.' prefix should be reserved for repo-specific options, but the option 'repo.group' must still be honored to stay backwards compatible. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * cgit.c: add support for caching autodetected repositoriesGravatar Lars Hjemli2009-08-24-0/+1
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Rename "linenumbers" to "enable-tree-linenumbers", change default to "1"Gravatar Lars Hjemli2009-08-21-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes the name of the cgitrc option more descriptive and at the same time changes the default from "0" to "1" in an attempt to stay backwards compatible - prior to the introduction of "source-filter" and "linenumbers", cgit always generated linenumber links in the tree view, but now this feature can be turned off (one might want to do this if the source-filter performs line-wrapping etc). While at it, the documentation is updated to match the surrounding descriptions. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add 'linenumbers' config optionGravatar Florian Pritz2009-08-21-0/+1
|/ | | | | Signed-off-by: Florian Pritz <bluewind@xssn.at> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add and use a common readfile() functionGravatar Lars Hjemli2009-08-19-0/+1
| | | | | | | | | | | | 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>
* ui-shared: add support for NO_HTTP=1/--nohttpGravatar Lars Hjemli2009-08-10-0/+1
| | | | | | | | | | | 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-0/+13
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Merge branch 'lh/about'Gravatar Lars Hjemli2009-08-09-0/+2
|\ | | | | | | | | Conflicts: cgit.h
| * Add 'about-filter' and 'repo.about-filter' optionsGravatar Lars Hjemli2009-08-09-0/+2
| | | | | | | | | | | | | | | | 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>
* | Merge branch 'lh/plugins'Gravatar Lars Hjemli2009-08-09-0/+16
|\ \ | |/ | | | | | | | | Conflicts: cgit.c cgit.h
| * Add support for repo.commit-filter and repo.source-filterGravatar Lars Hjemli2009-08-09-9/+11
| | | | | | | | | | | | | | 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/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-0/+1
| | | | | | | | | | | | | | | | | | | | 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>
| * Add generic filter/plugin infrastructureGravatar Lars Hjemli2009-08-01-0/+12
| | | | | | | | | | | | | | 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-0/+2
|\ \
| * | Add support for mime type registration and lookupGravatar Lars Hjemli2009-07-25-0/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Introduce noplainemail option to hide email adresses from spambotsGravatar Martin Szulecki2009-08-08-0/+1
|/ | | | Signed-off-by: Martin Szulecki <opensuse@sukimashita.com>
* Merge branch 'lh/embedded'Gravatar Lars Hjemli2009-07-25-0/+2
|\ | | | | | | | | | | 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>
| * Add support for 'noheader' optionGravatar Lars Hjemli2009-07-25-0/+1
| | | | | | | | | | | | | | | | 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/+1
| | | | | | | | | | | | | | | | | | | | 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-0/+1
|\ \
| * | Add head-include configuration option.Gravatar Mark Lodato2009-06-08-0/+1
| |/ | | | | | | | | | | 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/+1
|\ \ | | | | | | | | | | | | Conflicts: ui-shared.c
| * | Add support for ETag in 'plain' viewGravatar Lars Hjemli2009-02-20-0/+1
| |/ | | | | | | | | | | | | | | | | | | | | | | 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>
* | Return http statuscode 404 on unknown branchGravatar Lars Hjemli2009-06-08-0/+2
|/ | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Merge branch 'lh/binary'Gravatar Lars Hjemli2009-02-02-1/+3
|\
| * Handle binary files in diffsGravatar Lars Hjemli2009-01-31-1/+3
| | | | | | | | | | | | | | This teaches all diff-related operations (i.e. ui-log, ui-diff and ui-patch) how to handle binary files. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add support for a custom headerGravatar Lars Hjemli2009-01-30-0/+1
|/ | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Merge branch 'lh/stats'Gravatar Lars Hjemli2009-01-28-0/+3
|\ | | | | | | | | | | | | | | | | | | Conflicts: cgit.c cgit.css cgit.h ui-tree.c Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * ui-stats: replace 'enable-stats' setting with 'max-stats'Gravatar Lars Hjemli2008-12-07-2/+2
| | | | | | | | | | | | | | | | | | The new 'max-stats' and 'repo.max-stats' settings makes it possible to define the maximum statistics period, both globally and per repo. Hence, it is now feasible to allow statistics on repositories with a high commit frequency, like linux-2.6, by setting repo.max-stats to e.g. 'month'. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * Add a 'stats' page to each repoGravatar Lars Hjemli2008-12-07-0/+3
| | | | | | | | | | | | | | | | | | | | | | This new page, which is disabled by default, can be used to print some statistics about the number of commits per period in the repository, where period can be either weeks, months, quarters or years. The function can be activated globally by setting 'enable-stats=1' in cgitrc and disabled for individual repos by setting 'repo.enable-stats=0'. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'full-log'Gravatar Lars Hjemli2008-12-06-0/+1
|\ \ | | | | | | | | | | | | | | | Conflicts: cgit.c cgit.h
| * | ui-log: add support for showing the full commit messageGravatar Lars Hjemli2008-11-30-0/+1
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some users prefer to see the full message, so to make these users happy the new querystring parameter "showmsg" can be used to print the full commit message per log entry. A link is provided in the log heading to make this function accessible, and all links and forms tries to preserve the users preference. Note: the new link is not displayed on the summary page since the point of the summary page is to be a summary, but it is still obeyed if specified manually. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'lh/sort-repolist'Gravatar Lars Hjemli2008-12-06-0/+2
|\ \
| * | ui-repolist: implement lazy caching of repo->mtimeGravatar Lars Hjemli2008-11-30-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When sorting the list of repositories by their last modification time, cgit would (in the worst case) invoke fstat(3) four times and open(3) twice for each callback from qsort(3). This obviously scales very badly. Now, the calculated modtime for each repo is saved in repo->mtime, thus keeping the number of stat/open invocations identical for sorted and unsorted repo-listings. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * | Add support for sorting by Age in the repolistGravatar Benjamin Close2008-11-29-0/+1
| |/ | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Extra cygwin-specific changesGravatar Ramsay Jones2008-12-04-6/+0
|/ | | | | Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add cgit_query.nohead flagGravatar Lars Hjemli2008-10-12-0/+1
| | | | | | | | This flag is set when no HEAD is specified in the querystring. Currently it has no users, but it will be used by ui-snapshot to invoke a DWIM-mode where the revision is extracted from the snapshot name. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Teach cgit how to use PATH_INFOGravatar Lars Hjemli2008-09-16-0/+1
| | | | | | | | | | | This commit makes cgit use the cgi variables SCRIPT_NAME and PATH_INFO when virtual-root is unspecified in cgitrc and no url-parameter is specified on the querystring. This has two nice effects: * Virtual urls works out of the box, no more need for rewrite-rules in httpd. * Virtual urls with special querystring characters are handled correctly. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* parsing.c: be prepared for unexpected content in commit/tag objectsGravatar Lars Hjemli2008-09-16-1/+1
| | | | | | | | When parsing commits and tags cgit made too many assumptions about the formatting of said objects. This patch tries to make the code be more prepared to handle 'malformed' objects. Signed-off-by: Lars Hjemli <hjemli@gmail.com>