summaryrefslogtreecommitdiffabout
AgeCommit message (Collapse)AuthorFilesLines
2010-03-21Add support for environment variable expansionLars Hjemli3-5/+78
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-28ui-tree: add link to plain view for blobs in tree listingLars Hjemli1-0/+2
Suggested-by: Robert Weidlich <mail@robertweidlich.de> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2010-02-27Use GIT-1.7.0Lars Hjemli2-1/+1
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2010-02-27Merge branch 'html-updates' of git://github.com/MarkLodato/cgitLars Hjemli2-30/+58
2010-02-27Merge branch 'stable'Lars Hjemli2-3/+3
2010-02-27Clear the whole contextDaniel Milde1-1/+1
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2010-02-27ui-shared.c: fix segfault when repo is emptyFlorian Pritz1-2/+2
PATH_INFO="/$REPONAME/commit/?id=1" QUERY_STRING="id=1" ./cgit.cgi triggers segfault when the repository is empty and therefore ctx.qry.head is unset Signed-off-by: Florian Pritz <bluewind@xssn.at> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2010-02-09html: properly percent-escape URLsMark Lodato1-4/+32
The only valid characters for a URL are unreserved characters a-zA-Z0-9_-.~ and the reserved characters !*'();:@&=+$,/?%#[] , as per RFC 3986. Everything else must be escaped. Additionally, the # and ? always have special meaning, and the &, =, and + have special meaning in a query string, so they too must be escaped. To make this easier, a table of escapes is now used so that we do not have to call fmt() for each character; if the entry is 0, no escaping is needed. Signed-off-by: Mark Lodato <lodatom@gmail.com>
2010-02-09html: make all strings 'const char *'Mark Lodato2-26/+26
None of the html_* functions modify their argument, so they can all be 'const char *' instead of a simple 'char *'. This removes the need to cast (or copy) when trying to print a const string. Signed-off-by: Mark Lodato <lodatom@gmail.com>
2009-12-12Merge branch 'stable'Lars Hjemli4-4/+4
2009-12-12CGIT 0.8.3.1v0.8.3.1Lars Hjemli1-1/+1
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-12-12Fix segfault on ppc when browsing treeMartins Polakovs3-3/+3
2009-12-08Add .tar.xz-snapshot supportAndreas Wiese1-4/+10
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-12-08Merge branch 'lh/remote-branches'Lars Hjemli5-0/+18
2009-12-08Merge branch 'ro/ssdiff'Lars Hjemli13-25/+586
2009-12-08Merge branch 'master' of http://op-co.de/cgitLars Hjemli6-17/+31
2009-12-08Merge branch 'stable'Lars Hjemli1-2/+2
2009-12-08Don't crash when a repo-specific readme file is usedSami Kyöstilä1-2/+2
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-11-28"max-blob-size" config var to limit generated HTML sizeGeorg Lukas4-0/+14
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>
2009-11-28cgit.css: highlight directories in treeGeorg Lukas1-0/+5
2009-11-19syntax highlighting for all formats supported by "highlight"Georg Lukas1-17/+12
The highlight tool can be given any of the supported file extensions as its -S parameter. This patch replaces the case-switch by extracting the extension from the supplied file name and passing it to highlight. However, this requires a shell supporting the ${var##pattern} syntax, like dash or bash. Unknown extensions cause a fall-back to plain text using the --force switch. Error messages are redirected to /dev/null. A special case maps Makefile and Makefile.* to the "mk" extension. The total overhead is reduced by calling "exec highlight". No forks are needed during script execution. Signed-off-by: Georg Lukas <georg@op-co.de>
2009-11-07Add support for remote branchesLars Hjemli5-0/+18
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-11-07Merge branch 'stable'Lars Hjemli1-3/+5
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-07Add NO_OPENSSL optionMikhail Gusarov1-3/+12
Linking with OpenSSL is not always desirable. Add NO_OPENSSL option to use SHA-1 code bundled with Git. Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
2009-11-07In side-by-side diff, add support for marking individual characters.Ragnar Ouchterlony2-25/+130
Refuses to do so if the left hand side of the diff has different amount of differing lines to the right hand side to avoid confusion. Note that I use the naive dynamic programming approach for calculating the longest common subsequence. We could probably be more efficient by using a better algorithm. The LCS calculating function is O(n*m) and uses up n*m amount of memory too (so if we we compare two strings of length 100, I use an array of 10000 for calculating the LCS). Might want to not calculate LCS if the length of the line is too large. Signed-off-by: Ragnar Ouchterlony <ragnar@lysator.liu.se>
2009-11-07Merge branch 'stable'Lars Hjemli2-3/+8
2009-11-07Close fd on error in readfile()Rys Sommefeldt1-2/+7
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-11-07Nov is the correct abbreviationDanijel Tašov1-1/+1
2009-10-16ui-shared.c: prettify download links when generated from tag pageLars Hjemli1-2/+7
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-10-06ui-tag: make output more similar to commit viewLars Hjemli1-6/+6
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-10-06ui-tag: add snapshot linksAlexey Nezhdanov1-0/+12
Signed-off-by: Alexey Nezhdanov <snakeru@gmail.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-10-06Skip leading "/" in url querystring valueStefan Bühler1-0/+2
Makes it easier to rewrite :) lighttpd-sandbox: rewrite "/cgit.cgi?url=%{enc:request.path}&%{request.query}"; Signed-off-by: Stefan Bühler <source@stbuehler.de> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-09-20Fix repolist search links with virtual rootGeoff Johnstone2-1/+2
Signed-off-by: Geoff Johnstone <geoff.johnstone@googlemail.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-09-16Fixed side-by-side diff bugs related to binary diff and more.Ragnar Ouchterlony2-6/+16
The fixed bugs: * "Binary files differ" did not show up either in unidiff or side-by-side-diff. * Subproject diffs did not work for side-by-side diffs. * The ssdiff link on diff pages did not conserve the path. Signed-off-by: Ragnar Ouchterlony <ragnar@lysator.liu.se> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-09-16Polishing of how the side-by-side diff looks.Ragnar Ouchterlony4-30/+96
Aligned all different files, so that all side-by-side tables look the same. Also made sure that the tables take up the whole browser width. Also various changes to the css to make things easier on the eye. Signed-off-by: Ragnar Ouchterlony <ragnar@lysator.liu.se> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-09-16Add possibility to switch between unidiff and side-by-side-diff.Ragnar Ouchterlony9-16/+73
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>
2009-09-16First version of side-by-side diff.Ragnar Ouchterlony5-2/+325
This constitutes the first prototype of a side-by-side diff. It is not possible to switch between unidiff and side-by-side diff at all at this stage. Signed-off-by: Ragnar Ouchterlony <ragnar@lysator.liu.se> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-09-14cgitrc.5.txt: Change repo.group to section in example config.Loui Chang1-4/+4
Signed-off-by: Loui Chang <louipc.ist@gmail.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-09-14cgitrc.5.txt: Add mansource and manmanual.Loui Chang1-0/+3
This prevents FIXMEs from appearing. Signed-off-by: Loui Chang <louipc.ist@gmail.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-09-13CGIT 0.8.3v0.8.3Lars Hjemli1-1/+1
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-09-13Merge branch 'stable'Lars Hjemli1-1/+1
2009-09-13CGIT 0.8.2.2v0.8.2.2Lars Hjemli1-1/+1
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-09-13Merge branch 'lh/repo-scan'Lars Hjemli11-80/+329
2009-09-13Merge branch 'fp/linenumbers'Lars Hjemli5-17/+32
2009-09-13Use GIT-1.6.4.3Lars Hjemli4-3/+3
Signed-off-by: Lars Hjemli <larsh@slackbox.hjemli.net>
2009-09-06Merge branch 'stable'Lars Hjemli1-1/+2
2009-09-06ui-plain.c: only return the blob with the specified pathLars Hjemli1-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>
2009-08-24cgit.c: respect repo-local 'snapshots' option for --scan-pathLars Hjemli1-0/+10
The repo-specific 'snapshots' option is bitwise AND'ed with the global 'snapshots' option during parsing, and since the global cgitrc hasn't been parsed when --scan-path is processed the global 'snapshots' will always be 0 (i.e. no repo-specific 'snapshots' setting will have any effect). This patch fixes the issue by setting the global 'snapshots' mask to 0xFF (hence relying on later parsing of the generated cgitrc repolist to do the right thing). Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-08-24cgit.c: only print first line of repo.desc in print_repo()Lars Hjemli1-2/+14
Since repo.desc might have been populated by reading the 'description' file in GIT_DIR, it may contain newlines. And by printing the literal value, we may then generate an invalid cgitrc include-file. Signed-off-by: Lars Hjemli <hjemli@gmail.com>