aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2017-10-03html: html_ntxt with no ellipsisJeff Smith3-23/+14
For implementing a ui-blame page, there is need for a function that outputs a selection from a block of text, transformed for HTML output, but with no further modifications or additions. Signed-off-by: Jeff Smith <whydoubt@gmail.com> Reviewed-by: John Keeping <john@keeping.me.uk>
2017-10-03cache: flush stdio before restoring FDsJohn Keeping2-2/+6
As described in commit 2efb59e (ui-patch: Flush stdout after outputting data, 2014-06-11), we need to ensure that stdout is flushed before restoring the file descriptor when writing to the cache. It turns out that it's not just ui-patch that is affected by this but also raw diff which writes to stdout internally. Let's avoid risking more places doing this by ensuring that stdout is flushed after writing in fill_slot(). Signed-off-by: John Keeping <john@keeping.me.uk>
2017-09-22Use https for submoduleDaniel M. Weeks1-1/+1
The git protocol provides no transport security. https does provide transport security and should be preferred by default. https is also more likely than git to be permitted by firewalls in restricted environments. Signed-off-by: Daniel M. Weeks <dan@danweeks.net>
2017-08-10ui-plain: print symlink contentJohn Keeping1-1/+1
We currently ignore symlinks in ui-plain, leading to a 404. In ui-tree we print the content of the blob (that is, the path to the target of the link), so it makes sense to do the same here. Signed-off-by: John Keeping <john@keeping.me.uk>
2017-08-10cgit: don't set vpath unless repo is setJohn Keeping1-6/+6
After the previous two patches, this can be classified as a tidy up rather than a bug fix, but I think it makes sense to group all of the tests together before setting up the environment for the command to execute. Signed-off-by: John Keeping <john@keeping.me.uk>
2017-08-10parsing: clear query path before startingJohn Keeping1-1/+1
By specifying the "url" query parameter multiple times it is possible to end up with ctx.qry.vpath set while ctx.repo is null, which triggers an invalid code path from cgit_print_pageheader() while printing path crumbs, resulting in a null dereference. The previous patch fixed this segfault, but it makes no sense for us to clear ctx.repo while leaving ctx.qry.path set to the previous value, so let's just clear it here so that the last "url" parameter given takes full effect rather than partially overriding the effect of the previous value. Signed-off-by: John Keeping <john@keeping.me.uk>
2017-08-10ui-shared: don't print path crumbs without a repoJohn Keeping1-1/+1
cgit_print_path_crumbs() can call repolink() which assumes that ctx.repo is non-null. Currently we don't have any commands that set want_vpath without also setting want_repo so it shouldn't be possible to fail this test, but the check in cgit.c is in the wrong order so it is possible to specify a query string like "?p=log&path=foo/bar" to end up here without a valid repository. This was found by American fuzzy lop [0]. [0] http://lcamtuf.coredump.cx/afl/ Signed-off-by: John Keeping <john@keeping.me.uk>
2017-08-10ui-atom: properly escape delimiter in page linkJohn Keeping1-1/+1
If the delimiter here is '&' then it needs to be escaped for inclusion in an attribute. Use html_attrf() to ensure that this happens (we know that hex won't need escaping, but this makes it clearer what's happening. Signed-off-by: John Keeping <john@keeping.me.uk>
2017-08-10git: update to v2.14Jeff Smith14-42/+43
Numerous changes were made to git functions to use an object_id structure rather than sending sha1 hashes as raw unsigned character arrays. The functions that affect cgit are: parse_object, lookup_commit_reference, lookup_tag, lookup_tree, parse_tree_indirect, diff_root_tree_sha1, diff_tree_sha1, and format_display_notes. Commit b2141fc (config: don't include config.h by default) made it necessary to that config.h be explicitly included when needed. Commit 07a3d41 (grep: remove regflags from the public grep_opt API) removed one way of specifying the ignore-case grep option. Signed-off-by: Jeff Smith <whydoubt@gmail.com>
2017-08-10git: update to v2.13.4Christian Hesse4-5/+10
Update to git version v2.13.4: With commit 8aee769f (pathspec: copy and free owned memory) the definition of struct pathspec_item has changed with the expectation that pathspecs will be managed dynamically. We work around this a bit by setting up a static structure, but let's allocate the match string to avoid needing to cast away const. Updated a patch from John Keeping <john@keeping.me.uk> for git v2.12.1.
2017-07-27Update .mailmap with my new email addressLukas Fleischer1-2/+2
Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>
2017-04-05Remove unused variable from sort_section()Lukas Fleischer1-1/+0
Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>
2017-03-30ui-repolist: properly sort by ageJason A. Donenfeld1-21/+17
When empty repos exist, comparing them against an existing repo with a good mtime might, with particular qsort implementations, not sort correctly, because of this brokenness: if (get_repo_modtime(r1, &t) && get_repo_modtime(r2, &t)) However, sorting by the age column works as expected, so anyway, to tidy things up, we simply reuse that function. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2017-01-23ui-patch: fix crash when using path limitLukas Fleischer1-4/+3
The array passed to setup_revisions() must be NULL-terminated. Fixes a regression introduced in 455b598 (ui-patch.c: Use log_tree_commit() to generate diffs, 2013-08-20). Reported-by: Florian Pritz <bluewind@xinu.at> Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>
2017-01-22syntax-highlighting: replace invalid unicode with ?Jason A. Donenfeld1-2/+2
2016-11-30git: update to v2.11.0Christian Hesse3-2/+2
Update to git version v2.11.0. Function write_archive() dropped argument (int setup_prefix).
2016-11-25Link with -ldl on GNU HurdPeter Colberg1-1/+1
Debian GNU/Hurd uses the GNU C library. Signed-off-by: Peter Colberg <peter@colberg.org>
2016-11-24git: update to v2.10.2 againJohn Keeping1-0/+0
The submodule was accidentally downgraded in commit 8e9ddd21 (Bump version, 2016-11-23). Restore v2.10.2 so it matches the makefile again. Signed-off-by: John Keeping <john@keeping.me.uk>
2016-11-23Bump version.v1.1Jason A. Donenfeld2-1/+1
2016-11-23css: highlight even table rows and skip empty rowsChristian Hesse3-3/+24
This is stolen from kernel.org css [0]. [0] https://git.kernel.org/cgit-korg-0.10.1.css
2016-11-06git: update to v2.10.2Christian Hesse2-1/+1
Update to git version v2.10.2, no changes required.
2016-10-12ui-blog: fix oid handlingChristian Hesse1-5/+5
We have to use a pointer for walk_tree_ctx->matched_oid. This fixes faulty commit 6e4b7b6776eb994e795fa38b2619db6c55e10ecc (ui-blob: replace 'unsigned char sha1[20]' with 'struct object_id oid').
2016-10-12shared: remove unused function strlpart()Christian Hesse2-17/+0
2016-10-12shared: remove unused function strrpart()Christian Hesse2-16/+0
2016-10-12ui-repolist: fix memory leakChristian Hesse1-1/+3
2016-10-12Use skip_prefix() to get rid of magic constantsLukas Fleischer2-28/+34
Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>
2016-10-12patch: reapply path limitJohn Keeping1-2/+8
This was originally applied added in commit eac1b67 (ui-patch: Apply path limit to generated patch, 2010-06-10) but the ability to limit patches to particular paths was lost in commit 455b598 (ui-patch.c: Use log_tree_commit() to generate diffs, 2013-08-20). The new output is slightly different from the original because Git's diff infrastructure doesn't give us a way to insert an annotation immediately after the "---" separator, so the commit has moved below the diff stat. Signed-off-by: John Keeping <john@keeping.me.uk>
2016-10-07ui-repolist: fix memory leakChristian Hesse1-1/+4
2016-10-04git: update to v2.10.1Christian Hesse2-1/+1
Update to git version v2.10.1, no changes required.
2016-10-04ui-tree: replace 'unsigned char sha1[20]' with 'struct object_id oid'Christian Hesse1-3/+3
Upstream git is replacing 'unsigned char sha1[20]' with 'struct object_id oid'. We have some code that can be changed independent from upstream. So here we go...
2016-10-04ui-tag: replace 'unsigned char sha1[20]' with 'struct object_id oid'Christian Hesse1-6/+6
Upstream git is replacing 'unsigned char sha1[20]' with 'struct object_id oid'. We have some code that can be changed independent from upstream. So here we go...
2016-10-04ui-snapshot: replace 'unsigned char sha1[20]' with 'struct object_id oid'Christian Hesse1-9/+9
Upstream git is replacing 'unsigned char sha1[20]' with 'struct object_id oid'. We have some code that can be changed independent from upstream. So here we go...
2016-10-04ui-shared: replace 'unsigned char sha1[20]' with 'struct object_id oid'Christian Hesse1-5/+5
Upstream git is replacing 'unsigned char sha1[20]' with 'struct object_id oid'. We have some code that can be changed independent from upstream. So here we go...
2016-10-04ui-plain: replace 'unsigned char sha1[20]' with 'struct object_id oid'Christian Hesse1-3/+3
Upstream git is replacing 'unsigned char sha1[20]' with 'struct object_id oid'. We have some code that can be changed independent from upstream. So here we go...
2016-10-04ui-patch: replace 'unsigned char sha1[20]' with 'struct object_id oid'Christian Hesse1-11/+11
Upstream git is replacing 'unsigned char sha1[20]' with 'struct object_id oid'. We have some code that can be changed independent from upstream. So here we go...
2016-10-04ui-log: replace get_sha1() with get_oid()Christian Hesse1-1/+1
Data structures have been replaced already, so use correct function calls.
2016-10-04ui-commit: replace 'unsigned char sha1[20]' with 'struct object_id oid'Christian Hesse1-4/+4
Upstream git is replacing 'unsigned char sha1[20]' with 'struct object_id oid'. We have some code that can be changed independent from upstream. So here we go...
2016-10-04ui-blob: replace 'unsigned char sha1[20]' with 'struct object_id oid'Christian Hesse1-22/+22
Upstream git is replacing 'unsigned char sha1[20]' with 'struct object_id oid'. We have some code that can be changed independent from upstream. So here we go... In addition replace memmove() with hashcpy().
2016-10-04cgit: replace 'unsigned char sha1[20]' with 'struct object_id oid'Christian Hesse1-4/+5
Upstream git is replacing 'unsigned char sha1[20]' with 'struct object_id oid'. We have some code that can be changed independent from upstream. So here we go...
2016-10-01Makefile: remove extra spaceJason A. Donenfeld1-1/+1
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2016-10-01Simplify http_parse_querystring()Lukas Fleischer2-57/+11
Instead of reimplementing URL parameter parsing from scratch, use url_decode_parameter_name() and url_decode_parameter_value() which are already provided by Git. Also, change the return type of http_parse_querystring() to void since its only caller already ignores the return value. Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>
2016-10-01ui-tree: remove a fixed size bufferJohn Keeping1-6/+9
As libgit.a moves away from using fixed size buffers, there is no guarantee that PATH_MAX is sufficient for all of the paths in a Git tree, so we should use a dynamically sized buffer here. Coverity-Id: 141884 Signed-off-by: John Keeping <john@keeping.me.uk>
2016-10-01ui-tag: clean up taginfoJohn Keeping1-2/+4
Free the taginfo when we're done with it. Also reduce the scope of a couple of variables so that it's clear that this is the only path that uses the taginfo structure. Coverity-Id: 141883 Signed-off-by: John Keeping <john@keeping.me.uk>
2016-10-01shared: make cgit_free_taginfo() publicJohn Keeping2-1/+2
We will use this function from ui-tag.c in the next patch. Signed-off-by: John Keeping <john@keeping.me.uk>
2016-10-01shared: remove return value from cgit_free_commitinfo()John Keeping2-3/+2
This return value is never used and the function always returns NULL. Signed-off-by: John Keeping <john@keeping.me.uk>
2016-10-01tree: allow skipping through single-child treesJohn Keeping1-2/+68
If we have only a single element in a directory (for example in Java package paths), display multiple directories in one go so that it is possible to navigate directly to the first directory that contains either files or multiple directories. Signed-off-by: John Keeping <john@keeping.me.uk>
2016-10-01ui-ssdiff: fix decl-after-statement warningsJohn Keeping1-2/+2
git.git's coding style avoids decl-after-statement and we generally try to follow it but a few warnings have crept in recently. Fix the one in ui-ssdiff.c Signed-off-by: John Keeping <john@keeping.me.uk>
2016-10-01ui-shared: fix decl-after-statement warningsJohn Keeping1-5/+7
git.git's coding style avoids decl-after-statement and we generally try to follow it but a few warnings have crept in recently. Fix the ones in ui-shared.c Signed-off-by: John Keeping <john@keeping.me.uk>
2016-10-01configfile: fix EOF handlingJohn Keeping1-1/+3
Currently we can end up passing EOF to isspace(), which is in fact libgit's sane_isspace which does: ((sane_ctype[(unsigned char)(x)] & (GIT_SPACE)) != 0) It is very unlikely that EOF cast to "unsigned char" will end up in a character that has the GIT_SPACE bit set, but the standard only requires that EOF be a negative integer, so it could access any value in the sane_ctype array. If it does end up returning true for isspace() then this loop will never terminate, so handle EOF as a special value in the same way as the other loops in this function. Signed-off-by: John Keeping <john@keeping.me.uk>
2016-09-04git: update to v2.10.0Christian Hesse9-62/+62
Upstream continues to replace unsigned char *sha1 with struct object_id old_oid. This makes the required changes. The git lib has its own main function now. Rename our main function to cmd_main, it is called from main then.