Since cgit linked with git-1.6.0 all zip archives has been uncompressed.
This patch fixes the issue by specifying Z_DEFAULT_COMPRESSION.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This patch sets the directory prefix in archives to be the filename,
excluding the suffix (.tar.gz, .tar.bz2 etc).
The patch also removes the prefix parameter in cgit_print_snapshot()
as the prefix might differ.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
When downloading a snapshot, the snapshot name will often contain the repo
name combined with a tag. This patch tries to exploit this so that the
correct revision is downloaded even if no specific revision is specified.
PS: this only occurs if neither 'h' nor 'id' is specified in the query-
string.
PPS: this also fixes a bug which occurs when trying to download a filename
with an unsupported suffix: it used to try to print an error message to
the user but failed since it didn't prepare the output properly.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
The struct member was introduces in git commit d53fe8187c38, but the cgit
testsuite failed to detect that cgit always generated archives without
prefixes, i.e. the result from cgit_repobasename was ignored.
This fixes the bug and the testsuite.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
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>
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>
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>
We used to rely on the result from strncmp() without comparing the length of
the strings involved. Even worse, any single-character format specifier would
enable zip-format due to the optional '.'-prefix since the length of the
mask then would become zero.
Noticed-by: Evan Martin <sys@neugierig.org>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
The testsuite revealed that cgit snapshots don't set any useful timestamp on
the files contained in the snapshot.
Cherry-picked-from: 2ff33a8a0405b420cd75e0e207c7efeecd6f130b
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Introduce a #define for number of snapshot archive entries, move all decls
to function entrypoint, remove some trailing whitespace and reformat a few
lines.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
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>
- changed cgit_pageurl into cgit_fileurl with the filename parameter
- rewritten cgit_pageurl as a wrapper around cgit_fileurl
Signed-off-by: Michael Krelin <hacker@klever.net>
- reworked write_tar_gzip_archive to handle arbitrary filter as a
write_compressed_tar_archive
- reformatted whitespaces in the said function to adhere to common cgit
standards
- added wrappers around write_compressed_tar_archive for .tar.gz and .tar.bz2
- added a hint for vim to use 8 characters shift width by default
Signed-off-by: Michael Krelin <hacker@klever.net>
- 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
Make a link from the commit viewer to a snapshot of the corresponding tree.
Currently only zip-format is supported.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>