aboutsummaryrefslogtreecommitdiff
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
-rw-r--r--Makefile2
m---------git0
-rw-r--r--html.c20
-rwxr-xr-xtests/setup.sh18
-rwxr-xr-xtests/t0010-validate-html.sh5
-rwxr-xr-xtests/t0101-index.sh6
-rwxr-xr-xtests/t0102-summary.sh6
-rwxr-xr-xtests/t0108-patch.sh37
-rw-r--r--ui-patch.c6
9 files changed, 28 insertions, 72 deletions
diff --git a/Makefile b/Makefile
index 931c60e..355186e 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@ CGIT_SCRIPT_PATH = /var/www/htdocs/cgit
CGIT_CONFIG = /etc/cgitrc
CACHE_ROOT = /var/cache/cgit
SHA1_HEADER = <openssl/sha.h>
-GIT_VER = 1.5.5.rc1
+GIT_VER = 1.5.4.1
GIT_URL = http://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.bz2
#
diff --git a/git b/git
-Subproject 803d5158123346229d71de53818920efbc88ca0
+Subproject 527270689c364bea9b0630df9bae5e09c2071c1
diff --git a/html.c b/html.c
index 937b5e7..98ffaf9 100644
--- a/html.c
+++ b/html.c
@@ -56,7 +56,9 @@ void html_txt(char *txt)
while(t && *t){
int c = *t;
if (c=='<' || c=='>' || c=='&') {
- write(htmlfd, txt, t - txt);
+ *t = '\0';
+ html(txt);
+ *t = c;
if (c=='>')
html("&gt;");
else if (c=='<')
@@ -77,7 +79,9 @@ void html_ntxt(int len, char *txt)
while(t && *t && len--){
int c = *t;
if (c=='<' || c=='>' || c=='&') {
- write(htmlfd, txt, t - txt);
+ *t = '\0';
+ html(txt);
+ *t = c;
if (c=='>')
html("&gt;");
else if (c=='<')
@@ -88,8 +92,12 @@ void html_ntxt(int len, char *txt)
}
t++;
}
- if (t!=txt)
- write(htmlfd, txt, t - txt);
+ if (t!=txt) {
+ char c = *t;
+ *t = '\0';
+ html(txt);
+ *t = c;
+ }
if (len<0)
html("...");
}
@@ -100,7 +108,9 @@ void html_attr(char *txt)
while(t && *t){
int c = *t;
if (c=='<' || c=='>' || c=='\'') {
- write(htmlfd, txt, t - txt);
+ *t = '\0';
+ html(txt);
+ *t = c;
if (c=='>')
html("&gt;");
else if (c=='<')
diff --git a/tests/setup.sh b/tests/setup.sh
index 66bf406..51d5a75 100755
--- a/tests/setup.sh
+++ b/tests/setup.sh
@@ -54,9 +54,7 @@ summary-tags=5
repo.url=foo
repo.path=$PWD/trash/repos/foo/.git
-# Do not specify a description for this repo, as it then will be assigned
-# the constant value "[no description]" (which actually used to cause a
-# segfault).
+repo.desc=the foo repo
repo.url=bar
repo.path=$PWD/trash/repos/bar/.git
@@ -67,10 +65,8 @@ EOF
prepare_tests()
{
setup_repos
- rm -f test-output.log 2>/dev/null
test_count=0
test_failed=0
- echo "[$0]" "$@" >test-output.log
echo "$@" "($0)"
}
@@ -79,8 +75,7 @@ tests_done()
printf "\n"
if test $test_failed -gt 0
then
- printf "test: *** %s failure(s), logfile=%s\n" \
- $test_failed "$(pwd)/test-output.log"
+ printf "[%s of %s tests failed]\n" $test_failed $test_count
false
fi
}
@@ -90,17 +85,14 @@ run_test()
desc=$1
script=$2
((test_count++))
- printf "\ntest %d: name='%s'\n" $test_count "$desc" >>test-output.log
- printf "test %d: eval='%s'\n" $test_count "$2" >>test-output.log
- eval "$2" >>test-output.log 2>>test-output.log
+ eval "$2" >test-output.log
res=$?
- printf "test %d: exitcode=%d\n" $test_count $res >>test-output.log
if test $res = 0
then
- printf " %2d) %-60s [ok]\n" $test_count "$desc"
+ printf " %s: ok - %s\n" $test_count "$desc"
else
((test_failed++))
- printf " %2d) %-60s [failed]\n" $test_count "$desc"
+ printf " %s: fail - %s\n" $test_count "$desc"
fi
}
diff --git a/tests/t0010-validate-html.sh b/tests/t0010-validate-html.sh
index 94aa52b..907a415 100755
--- a/tests/t0010-validate-html.sh
+++ b/tests/t0010-validate-html.sh
@@ -7,12 +7,9 @@ test_url()
{
tidy_opt="-eq"
test -z "$NO_TIDY_WARNINGS" || tidy_opt+=" --show-warnings no"
- cgit_url "$1" >trash/tidy-$test_count || return
- sed -ie "1,4d" trash/tidy-$test_count || return
+ cgit_url "$1" | sed -e "1,4d" >trash/tidy-$test_count
tidy $tidy_opt trash/tidy-$test_count
rc=$?
-
- # tidy returns with exitcode 1 on warnings, 2 on error
if test $rc = 2
then
false
diff --git a/tests/t0101-index.sh b/tests/t0101-index.sh
index 445af6a..12ed00c 100755
--- a/tests/t0101-index.sh
+++ b/tests/t0101-index.sh
@@ -6,10 +6,8 @@ prepare_tests "Check content on index page"
run_test 'generate index page' 'cgit_url "" >trash/tmp'
run_test 'find foo repo' 'grep -e "foo" trash/tmp'
-run_test 'find foo description' 'grep -e "\[no description\]" trash/tmp'
run_test 'find bar repo' 'grep -e "bar" trash/tmp'
-run_test 'find bar description' 'grep -e "the bar repo" trash/tmp'
-run_test 'no tree-link' '! grep -e "foo/tree" trash/tmp'
-run_test 'no log-link' '! grep -e "foo/log" trash/tmp'
+run_test 'no tree-link' 'grep -ve "foo/tree" trash/tmp'
+run_test 'no log-link' 'grep -ve "foo/log" trash/tmp'
tests_done
diff --git a/tests/t0102-summary.sh b/tests/t0102-summary.sh
index f0b0d9a..7edd675 100755
--- a/tests/t0102-summary.sh
+++ b/tests/t0102-summary.sh
@@ -8,13 +8,13 @@ run_test 'generate foo summary' 'cgit_url "foo" >trash/tmp'
run_test 'find commit 1' 'grep -e "commit 1" trash/tmp'
run_test 'find commit 5' 'grep -e "commit 5" trash/tmp'
run_test 'find branch master' 'grep -e "master" trash/tmp'
-run_test 'no tags' '! grep -e "tags" trash/tmp'
+run_test 'no tags' 'grep -ve "tags" trash/tmp'
run_test 'generate bar summary' 'cgit_url "bar" >trash/tmp'
-run_test 'no commit 45' '! grep -e "commit 45" trash/tmp'
+run_test 'no commit 45' 'grep -ve "commit 45" trash/tmp'
run_test 'find commit 46' 'grep -e "commit 46" trash/tmp'
run_test 'find commit 50' 'grep -e "commit 50" trash/tmp'
run_test 'find branch master' 'grep -e "master" trash/tmp'
-run_test 'no tags' '! grep -e "tags" trash/tmp'
+run_test 'no tags' 'grep -ve "tags" trash/tmp'
tests_done
diff --git a/tests/t0108-patch.sh b/tests/t0108-patch.sh
deleted file mode 100755
index 33351d6..0000000
--- a/tests/t0108-patch.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-
-. ./setup.sh
-
-prepare_tests "Check content on patch page"
-
-run_test 'generate foo/patch' '
- cgit_query "url=foo/patch" >trash/tmp
-'
-
-run_test 'find `From:` line' '
- grep -e "^From: " trash/tmp
-'
-
-run_test 'find `Date:` line' '
- grep -e "^Date: " trash/tmp
-'
-
-run_test 'find `Subject:` line' '
- grep -e "^Subject: commit 5" trash/tmp
-'
-
-run_test 'find `cgit` signature' '
- tail -1 trash/tmp | grep -e "^cgit"
-'
-
-run_test 'find initial commit' '
- root=$(git --git-dir=$PWD/trash/repos/foo/.git rev-list HEAD | tail -1)
-'
-
-run_test 'generate patch for initial commit' '
- cgit_query "url=foo/patch&id=$root" >trash/tmp
-'
-
-run_test 'find `cgit` signature' '
- tail -1 trash/tmp | grep -e "^cgit"
-'
diff --git a/ui-patch.c b/ui-patch.c
index c1c4ce3..36bfae4 100644
--- a/ui-patch.c
+++ b/ui-patch.c
@@ -90,11 +90,7 @@ void cgit_print_patch(char *hex)
return;
}
info = cgit_parse_commit(commit);
-
- if (commit->parents && commit->parents->item)
- hashcpy(old_sha1, commit->parents->item->object.sha1);
- else
- hashclr(old_sha1);
+ hashcpy(old_sha1, commit->parents->item->object.sha1);
patchname = fmt("%s.patch", sha1_to_hex(sha1));
ctx.page.mimetype = "text/plain";