cgit

commit aa60ae12cb3db965b3fe7239424cab92175b8343

Author: Lars Hjemli <hjemli@gmail.com>

Merge branch 'snapshot-fixes'

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


diff --git a/tests/t0107-snapshot.sh b/tests/t0107-snapshot.sh
index c42091a2cf8544a6f42d5378f6096f5a2af77e9d..8ab4912a282b667fb19779138c7fe739acdfc321 100755
--- a/tests/t0107-snapshot.sh
+++ b/tests/t0107-snapshot.sh
@@ -4,8 +4,8 @@ . ./setup.sh
 
 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 @@ 	head -n 1 trash/tmp |
 	     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 5f813fc1d99bae806cd5f91028c68b2650c18099..f25613e9d6c98530e48c1814305000d22ebbb44f 100644
--- a/ui-snapshot.c
+++ b/ui-snapshot.c
@@ -175,10 +175,12 @@ 	}
 
 	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)