Website Summary Files Commits Branches @commit @diff @stats
path: root / ui-commit.c
Commit message (Collapse)AuthorAgeLinesSHA
* filter: add page source to email filter
 Jason A. Donenfeld
2014-01-14-2/+2786609b
| | | | | | | | Since the email filter is called from lots of places, the script might benefit from knowing the origin. That way it can modify its contents and/or size depending. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* filter: add support for email filter
 Jason A. Donenfeld
2014-01-14-0/+4a5e1553
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* filter: return on null filter from open and close
 Jason A. Donenfeld
2014-01-14-12/+6800380d
| | | | | | | | So that we don't have to include the if(filter) open_filter(filter) block everywhere, we introduce the guard in the function itself. This should simplify quite a bit of code. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* Update copyright information
 Lukas Fleischer
2014-01-08-1/+1f7f26f8
| | | | | | | | | * Name "cgit Development Team" as copyright holder to avoid listing every single developer. * Update copyright ranges. Signed-off-by: Lukas Fleischer <cgit@crytocrack.de>
* Allow for creating raw diffs with cgit_print_diff()
 Lukas Fleischer
2013-08-16-1/+19003cc1
| | | | | | | This adds a parameter to cgit_print_diff() to create raw diffs, using the same format as `git diff <commit>`. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* Do not load user or system gitconfig and gitattributes
 Jason A. Donenfeld
2013-04-08-1/+08a92df0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While doing any kind of git loading, unset HOME variables and set NOSYSTEM variables so that cgit does not load any settings that a user may have set for his own /usr/bin/git usage. This fixes a fatal error introduced with git 1.8, whereupon git would fatally exit when failing to access particular files. The result of this is that only repo-local configuration files are accessed: zx2c4@thinkpad ~/Projects/cgit $ HOME=/root QUERY_STRING="url=foo/log" CGIT_CONFIG=tests/trash/cgitrc strace -e access ./cgit >/dev/null access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) access("repos/foo/.git/objects", X_OK) = 0 access("repos/foo/.git/refs", X_OK) = 0 access("repos/foo/.git/config", R_OK) = 0 access("repos/foo/.git/config", R_OK) = 0 access("repos/foo/.git/objects/b3/bafdbf0183f4897ef8b1319cb8c490ed54717e", F_OK) = 0 access("repos/foo/.git/objects/b3/bafdbf0183f4897ef8b1319cb8c490ed54717e", F_OK) = 0 access("repos/foo/.git/objects/b3/bafdbf0183f4897ef8b1319cb8c490ed54717e", F_OK) = 0 access("repos/foo/.git/objects/b3/bafdbf0183f4897ef8b1319cb8c490ed54717e", F_OK) = 0 +++ exited with 0 +++ Reported-by: Ferry Huberts <ferry.huberts@pelagic.nl> Tested-by: Jason A. Donenfeld <Jason@zx2c4.com> Tested-by: Ferry Huberts <ferry.huberts@pelagic.nl> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* Convert cgit_print_error to a variadic function
 John Keeping
2013-04-08-2/+2ed5bd30
| | | | | | | | | This removes many uses of "fmt" which uses a fixed size static pool of fixed size buffers. Instead of relying on these, we now pass around argument lists for as long as possible before using a strbuf to render content of an arbitrary size. Signed-off-by: John Keeping <john@keeping.me.uk>
* Always #include corresponding .h in .c files
 John Keeping
2013-04-08-0/+18f20879
| | | | | | | | | | | | While doing this, remove declarations from header files where the corresponding definition is declared "static" in order to avoid build errors. Also re-order existing headers in ui-*.c so that the file-specific header always comes immediately after "cgit.h", helping with future consistency. Signed-off-by: John Keeping <john@keeping.me.uk>
* Update git to v1.8.2.1
 John Keeping
2013-04-08-1/+2849ecd9
| | | | | | | | | | | This requires a small change to how we handle notes, but otherwise just works. Note that we can't use anything from v1.8.0 until v1.8.2.1 because some of the symbols that we need for graph drawing were made private in v1.8.0 and this was not reverted until v1.8.2.1. Signed-off-by: John Keeping <john@keeping.me.uk>
* cgit_print_commit(): Free tmp variable
 Lukas Fleischer
2013-03-04-0/+1bc2f5a6
| | | | | | | | | | | | | | | | Fixes following memory leak seen with "PATH_INFO=/cgit/commit/": ==16894== 7 bytes in 1 blocks are definitely lost in loss record 4 of 92 ==16894== at 0x4C2C04B: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==16894== by 0x56F2DF1: strdup (in /usr/lib/libc-2.17.so) ==16894== by 0x46CAC8: xstrdup (wrapper.c:35) ==16894== by 0x40CD6F: cgit_print_commit (ui-commit.c:70) ==16894== by 0x407B06: commit_fn (cmd.c:54) ==16894== by 0x405E16: process_request (cgit.c:574) ==16894== by 0x4074C8: cache_process (cache.c:322) ==16894== by 0x406C4F: main (cgit.c:872) Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* Fix several whitespace errors
 Lukas Fleischer
2013-03-04-2/+253bc747
| | | | | | | | | | * Remove whitespace at the end of lines. * Replace space indentation by tabs. * Add whitespace before/after several operators ("+", "-", "*", ...) * Add whitespace to assignments ("foo = bar;"). * Fix whitespace in parameter lists ("foobar(foo, bar, 42)"). Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* cgit.c: always setup cgit repo environment variables
 Lars Hjemli
2011-06-13-3/+33ec6b30
| | | | | | | | | | | | When cgit learned to setup environment variables for certain repo settings before invoking a filter process, the setup occurred inside cgit_open_filter(). This patch moves the setup out of cgit_open_filter() and into prepare_repo_cmd() to prepare for additional uses of these variables. Reviewed-by: Ferry Huberts <mailings@hupie.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Merge branch 'lh/panel'
 Lars Hjemli
2011-05-23-7/+32ffeecb
|\
| * ui-diff.c: create a control panel for diff options
 Lars Hjemli
2011-03-06-7/+3962a248
| | | | | | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | cgit_open_filter: also take the repo as a parameter
 Ferry Huberts
2011-03-26-3/+3d87bba8
|/ | | | | | | | To prepare for handing repo configuration to the filter script that is executed. Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Use GIT-1.7.2.2
 Lars Hjemli
2010-08-22-1/+16d7552b
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-commit: Display git notes when present
 Jeff Smith
2010-08-04-0/+15059b393
| | | | | Signed-off-by: Jeff Smith <whydoubt@yahoo.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Merge branch 'jh/path-limit'
 Lars Hjemli
2010-06-22-8/+1237a24e4
|\ | | | | | | | | | | Conflicts: cgit.h ui-commit.c
| * ui-commit: Preserve path limit in links to commit page
 Johan Herland
2010-06-19-4/+5685872b
| | | | | | | | | | | | | | | | | | | | | | This includes adding a path argument to cgit_commit_link() and updating all its callers. The callers from within the commit page (i.e. the "commit", "unidiff"/"side-by-side diff" and "parent" links) all preserve the path limit of the current commit page. All other callers pass NULL (i.e. no path limit). Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * ui-commit: Preserve path limit in links to tree and diff pages
 Johan Herland
2010-06-19-1/+534c2331
| | | | | | | | | | | | | | | | For tree links, the original link is unchanged, but in the case of a path limit, a subtree link is added to the right of the original tree link. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * ui-patch: Apply path limit to generated patch
 Johan Herland
2010-06-19-1/+1eac1b67
| | | | | | | | | | | | | | | | Also indicate in the comment section of the patch that a path limit was applied, too easily see when a generated patch is only partial. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| * ui-commit: Limit diff based on path limit in qry.path
 Johan Herland
2010-06-19-2/+2ab42741
| | | | | | | | | | Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Optionally generate verbose parent links
 Lars Hjemli
2010-02-27-5/+7581a0c2
| | | | | | | | | | | | | | 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>
* | display subject instead of sha1 as link title of parents
 Stefan Naewe
2010-02-27-3/+5e15842a
|/ | | | | Signed-off-by: Stefan Naewe <stefan.naewe@atlas-elektronik.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add possibility to switch between unidiff and side-by-side-diff.
 Ragnar Ouchterlony
2009-09-16-3/+8c358aa3
| | | | | | | | | | | | | | | | 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>
* Use GIT-1.6.4.3
 Lars Hjemli
2009-09-13-1/+145c49d6
| | | | Signed-off-by: Lars Hjemli <larsh@slackbox.hjemli.net>
* Merge branch 'lh/plugins'
 Lars Hjemli
2009-08-09-0/+8db6303b
|\ | | | | | | | | | | Conflicts: cgit.c cgit.h
| * Add support for repo.commit-filter and repo.source-filter
 Lars Hjemli
2009-08-09-8/+8e976df2
| | | | | | | | | | | | | | 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' option
 Lars Hjemli
2009-07-31-0/+8f35db1c
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Introduce noplainemail option to hide email adresses from spambots
 Martin Szulecki
2009-08-08-4/+82f56e39
|/ | | | Signed-off-by: Martin Szulecki <opensuse@sukimashita.com>
* Add decorations to commit pages
 Justin Waters
2009-01-27-0/+40027e38
| | | | | | | This adds the tag and branch head decorations to the commit pages. This is similar to how commits are displayed in the standard gitweb interface. Signed-off-by: Justin Waters <justin.waters@timesys.com>
* Added `local-time` option to cgitrc
 Stefan Naewe
2008-08-01-2/+20f0ab14
| | | | | | | | | When `local-time` is set, commit, tag and patch timestamps will be printed in the servers timezone. Also, regardless of the value of `local-time`, these timestamps will now always show the timezone. Signed-off-by: Stefan Naewe <stefan.naewe@atlas-elektronik.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-commit: handle root commits
 Lars Hjemli
2008-05-18-3/+7502d575
| | | | | | | | | Both cgit_print_diff() and cgit_diff_tree() handles root commits nicely, but cgit_print_commit() forgot to check the case of 0 parents. This fixes it, and adds tests to avoid future regressions. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Integrate diffstat with diff
 Lars Hjemli
2008-04-24-142/+4fe1230d
| | | | | | | | This creates a generic diffstat function in ui-diff, which then is invoked from cgit_print_diff with the result that both commit and diff- view gets a diffstat. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Fix commitdiff annoyance
 Lars Hjemli
2008-04-17-1/+19ec5cd7
| | | | | | | | | Someone were a bit sloppy when the commitdiff got included 'inline' in commit 89aa3c0d0a4c6d9885272602005975b763ea1604. This patch deletes a stray `)` and makes sure the diffstat summary `<div>` is closed before the full diff is printed. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Remove 'patch' link from tab, add to commit view
 Lars Hjemli
2008-04-13-0/+639912a2
| | | | | | | | | | It's a bit confusing to enter the patch view from the tab, since it has no layout. And the commit view has always lacked showing the commit id. Both of these warts are fixed by this commit, which adds a new header line in the commit view which shows the commit id as a 'permalink' to the current commit and also adds a link to the patch view of the current commit. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Include diff in commit view
 Lars Hjemli
2008-04-12-3/+589aa3c0
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add ui-shared.h
 Lars Hjemli
2008-03-24-0/+1a4d1ca1
| | | | | | | This is finally a proper headerfile for the shared ui-functions which used to reside in cgit.h Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Introduce html.h
 Lars Hjemli
2008-03-18-3/+4b1f9b9c
| | | | | | | | 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_context
 Lars Hjemli
2008-02-16-2/+2d1f3bbe
| | | | | | | | 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>
* Introduce struct cgit_context
 Lars Hjemli
2008-02-16-7/+7d14d77f
| | | | | | | | | 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>
* Fix html error detected by test-suite
 Lars Hjemli
2007-11-11-3/+32915483
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-commit.c: link to diff instead of tree from diffstat
 Lars Hjemli
2007-10-01-2/+20ec8791
| | | | | | This makes each entry in the diffstat link to a path-restricted diff. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* cgit_print_snapshot_links: use url to specify snapshot name
 Lars Hjemli
2007-07-23-1/+2eb45342
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* allow selective enabling of snapshots
 Michael Krelin
2007-07-21-1/+1dc3c9b5
| | | | | | | | 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>
* add support for snapshot tarballs
 Michael Krelin
2007-07-18-6/+3f97c707
| | | | | | | - reworked cgit_print_snapshot to use a list of supported archivers and pick one for the suffix supplied - moved printing of snaphot links into ui-snapshot and make it iterate through the said list
* Add cgit_diff_link()
 Lars Hjemli
2007-06-17-30/+164a0be58
| | | | | | | | | | | | | | | | | | This adds a new function used to generate links to the diff page and uses it everywhere such links appear (expect for single files in the diffstat displayed on the commit page: this is now a link to the tree page). The updated diff-page now expects zero, one or two revision specifiers, in parameters head, id and id2. Id defaults to head unless otherwise specified, while head (as usual) defaults to repo.defbranch. If id2 isn't specified, it defaults to the first parent of id1. The most important change is of course that now all repo pages (summary, log, tree, commit and diff) has support for passing on the current branch and revision, i.e. the road is now open for a 'static' menu with links to all of these pages. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* ui-commit: use cgit_commit_link() for parent links
 Lars Hjemli
2007-06-17-6/+4faaca44
| | | | | | | | This replaces the old cgit_pageurl() function with the brand new cgit_commit_link() function, making parent links in commit view preserve the current branch. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add cgit_commit_link() + support for id=sha1 to commit view
 Lars Hjemli
2007-06-17-0/+342a7eb9
| | | | | | | | This adds a function to generate links to the commit page and extends said page to use id from querystring as primary revision specified (fallback to h). Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add and use cgit_tree_link()
 Lars Hjemli
2007-06-17-4/+644947bf
| | | | | | | This creates a new function used to generate links to 'tree' page and uses the function everywhere a link to the 'tree' page is generated. Signed-off-by: Lars Hjemli <hjemli@gmail.com>