diff options
| -rwxr-xr-x | tests/t0107-snapshot.sh | 20 | ||||
| -rw-r--r-- | ui-snapshot.c | 8 | 
2 files changed, 15 insertions, 13 deletions
| diff --git a/tests/t0107-snapshot.sh b/tests/t0107-snapshot.sh index c42091a..8ab4912 100755 --- a/tests/t0107-snapshot.sh +++ b/tests/t0107-snapshot.sh @@ -4,8 +4,8 @@  prepare_tests "Verify snapshot" -run_test 'get foo/snapshot/test.tar.gz' ' -	cgit_url "foo/snapshot/test.tar.gz" >trash/tmp +run_test 'get foo/snapshot/master.tar.gz' ' +	cgit_url "foo/snapshot/master.tar.gz" >trash/tmp  '  run_test 'check html headers' ' @@ -13,27 +13,27 @@ run_test 'check html headers' '  	     grep -e "Content-Type: application/x-gzip" &&  	head -n 2 trash/tmp | -	     grep -e "Content-Disposition: inline; filename=.test.tar.gz." +	     grep -e "Content-Disposition: inline; filename=.master.tar.gz."  '  run_test 'strip off the header lines' ' -	 tail -n +6 trash/tmp > trash/test.tar.gz +	 tail -n +6 trash/tmp > trash/master.tar.gz  ' -run_test 'verify gzip format' 'gunzip --test trash/test.tar.gz' +run_test 'verify gzip format' 'gunzip --test trash/master.tar.gz'  run_test 'untar' ' -	rm -rf trash/foo && -	tar -xf trash/test.tar.gz -C trash +	rm -rf trash/master && +	tar -xf trash/master.tar.gz -C trash  '  run_test 'count files' ' -	c=$(ls -1 trash/foo/ | wc -l) && +	c=$(ls -1 trash/master/ | wc -l) &&  	test $c = 5  '  run_test 'verify untarred file-5' ' -	 grep -e "^5$" trash/foo/file-5 && -	 test $(cat trash/foo/file-5 | wc -l) = 1 +	 grep -e "^5$" trash/master/file-5 && +	 test $(cat trash/master/file-5 | wc -l) = 1  '  tests_done diff --git a/ui-snapshot.c b/ui-snapshot.c index 5f813fc..f25613e 100644 --- a/ui-snapshot.c +++ b/ui-snapshot.c @@ -175,10 +175,12 @@ void cgit_print_snapshot(const char *head, const char *hex,  	if (!hex && dwim) {  		hex = get_ref_from_filename(ctx.repo->url, filename, f); -		if (hex != NULL) { -			prefix = xstrdup(filename); -			prefix[strlen(filename) - strlen(f->suffix)] = '\0'; +		if (hex == NULL) { +			html_status(404, "Not found", 0); +			return;  		} +		prefix = xstrdup(filename); +		prefix[strlen(filename) - strlen(f->suffix)] = '\0';  	}  	if (!hex) | 
