summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* ui-shared: URL-escape script_nameJohn Keeping2014-01-12
| | | | | | | | As far as I know, there is no requirement that $SCRIPT_NAME contain only URL-safe characters, so we need to make sure that any special characters are escaped. Signed-off-by: John Keeping <john@keeping.me.uk>
* ui-refs: escape HTML chars in author and tagger namesJohn Keeping2014-01-12
| | | | | | | Everywhere else we use html_txt to escape any special characters in these variables. Do so here as well. Signed-off-by: John Keeping <john@keeping.me.uk>
* filter: pass extra arguments via cgit_open_filterJohn Keeping2014-01-12
| | | | | | | | | This avoids poking into the filter data structure at various points in the code. We rely on the fact that the number of arguments is fixed based on the filter type (set in cgit_new_filter) and that the call sites all know which filter type they're using. Signed-off-by: John Keeping <john@keeping.me.uk>
* ui-snapshot: set unused cgit_filter fields to zeroJohn Keeping2014-01-12
| | | | | | | | | By switching the assignment of fields in the cgit_filter structure to use designated initializers, the compiler will initialize all other fields to their default value. This will be needed when we add the extra_args field in the next patch. Signed-off-by: John Keeping <john@keeping.me.uk>
* html: remove redundant htmlfd variableJohn Keeping2014-01-12
| | | | | | | This is never changed from STDOUT_FILENO, so just use that value directly. Signed-off-by: John Keeping <john@keeping.me.uk>
* tests: add Valgrind supportJohn Keeping2014-01-12
| | | | | | | Now running tests with the "--valgrind" option will run cgit under Valgrind instead of all Git commands. Signed-off-by: John Keeping <john@keeping.me.uk>
* cache: don't leave cache_slot fields uninitializedJohn Keeping2014-01-12
| | | | | | | | | | | | | | | | | | | | | | Valgrind says: ==18344== Conditional jump or move depends on uninitialised value(s) ==18344== at 0x406C83: open_slot (cache.c:63) ==18344== by 0x407478: cache_ls (cache.c:403) ==18344== by 0x404C9A: process_request (cgit.c:639) ==18344== by 0x406BD2: fill_slot (cache.c:190) ==18344== by 0x4071A0: cache_process (cache.c:284) ==18344== by 0x404461: main (cgit.c:952) ==18344== Uninitialised value was created by a stack allocation ==18344== at 0x40738B: cache_ls (cache.c:375) This is caused by the keylen field being used to calculate whether or not a slot is matched. We never then check the value of this and the length of data read depends on the key length read from the file so this isn't dangerous, but it's nice to avoid branching based on uninitialized data. Signed-off-by: John Keeping <john@keeping.me.uk>
* filter: split filter functions into their own fileJason A. Donenfeld2014-01-10
| | | | | | A first step for more interesting things. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* filter: make exit status localJason A. Donenfeld2014-01-10
| | | | | | | | It's only used in one place, and not useful to have around since close_filter will die() if exit_status isn't what it expects, anyway. So this is best as just a local variable instead of as part of the struct. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* parsing: fix header typoJason A. Donenfeld2014-01-10
|
* cgit.c: Fix comment on bit mask hackLukas Fleischer2014-01-10
| | | | | | | | | * Formatting and spelling fixes. * A bit mask with the size of one byte only allows for storing 8 (not 255!) different flags. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* cgit.c: Use "else" for mutually exclusive branchesLukas Fleischer2014-01-10
| | | | | | | | When parsing command line arguments, no pair of command line options can ever match simultaneously. Use "else if" blocks to reflect this. This change improves both readability and speed. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* ui-snapshot.c: Do not reinvent suffixcmp()Lukas Fleischer2014-01-10
| | | | | | | Use suffixcmp() from Git instead of reimplementing it. This is a preparation for moving to ends_with() in Git 1.8.6. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* Refactor cgit_parse_snapshots_mask()Lukas Fleischer2014-01-10
| | | | | | | Use Git string lists instead of str{spn,cspn,ncmp}() magic. This significantly improves readability. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* Disallow use of undocumented snapshot delimitersLukas Fleischer2014-01-10
| | | | | | | | | | | | | | | Since the introduction of selective snapshot format configuration in dc3c9b5 (allow selective enabling of snapshots, 2007-07-21), we allowed seven different delimiters for snapshot formats, while the documentation has always been clear about spaces being the only valid delimiter: The value is a space-separated list of zero or more of the values "tar", "tar.gz", "tar.bz2", "tar.xz" and "zip". Supporting the undocumented delimiters makes the code unnecessarily complex. Remove them. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* Replace most uses of strncmp() with prefixcmp()Lukas Fleischer2014-01-10
| | | | | | | This is a preparation for replacing all prefix checks with either strip_prefix() or starts_with() when Git 1.8.6 is released. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* README: Fix dependenciesLukas Fleischer2014-01-09
| | | | | | | | | * Remove the dependency on Git (which can be obtained automatically when building, using either the Git submodule or `make get-git`). * Use proper upstream names of dependencies. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* README: Spelling and formatting fixesLukas Fleischer2014-01-08
| | | | | | | | | * Several small spelling and capitalization fixes. * Use consistent and better-looking formatting that is compatible with AsciiDoc (and partly compatible with RST). Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* Fix UTF-8 with syntax-highlighting.pyPřemysl Janouch2014-01-08
| | | | | | | Previously the script tried to encode output from Pygments with the ASCII codec, which failed. Signed-off-by: Přemysl Janouch <p.janouch@gmail.com>
* Add a suggestion to the manpagePřemysl Janouch2014-01-08
| | | | | | | So that people wishing to use "enable-http-clone" don't have to find out the correct settings on their own. Signed-off-by: Přemysl Janouch <p.janouch@gmail.com>
* Fix the example configurationPřemysl Janouch2014-01-08
| | | | | | "enable-git-clone" doesn't exist, replaced with "enable-http-clone". Signed-off-by: Přemysl Janouch <p.janouch@gmail.com>
* Fix about-formatting.shPřemysl Janouch2014-01-08
| | | | | | dash failed to parse the script. Signed-off-by: Přemysl Janouch <p.janouch@gmail.com>
* Fix some spelling errorsPřemysl Janouch2014-01-08
| | | | Signed-off-by: Přemysl Janouch <p.janouch@gmail.com>
* filters: highlight.sh: add css comments for highlight 2.6 and 3.8Ferry Huberts2014-01-08
| | | | | | v2: add highlight 3.13 as present on Fedora 19 Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
* Add AUTHORS fileLukas Fleischer2014-01-08
| | | | | | | Contains a list of contributors with more than 20 patches, to be updated regularly. Signed-off-by: Lukas Fleischer <cgit@crytocrack.de>
* Update copyright informationLukas Fleischer2014-01-08
| | | | | | | | | * Name "cgit Development Team" as copyright holder to avoid listing every single developer. * Update copyright ranges. Signed-off-by: Lukas Fleischer <cgit@crytocrack.de>
* git: update to 1.8.5Christian Hesse2014-01-08
| | | | | | | Everything works just bumping the version in Makefile and commit hash in submodule. No code changes required. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* Reduce line number bloat, fix hover effectPeter Wu2014-01-08
| | | | | | | | | | | | | | | | | | | | | Currently line numbers look like (for blob view and sdiff respectively): <a class='no' id='n68' name='n68' href='#n68'>68</a> <td class='lineno'><a class='no' href='...#n1' id='n1' name='n1'>1</a></td> name=".." is unnecessary if the id attribute is set (this even applies to IE6), so drop it. (aside, in HTML5, the name attribute is gone.) The line number links can be selected through their parent classes, no need for another class "no", so drop it too. For a file with 2000 lines, this yields a saving of 40% (29% gzipped). While at it, fix the hover effect of line numbers: now the line number get a black background as was intended. Signed-off-by: Peter Wu <lekensteyn@gmail.com> Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* plain: don't append charset for binary MIME typesJohn Keeping2014-01-08
| | | | | | | | | | | | | When outputting the Content-Type HTTP header we print the MIME type and then append "; charset=<charset>" if the charset variable is non-null. We don't want a charset when we have selected "application/octet-stream" or when the user has specified a custom MIME type, since they may have specified their own charset. To avoid this, make sure we set the page's charset to NULL in ui-plain before we generate the HTTP headers. Signed-off-by: John Keeping <john@keeping.me.uk> Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* ui-log.c: Several simplificationsLukas Fleischer2014-01-08
| | | | | | | | * Use argv_array_pushf() for inserting formatted strings. * Remove unneeded static strings. * Replace "if" by "else if" for readability and speed. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* Use argv_array in place of vectorLukas Fleischer2014-01-08
| | | | | | | | | Instead of using our own vector implementation, use argv_array from Git which has been specifically designed for dynamic size argv arrays. Drop vector.h and vector.c which are no longer needed. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* ui-stats.c: Remove unused macroLukas Fleischer2014-01-08
| | | | Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* scan-tree.c: Remove unused macroLukas Fleischer2014-01-08
| | | | | | | This is no longer needed since commit fb3655df (use struct strbuf instead of static buffers, 2013-04-06). Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* ui-shared: Drop filepair_cb_raw() and helperLukas Fleischer2013-09-14
| | | | | | | | Remove filepair_cb_raw() and all related functions. These are no longer needed. We now use Git's internal functions for raw diff formatting everywhere. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* ui-diff: Use diff_tree_sha1() for raw diff formattingLukas Fleischer2013-09-14
| | | | | | | Use Git's internal diff_tree_sha1() function for the /rawdiff/ command instead of trying to recreate this functionality. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* tests/: Add t0110-rawdiff.shLukas Fleischer2013-08-26
| | | | | | This adds some basic tests for the /rawdiff/ command. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* t0108: Add tests for revision rangesLukas Fleischer2013-08-26
| | | | | | Add tests to check whether generating multiple patches at once works. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* t0108: Compare output with git-format-patch(1)Lukas Fleischer2013-08-26
| | | | Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* ui-patch.c: Add additional newline after each patchLukas Fleischer2013-08-26
| | | | | | For consistency with git-format-patch(1). Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* ui-patch.c: Fix signature delimiterLukas Fleischer2013-08-26
| | | | | | | Add a missing space after the "--" marker that introduces the patch signature. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* t0108: Avoid unnecessary fork()Lukas Fleischer2013-08-26
| | | | | | | Use `git rev-list --max-parents=0 HEAD` instead of `git rev-list HEAD | tail -1` to get the root commit. This works since Git 1.7.4.2. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* git: update to 1.8.4John Keeping2013-08-26
| | | | | | No code changes required, just bump the submodule and makefile versions. Signed-off-by: John Keeping <john@keeping.me.uk>
* ui-patch.c: Fix formatting for merge commitsLukas Fleischer2013-08-22
| | | | | | | Add max_parents = 1 to the revision walk in order to make sure we do not include the footer signature twice for merge commits. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* ui-patch: Rename variablesLukas Fleischer2013-08-20
| | | | | | | Rename parameters and local variables to match those from ui-diff. Also, convert a "char *" to "const char *". Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* Allow for creating patch seriesLukas Fleischer2013-08-20
| | | | | | | | | This allows for specifying a revision range using the id2 parameter of /patch/. The output that is produced is similar to $ git format-patch --stdout id2..id Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* ui-patch.c: Use log_tree_commit() to generate diffsLukas Fleischer2013-08-20
| | | | | | | | | Instead of using our own formatting, use log_tree_commit() from Git to create patches. This removes unnecessary duplicate code and also fixes a bug with e-mail address formatting that existed in our own implementation. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* ui-diff: Check the return value of get_sha1()Lukas Fleischer2013-08-20
| | | | | | | | | Sync with what we do everywhere else and check the return value of get_sha1() instead of calling sha1_object_info() to validate the object. Note that we later call lookup_commit_reference(), which checks that both SHA1 values refer to commits, anyway. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* cmd.c: Add a "rawdiff" commandLukas Fleischer2013-08-16
| | | | | | | | | This can be used to generate raw diffs between arbitrary revisions using something like /rawdiff/?id=v0.9&id2=v0.9.1 Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
* Allow for creating raw diffs with cgit_print_diff()Lukas Fleischer2013-08-16
| | | | | | | 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>
* Extract filepair_cb from ui-patch.cLukas Fleischer2013-08-16
| | | | | | | | | | | Move filepair_cb() from ui-patch.c to ui-shared.c and rename it to filepair_cb_raw(). This callback will be used in ui-diff.c in a follow-up patch. Note that it is not straightforward to extract filepair_cb() from ui-diff.c which is why it is not done here as well. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>