aboutsummaryrefslogtreecommitdiffstats
path: root/shared.c
Commit message (Collapse)AuthorAgeLines
* Add and use a common readfile() functionGravatar Lars Hjemli2009-08-19-0/+21
| | | | | | | | | | | | 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>
* Add 'about-filter' and 'repo.about-filter' optionsGravatar Lars Hjemli2009-08-09-0/+1
| | | | | | | | 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>
* Add support for repo.commit-filter and repo.source-filterGravatar Lars Hjemli2009-08-09-0/+2
| | | | | | | These options can be used to override the default commit- and source- filter settings per repository. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add generic filter/plugin infrastructureGravatar Lars Hjemli2009-08-01-0/+35
| | | | | | | 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>
* shared.c: avoid SEGFAULT when checking for binary buffersGravatar Lars Hjemli2009-02-02-2/+2
| | | | | | | Before calling buffer_is_binary() we need to verify that the buffer is valid. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Handle binary files in diffsGravatar Lars Hjemli2009-01-31-2/+11
| | | | | | | 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>
* Merge branch 'lh/stats'Gravatar Lars Hjemli2009-01-28-0/+1
|\ | | | | | | | | | | | | | | | | | | 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-1/+1
| | | | | | | | | | | | | | | | | | 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/+1
| | | | | | | | | | | | | | | | | | | | | | 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>
* | shared.c: future-proof usage of git diff-structuresGravatar Lars Hjemli2008-12-26-1/+3
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | 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>
* Move cgit_parse_query() from parsing.c to html.c as http_parse_querystring()Gravatar Lars Hjemli2008-04-09-12/+0
| | | | | | This is a generic http-function. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Move cgit_version from shared.c to cgit.cGravatar Lars Hjemli2008-03-25-2/+0
| | | | | | | With the matching Makefile change, this makes sure that only cgit.o and cgit proper needs to be rebuildt when VERSION has been modified. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Move non-generic functions from shared.c to cgit.cGravatar Lars Hjemli2008-03-25-151/+1
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Refactor snapshot supportGravatar Lars Hjemli2008-03-25-0/+27
| | | | | | | | | The snapshot support needs to be split between output- and config-related functions to get the layering between shared.c and ui-*.c right. There is also some codestyle-issues which needs fixing to make the snapshot functions more similar to the rest of the cgit code. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add command dispatcherGravatar Lars Hjemli2008-03-24-13/+0
| | | | | | | This simplifies the code in cgit.c and makes it easier to extend cgit with new pages/commands. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add struct cgit_page to cgit_contextGravatar Lars Hjemli2008-03-24-0/+3
| | | | | | | | This struct is used when generating http headers, and as such is another small step towards the goal of the whole cleanup series; to invoke each page/view function with a function pointer. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Introduce html.hGravatar Lars Hjemli2008-03-18-2/+0
| | | | | | | | All html-functions can be quite easily separated from the rest of cgit, so lets do it; the only issue was html_filemode which uses some git-defined macros so the function is moved into ui-shared.c::cgit_print_filemode(). Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Move cgit_repo into cgit_contextGravatar Lars Hjemli2008-02-16-31/+30
| | | | | | | | This removes the global variable which is used to keep track of the currently selected repository, and adds a new variable in the cgit_context structure. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add all config variables into struct cgit_contextGravatar Lars Hjemli2008-02-16-75/+63
| | | | | | | | This removes another big set of global variables, and introduces the cgit_prepare_context() function which populates a context-variable with compile-time default values. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Introduce struct cgit_contextGravatar Lars Hjemli2008-02-16-29/+14
| | | | | | | | | This struct will hold all the cgit runtime information currently found in a multitude of global variables. The first cleanup removes all querystring-related variables. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Use GIT-1.5.4.rc4Gravatar Lars Hjemli2008-01-21-1/+1
|
* Merge branch 'stable'Gravatar Lars Hjemli2008-01-14-1/+1
|\ | | | | | | | | | | | | | | * stable: CGIT 0.7.2 Use GIT-1.5.3.8 Compare string lengths when parsing the snapshot mask Default repo description to "[no description]"
| * Default repo description to "[no description]"Gravatar Evan Martin2007-12-03-1/+1
| | | | | | | | | | | | | | Otherwise, when you leave out a description for a repository, the NULL default causes cgit to print out titles like "cgit - (null)". Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add plain patch viewGravatar Lars Hjemli2007-12-11-1/+1
| | | | | | | | | | | | | | | | | | | | The new view mimics the output from `git format-patch`, making it possible to cherry-pick directly from cgit with something like `curl $url | git am`. Inspired by a patch to `git-apply` by Mike Hommey: http://thread.gmane.org/gmane.comp.version-control.git/67611/focus=67610 Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add support for automatic and custom clone urlsGravatar Lars Hjemli2007-12-03-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for two new parameters to cgitrc: clone-prefix and repo.clone-url. If clone-prefix is specified, all repos will get a clone url printed in the sidebar; the url is generated by clone-prefix + repo.url. Additionally, each repo can specify repo.clone-url which will override any such auto-generated url. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add support for "robots" meta-tagGravatar Lars Hjemli2007-11-12-0/+3
| | | | | | | | | | | | | | | | | | With this change, cgit will start to generate the "robots" meta-tag, using a default value of "index, nofollow". The default value can be modified with a new cgitrc variable, "robots". Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Merge branch 'stable'Gravatar Lars Hjemli2007-11-08-2/+4
|\ \ | |/ | | | | | | * stable: Support "/" as virtual-root
| * Support "/" as virtual-rootGravatar Lars Hjemli2007-11-08-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | When the virtual-root was a single "/", it would be normalized to NULL due to removal of trailing slashes, which in turn would fool us to belive that we shouldn't generate virtual urls. This makes the "/" normalize to "", effectively allowing virtual urls like http://example.com/projectname to be generated without specifying the full domain name as the virtual root. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add commit->msg_encoding, allocate msg dynamicly.Gravatar Jonathan Bastien-Filiatrault2007-11-06-0/+2
|/
* Change the cgit layoutGravatar Lars Hjemli2007-10-30-0/+31
| | | | | | | | | | | | | | | | | This modifies and hopefully improves the layout of all cgit pages: * Remove the header from all pages and replace it with a sidebar; most pages have sufficient width but many needs more height. * Add a dropdown-box to switch between branches, using a one-liner javascript to reload the current page in context of the selected branch. * Include refs found below refs/archives in the sidebar, appearing as a set of menuitems below a 'download' heading. * Include the brand new cgit logo Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add config param 'index-info'Gravatar Lars Hjemli2007-10-30-0/+3
| | | | | | | This parameter will be used to include a html file in the upcoming sidebar on the index page. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Teach log search about --grep, --author and --committerGravatar Lars Hjemli2007-10-28-0/+3
| | | | | | | This makes the log searching more explicit, using a dropdown box to specify the commit field to match against. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for refs viewGravatar Lars Hjemli2007-10-27-1/+1
| | | | | | | This enables the new urls $repo/refs, $repo/refs/heads and $repo/refs/tags, which can be used to print _all_ branches and/or tags. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for config param summary-branchesGravatar Lars Hjemli2007-10-27-0/+3
| | | | | | | | | This parameter can be used to specify max number of branches to show on the summary page (if not all branches will be displayed, the "most idle" branches are the ones to be pruned). The default value for this parameter is 0, which disables the pruning. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for config param summary-tagsGravatar Lars Hjemli2007-10-27-0/+3
| | | | | | | This parameter can be used to specify max number of tags to show on the summary page. If not specified, all tags are printed. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add functions and types for ref listsGravatar Lars Hjemli2007-10-27-0/+41
| | | | | | | This adds two structs, refinfo and reflist, and functions for building a list of refs. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add prefix parameter to cgit_diff_tree()Gravatar Lars Hjemli2007-10-01-2/+9
| | | | | | This paramter can be used to restrict a diff to the specified path prefix. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for a renamelimit option in cgitrcGravatar Lars Hjemli2007-09-25-0/+4
| | | | | | This option can be used to override the default rename-limit in git. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Use trim_end() to remove trailing slashesGravatar Lars Hjemli2007-09-20-3/+3
| | | | | | | | | | | | | All urls and paths read from cgitrc needs to be 'normalized', i.e. get any trailing slashes removed, and the trim_end() function works out nice for this purpose. Removing the trailing slashes also happens to fix the case where the virtual root should be a single slash; that case used to require specifying the full hostname (including the http:// prefix), but now it can simply be specified as /. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Remove a few compiler warningsGravatar Lars Hjemli2007-09-20-1/+2
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Make cgit honor CACHE_ROOT as defined in MakefileGravatar Chris Pickel2007-09-08-1/+1
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Set xdemitconf_t.findfunc=NULLGravatar Lars Hjemli2007-09-04-0/+1
| | | | | | | | This function-pointer was introduced in git v1.5.3-rc0-42-gf258475. It needs to have a value, and setting it to NULL triggers the old behaviour for selecting hunk headers. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Merge branch 'master' of git://git.klever.net/patchwork/cgitGravatar Lars Hjemli2007-07-23-2/+9
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'master' of git://git.klever.net/patchwork/cgit: link raw blob from tree file view fix: changed view link to blob in summary. allow selective enabling of snapshots shorten snapshot names to repo basename introduce cgit_repobasename added snapshot filename to the link add plain uncompressed tar snapshort format introduced .tar.bz2 snapshots compress .tar.gz using gzip as a filter added a chk_non_negative check css: adjust vertical-align of commit info th cells add support for snapshot tarballs Conflicts: ui-summary.c Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * allow selective enabling of snapshotsGravatar Michael Krelin2007-07-22-2/+2
| | | | | | | | | | | | | | | | snapshot configuration parameter now can be a space/slash/comma/colon/semicolon/pipe-separated list of snaphot suffixes as listed in ui-snapshot.c Signed-off-by: Michael Krelin <hacker@klever.net>
| * added a chk_non_negative checkGravatar Michael Krelin2007-07-21-0/+7
| |
* | Add ui-tag.cGravatar Lars Hjemli2007-07-23-1/+1
|/ | | | | | | This file implements the tag-command, i.e. printing of annotated tags. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Merge branch 'lh/menu'Gravatar Lars Hjemli2007-06-30-1/+26
|\ | | | | | | | | | | | | | | | | | | | | | | * lh/menu: Add ofs argument to cgit_log_link and use it in ui-log.c Add trim_end() and use it to remove trailing slashes from repo paths Do not include current path in the "tree" menu link Add setting to enable/disable extra links on index page Change S/L/T to summary/log/tree Change "files" to "tree" Include querystring as part of cached filename for repo summary page Add more menuitems on repo pages
| * Add trim_end() and use it to remove trailing slashes from repo pathsGravatar Lars Hjemli2007-06-27-1/+23
| | | | | | | | | | | | | | | | The new function removes all trailing instances of an arbitrary character from a copy of the supplied char array. This is then used to remove any trailing slashes from cgit_query_path. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * Add setting to enable/disable extra links on index pageGravatar Lars Hjemli2007-06-19-0/+3
| | | | | | | | | | | | | | | | | | | | The summary/log/tree links displayed for each repository on the index page lost some of their purpose when the header menu was added, so this commit introduces the parameter 'enable-index-links' which must be set to 1 to enable these links. Suggested-by: Kristian Høgsberg <krh@bitplanet.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>