]> gitweb.ps.run Git - ps-cgit/commitdiff
ui-snapshot.c: specify archiver_args.baselen
authorLars Hjemli <hjemli@gmail.com>
Sun, 5 Oct 2008 11:13:03 +0000 (13:13 +0200)
committerLars Hjemli <hjemli@gmail.com>
Sun, 5 Oct 2008 11:13:03 +0000 (13:13 +0200)
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
ui-snapshot.c

index 8e90e10508e70df4c1d60ec53e21b91e3e647607..d97c4655b166e167dfc3e8e652708337a83d8f13 100755 (executable)
@@ -21,7 +21,10 @@ run_test 'strip off the header lines' '
 '
 
 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) &&
index 966a14007414f35d0e04f862a593c93ba26421b5..7a597ff00879a76adab38ed351c2f3dadc7ed4a0 100644 (file)
@@ -82,7 +82,13 @@ static int make_snapshot(const struct cgit_snapshot_format *format,
                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);