diff options
-rw-r--r-- | src/blob.c | 7 | ||||
-rw-r--r-- | tests/win32/longpath.c | 28 |
2 files changed, 28 insertions, 7 deletions
diff --git a/src/blob.c b/src/blob.c index 01ebf075e..79096ee95 100644 --- a/src/blob.c +++ b/src/blob.c @@ -138,12 +138,13 @@ static int write_file_filtered( git_object_size_t *size, git_odb *odb, const char *full_path, - git_filter_list *fl) + git_filter_list *fl, + git_repository* repo) { int error; git_buf tgt = GIT_BUF_INIT; - error = git_filter_list_apply_to_file(&tgt, fl, NULL, full_path); + error = git_filter_list_apply_to_file(&tgt, fl, repo, full_path); /* Write the file to disk if it was properly filtered */ if (!error) { @@ -238,7 +239,7 @@ int git_blob__create_from_paths( error = write_file_stream(id, odb, content_path, size); else { /* We need to apply one or more filters */ - error = write_file_filtered(id, &size, odb, content_path, fl); + error = write_file_filtered(id, &size, odb, content_path, fl, repo); git_filter_list_free(fl); } diff --git a/tests/win32/longpath.c b/tests/win32/longpath.c index ebfcc4d0d..f300544f4 100644 --- a/tests/win32/longpath.c +++ b/tests/win32/longpath.c @@ -64,15 +64,12 @@ void test_win32_longpath__workdir_path_validated(void) #endif } -void test_win32_longpath__status_and_add(void) -{ #ifdef GIT_WIN32 - git_repository *repo = cl_git_sandbox_init("testrepo"); +static void assert_longpath_status_and_add(git_repository* repo) { git_index *index; git_buf out = GIT_BUF_INIT; unsigned int status_flags; - cl_repo_set_bool(repo, "core.longpaths", true); cl_git_pass(git_repository_workdir_path(&out, repo, LONG_FILENAME)); cl_git_rewritefile(out.ptr, "This is a long path.\r\n"); @@ -88,5 +85,28 @@ void test_win32_longpath__status_and_add(void) git_index_free(index); git_buf_dispose(&out); +} +#endif + +void test_win32_longpath__status_and_add(void) +{ +#ifdef GIT_WIN32 + git_repository *repo = cl_git_sandbox_init("testrepo"); + + cl_repo_set_bool(repo, "core.longpaths", true); + + assert_longpath_status_and_add(repo); +#endif +} + +void test_win32_longpath__status_and_add_with_filter(void) +{ +#ifdef GIT_WIN32 + git_repository *repo = cl_git_sandbox_init("testrepo"); + + cl_repo_set_bool(repo, "core.longpaths", true); + cl_repo_set_bool(repo, "core.autocrlf", true); + + assert_longpath_status_and_add(repo); #endif } |