aboutsummaryrefslogtreecommitdiffstats
path: root/shared.c
AgeCommit message (Collapse)AuthorFilesLines
2010-07-18Add URL parameter 'ignorews' for optionally ignoring whitespace in diffsJohan Herland1-3/+8
The new ctx.qry.ignorews variable is passed via cgit_diff_files() and cgit_diff_tree() to Git's diff machinery. This is equivalent to passing --ignore-all-space to 'git diff'. Signed-off-by: Johan Herland <johan@herland.net>
2010-06-22Merge branch 'jh/context-lines'Lars Hjemli1-2/+3
Conflicts: cgit.c cgit.h
2010-06-22Merge branch 'jh/path-limit'Lars Hjemli1-1/+0
Conflicts: cgit.h ui-commit.c
2010-06-19Add URL parameter 'context' for changing the number of context lines in diffsJohan Herland1-2/+3
The new ctx.qry.context variable is picked up by cgit_print_diff(), and passed via cgit_diff_files() to Git's diff machinery. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2010-06-19Merge branch 'sn/subject-link'Lars Hjemli1-0/+1
2010-06-19Remove unused variable in shared.cJohan Herland1-1/+0
Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2010-04-08Merge branch 'stable'Lars Hjemli1-0/+8
2010-04-08shared.c: avoid memory leak during diffLars Hjemli1-0/+8
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2010-03-22Add support for environment variable expansionLars Hjemli1-0/+71
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>
2010-02-27Optionally generate verbose parent linksLars Hjemli1-0/+1
The new option 'enable-subject-links' must be used to enable the verbose parent-links in commit view. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-11-07Add support for remote branchesLars Hjemli1-0/+1
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-11-07shared.c: return original errnoLars Hjemli1-3/+5
Noticed-by: Andreas Schwab <schwab@linux-m68k.org> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-11-07Close fd on error in readfile()Rys Sommefeldt1-2/+7
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-08-24shared.c: initialize cgit_repo structs properlyLars Hjemli1-0/+1
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-08-24Introduce 'section' as canonical spelling for 'repo.group'Lars Hjemli1-1/+1
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>
2009-08-18Add and use a common readfile() functionLars Hjemli1-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>
2009-08-09Add 'about-filter' and 'repo.about-filter' optionsLars Hjemli1-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>
2009-08-09Add support for repo.commit-filter and repo.source-filterLars Hjemli1-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>
2009-07-31Add generic filter/plugin infrastructureLars Hjemli1-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>
2009-02-01shared.c: avoid SEGFAULT when checking for binary buffersLars Hjemli1-2/+2
Before calling buffer_is_binary() we need to verify that the buffer is valid. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-01-31Handle binary files in diffsLars Hjemli1-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>
2009-01-27Merge branch 'lh/stats'Lars Hjemli1-0/+1
Conflicts: cgit.c cgit.css cgit.h ui-tree.c Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-12-26shared.c: future-proof usage of git diff-structuresLars Hjemli1-1/+3
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-12-07ui-stats: replace 'enable-stats' setting with 'max-stats'Lars Hjemli1-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>
2008-12-06Add a 'stats' page to each repoLars Hjemli1-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>
2008-11-29ui-repolist: implement lazy caching of repo->mtimeLars Hjemli1-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>
2008-04-08Move cgit_parse_query() from parsing.c to html.c as http_parse_querystring()Lars Hjemli1-12/+0
This is a generic http-function. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24Move cgit_version from shared.c to cgit.cLars Hjemli1-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>
2008-03-24Move non-generic functions from shared.c to cgit.cLars Hjemli1-151/+1
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24Refactor snapshot supportLars Hjemli1-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>
2008-03-24Add command dispatcherLars Hjemli1-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>
2008-03-24Add struct cgit_page to cgit_contextLars Hjemli1-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>
2008-03-18Introduce html.hLars Hjemli1-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>
2008-02-16Move cgit_repo into cgit_contextLars Hjemli1-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>
2008-02-16Add all config variables into struct cgit_contextLars Hjemli1-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>
2008-02-16Introduce struct cgit_contextLars Hjemli1-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>
2008-01-21Use GIT-1.5.4.rc4Lars Hjemli1-1/+1
2008-01-13Merge branch 'stable'Lars Hjemli1-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]"
2007-12-11Add plain patch viewLars Hjemli1-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>
2007-12-03Add support for automatic and custom clone urlsLars Hjemli1-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>
2007-12-03Default repo description to "[no description]"Evan Martin1-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>
2007-11-11Add support for "robots" meta-tagLars Hjemli1-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>
2007-11-08Merge branch 'stable'Lars Hjemli1-2/+4
* stable: Support "/" as virtual-root
2007-11-08Support "/" as virtual-rootLars Hjemli1-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>
2007-11-06Add commit->msg_encoding, allocate msg dynamicly.Jonathan Bastien-Filiatrault1-0/+2
2007-10-30Change the cgit layoutLars Hjemli1-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>
2007-10-30Add config param 'index-info'Lars Hjemli1-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>
2007-10-28Teach log search about --grep, --author and --committerLars Hjemli1-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>
2007-10-27Add support for refs viewLars Hjemli1-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>
2007-10-27Add support for config param summary-branchesLars Hjemli1-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>