Commit 15debaf5da2821e6f97038218b46d9fb3c755631

Russell Belfer 2012-01-11T17:28:25

Fix bug in dir_for_path The last checkin accidentally broke dir_for_path by propogating the dirname return code even when there was no error.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
diff --git a/src/fileops.c b/src/fileops.c
index 1d991b3..3412a47 100644
--- a/src/fileops.c
+++ b/src/fileops.c
@@ -551,7 +551,8 @@ int git_futils_dir_for_path(git_buf *dir, const char *path, const char *base)
 
 	/* call dirname if this is not a directory */
 	if (error == GIT_SUCCESS && git_futils_isdir(dir->ptr) != GIT_SUCCESS)
-		error = git_path_dirname_r(dir, dir->ptr);
+		if (git_path_dirname_r(dir, dir->ptr) < GIT_SUCCESS)
+			error = git_buf_lasterror(dir);
 
 	if (error == GIT_SUCCESS)
 		error = git_path_to_dir(dir);