cgit

commit 204669ff4a4028a82cc48e9319632595ba3ff703

Author: Lars Hjemli <hjemli@gmail.com>

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>

 tests/t0107-snapshot.sh | 5 ++++-
 ui-snapshot.c | 8 +++++++-


diff --git a/tests/t0107-snapshot.sh b/tests/t0107-snapshot.sh
index 8e90e10508e70df4c1d60ec53e21b91e3e647607..d97c4655b166e167dfc3e8e652708337a83d8f13 100755
--- a/tests/t0107-snapshot.sh
+++ b/tests/t0107-snapshot.sh
@@ -21,7 +21,10 @@ 	 tail -n +6 trash/tmp > trash/test.tar.gz
 '
 
 run_test 'verify gzip format' 'gunzip --test trash/test.tar.gz'
-run_test 'untar' 'tar -xf trash/test.tar.gz -C trash'
+run_test 'untar' '
+	rm -rf trash/foo &&
+	tar -xf trash/test.tar.gz -C trash
+'
 
 run_test 'count files' '
 	c=$(ls -1 trash/foo/ | wc -l) &&




diff --git a/ui-snapshot.c b/ui-snapshot.c
index 966a14007414f35d0e04f862a593c93ba26421b5..7a597ff00879a76adab38ed351c2f3dadc7ed4a0 100644
--- a/ui-snapshot.c
+++ b/ui-snapshot.c
@@ -82,7 +82,13 @@ 		cgit_print_error(fmt("Not a commit reference: %s", hex));
 		return 1;
 	}
 	memset(&args, 0, sizeof(args));
-	args.base = fmt("%s/", prefix);
+	if (prefix) {
+		args.base = fmt("%s/", prefix);
+		args.baselen = strlen(prefix) + 1;
+	} else {
+		args.base = "";
+		args.baselen = 0;
+	}
 	args.tree = commit->tree;
 	args.time = commit->date;
 	ctx.page.mimetype = xstrdup(format->mimetype);