diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-07-03 02:28:22 +0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-07-03 02:28:22 +0400 |
commit | 8ee4a6c2ec6738cfbc815dc59e44825f2a9b9f15 (patch) | |
tree | 16528347bad184d2439fa0e9b6fc559e9bf53b95 | |
parent | c4730f35cc6507bc117a08885d88668fe02b1a7d (diff) |
apply --root: thinkofix.
The end of a string is string[length-1], not string[length+1].
I pointed it out during the review, but I forgot about it when applying the
patch. This should fix it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin-apply.c | 4 | ||||
-rwxr-xr-x | t/t4128-apply-root.sh | 15 |
2 files changed, 15 insertions, 4 deletions
diff --git a/builtin-apply.c b/builtin-apply.c index bf528966ca..6c3db60b65 100644 --- a/builtin-apply.c +++ b/builtin-apply.c @@ -3130,10 +3130,10 @@ int cmd_apply(int argc, const char **argv, const char *unused_prefix) inaccurate_eof = 1; continue; } - if (!strncmp(arg, "--root=", strlen("--root="))) { + if (!prefixcmp(arg, "--root=")) { arg += strlen("--root="); root_len = strlen(arg); - if (root_len && arg[root_len + 1] != '/') { + if (root_len && arg[root_len - 1] != '/') { char *new_root; root = new_root = xmalloc(root_len + 2); strcpy(new_root, arg); diff --git a/t/t4128-apply-root.sh b/t/t4128-apply-root.sh index 80b5af2b41..b650245455 100755 --- a/t/t4128-apply-root.sh +++ b/t/t4128-apply-root.sh @@ -8,7 +8,9 @@ test_expect_success 'setup' ' mkdir -p some/sub/dir && echo Hello > some/sub/dir/file && - git add some/sub/dir/file + git add some/sub/dir/file && + git commit -m initial && + git tag initial ' @@ -21,7 +23,7 @@ diff a/bla/blub/dir/file b/bla/blub/dir/file +Bello EOF -test_expect_success 'apply --root -p --index' ' +test_expect_success 'apply --root -p (1)' ' git apply --root=some/sub -p3 --index patch && test Bello = $(git show :some/sub/dir/file) && @@ -29,4 +31,13 @@ test_expect_success 'apply --root -p --index' ' ' +test_expect_success 'apply --root -p (2) ' ' + + git reset --hard initial && + git apply --root=some/sub/ -p3 --index patch && + test Bello = $(git show :some/sub/dir/file) && + test Bello = $(cat some/sub/dir/file) + +' + test_done |