@@ -1081,6 +1081,7 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
sb.contents_from = contents_from;
sb.reverse = reverse;
sb.repo = the_repository;
+ sb.path = path;
build_ignorelist(&sb, &ignore_revs_file_list, &ignore_rev_list);
string_list_clear(&ignore_revs_file_list, 0);
string_list_clear(&ignore_rev_list, 0);
@@ -1110,7 +1111,7 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
if ((!lno && (top || bottom)) || lno < bottom)
die(Q_("file %s has only %lu line",
"file %s has only %lu lines",
- lno), path, lno);
+ lno), sb.path, lno);
if (bottom < 1)
bottom = 1;
if (top < 1 || lno < top)
@@ -1135,7 +1136,6 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
string_list_clear(&range_list, 0);
sb.ent = NULL;
- sb.path = path;
if (blame_move_score)
sb.move_score = blame_move_score;
@@ -479,6 +479,24 @@ test_expect_success 'blame -L ^:RE (absolute: end-of-file)' '
check_count -f hello.c -L$n -L^:ma.. F 4 G 1 H 1
'
+test_expect_success 'setup -L :funcname with userdiff driver' '
+ echo "fortran-* diff=fortran" >.gitattributes &&
+ fortran_file=fortran-external-function &&
+ orig_file="$TEST_DIRECTORY/t4018/$fortran_file" &&
+ cp $orig_file . &&
+ git add $fortran_file &&
+ GIT_AUTHOR_NAME="A" GIT_AUTHOR_EMAIL="A@test.git" \
+ git commit -m "add fortran file" &&
+ sed -e "s/ChangeMe/IWasChanged/" <"$orig_file" >$fortran_file &&
+ git add $fortran_file &&
+ GIT_AUTHOR_NAME="B" GIT_AUTHOR_EMAIL="B@test.git" \
+ git commit -m "change fortran file"
+'
+
+test_expect_success 'blame -L :funcname with userdiff driver' '
+ check_count -f fortran-external-function -L:RIGHT A 7 B 1
+'
+
test_expect_success 'setup incremental' '
(
GIT_AUTHOR_NAME=I &&