Alternate test for autocrlf with status I couldn't get the last failing test to actually fail. This is a different test suggested by @nulltoken which should fail.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
diff --git a/src/crlf.c b/src/crlf.c
index 509e558..1b6898b 100644
--- a/src/crlf.c
+++ b/src/crlf.c
@@ -276,7 +276,7 @@ static int find_and_add_filter(git_vector *filters, git_repository *repo, const
/*
* Use the core Git logic to see if we should perform CRLF for this file
- * based on its attributes & the value of `core.auto_crlf`
+ * based on its attributes & the value of `core.autocrlf`
*/
ca.crlf_action = crlf_input_action(&ca);
diff --git a/tests-clar/status/worktree.c b/tests-clar/status/worktree.c
index d4ae48b..c0412ef 100644
--- a/tests-clar/status/worktree.c
+++ b/tests-clar/status/worktree.c
@@ -824,3 +824,24 @@ void test_status_worktree__new_staged_file_must_handle_crlf(void)
git_index_free(index);
git_repository_free(repo);
}
+
+void test_status_worktree__line_endings_dont_count_as_changes_with_autocrlf(void)
+{
+ git_repository *repo = cl_git_sandbox_init("status");
+ git_config *config;
+ unsigned int status;
+
+ cl_git_pass(git_repository_config(&config, repo));
+ cl_git_pass(git_config_set_bool(config, "core.autocrlf", true));
+ git_config_free(config);
+
+ cl_git_rewritefile("status/current_file", "current_file\r\n");
+
+ cl_git_pass(git_status_file(&status, repo, "current_file"));
+
+#ifdef GIT_WIN32
+ cl_assert_equal_i(GIT_STATUS_CURRENT, status);
+#else
+ cl_assert_equal_i(GIT_STATUS_WT_MODIFIED, status);
+#endif
+}