author | Lars Hjemli <hjemli@gmail.com> | 2008-10-05 11:13:03 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2008-10-05 11:13:03 (UTC) |
commit | 204669ff4a4028a82cc48e9319632595ba3ff703 (patch) (unidiff) | |
tree | b951f29e966e13fb62f9edfdf51cbdfb19e9c868 | |
parent | f82b19407dd876e6c02a572615bf34b09f6fa831 (diff) | |
download | cgit-204669ff4a4028a82cc48e9319632595ba3ff703.zip cgit-204669ff4a4028a82cc48e9319632595ba3ff703.tar.gz cgit-204669ff4a4028a82cc48e9319632595ba3ff703.tar.bz2 |
ui-snapshot.c: specify archiver_args.baselen
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>
-rwxr-xr-x | tests/t0107-snapshot.sh | 5 | ||||
-rw-r--r-- | ui-snapshot.c | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/tests/t0107-snapshot.sh b/tests/t0107-snapshot.sh index 8e90e10..d97c465 100755 --- a/tests/t0107-snapshot.sh +++ b/tests/t0107-snapshot.sh | |||
@@ -16,17 +16,20 @@ run_test 'check html headers' ' | |||
16 | grep -e "Content-Disposition: inline; filename=.test.tar.gz." | 16 | grep -e "Content-Disposition: inline; filename=.test.tar.gz." |
17 | ' | 17 | ' |
18 | 18 | ||
19 | run_test 'strip off the header lines' ' | 19 | run_test 'strip off the header lines' ' |
20 | tail -n +6 trash/tmp > trash/test.tar.gz | 20 | tail -n +6 trash/tmp > trash/test.tar.gz |
21 | ' | 21 | ' |
22 | 22 | ||
23 | run_test 'verify gzip format' 'gunzip --test trash/test.tar.gz' | 23 | run_test 'verify gzip format' 'gunzip --test trash/test.tar.gz' |
24 | run_test 'untar' 'tar -xf trash/test.tar.gz -C trash' | 24 | run_test 'untar' ' |
25 | rm -rf trash/foo && | ||
26 | tar -xf trash/test.tar.gz -C trash | ||
27 | ' | ||
25 | 28 | ||
26 | run_test 'count files' ' | 29 | run_test 'count files' ' |
27 | c=$(ls -1 trash/foo/ | wc -l) && | 30 | c=$(ls -1 trash/foo/ | wc -l) && |
28 | test $c = 5 | 31 | test $c = 5 |
29 | ' | 32 | ' |
30 | 33 | ||
31 | run_test 'verify untarred file-5' ' | 34 | run_test 'verify untarred file-5' ' |
32 | grep -e "^5$" trash/foo/file-5 && | 35 | grep -e "^5$" trash/foo/file-5 && |
diff --git a/ui-snapshot.c b/ui-snapshot.c index 966a140..7a597ff 100644 --- a/ui-snapshot.c +++ b/ui-snapshot.c | |||
@@ -77,17 +77,23 @@ static int make_snapshot(const struct cgit_snapshot_format *format, | |||
77 | return 1; | 77 | return 1; |
78 | } | 78 | } |
79 | commit = lookup_commit_reference(sha1); | 79 | commit = lookup_commit_reference(sha1); |
80 | if(!commit) { | 80 | if(!commit) { |
81 | cgit_print_error(fmt("Not a commit reference: %s", hex)); | 81 | cgit_print_error(fmt("Not a commit reference: %s", hex)); |
82 | return 1; | 82 | return 1; |
83 | } | 83 | } |
84 | memset(&args, 0, sizeof(args)); | 84 | memset(&args, 0, sizeof(args)); |
85 | args.base = fmt("%s/", prefix); | 85 | if (prefix) { |
86 | args.base = fmt("%s/", prefix); | ||
87 | args.baselen = strlen(prefix) + 1; | ||
88 | } else { | ||
89 | args.base = ""; | ||
90 | args.baselen = 0; | ||
91 | } | ||
86 | args.tree = commit->tree; | 92 | args.tree = commit->tree; |
87 | args.time = commit->date; | 93 | args.time = commit->date; |
88 | ctx.page.mimetype = xstrdup(format->mimetype); | 94 | ctx.page.mimetype = xstrdup(format->mimetype); |
89 | ctx.page.filename = xstrdup(filename); | 95 | ctx.page.filename = xstrdup(filename); |
90 | cgit_print_http_headers(&ctx); | 96 | cgit_print_http_headers(&ctx); |
91 | format->write_func(&args); | 97 | format->write_func(&args); |
92 | return 0; | 98 | return 0; |
93 | } | 99 | } |