From 5491e9e29eef60bd6337de81e9283e67941618e5 Mon Sep 17 00:00:00 2001 From: Pat Thoyts Date: Sat, 30 Aug 2014 23:38:59 +0200 Subject: [PATCH] Makefile: propagate NATIVE_CRLF to C MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commit 95f31e9a (convert: The native line-ending is \r\n on MinGW, 2010-09-04) correctly points out that the NATIVE_CRLF setting is incorrectly set on Mingw git. However, the Makefile variable is not propagated to the C preprocessor and results in no change. This patch pushes the definition to the C code and adds a test to validate that when core.eol as native is crlf, we actually normalize text files to this line ending convention when core.autocrlf is false. Signed-off-by: Pat Thoyts Signed-off-by: Stepan Kasal Signed-off-by: Torsten Bögershausen Signed-off-by: Junio C Hamano --- Makefile | 3 +++ t/t0026-eol-config.sh | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/Makefile b/Makefile index 07ea105837..7d12e8edc2 100644 --- a/Makefile +++ b/Makefile @@ -1474,6 +1474,9 @@ ifdef NO_REGEX COMPAT_CFLAGS += -Icompat/regex COMPAT_OBJS += compat/regex/regex.o endif +ifdef NATIVE_CRLF + BASIC_CFLAGS += -DNATIVE_CRLF +endif ifdef USE_NED_ALLOCATOR COMPAT_CFLAGS += -Icompat/nedmalloc diff --git a/t/t0026-eol-config.sh b/t/t0026-eol-config.sh index 4807b0f015..c5203e232c 100755 --- a/t/t0026-eol-config.sh +++ b/t/t0026-eol-config.sh @@ -80,4 +80,24 @@ test_expect_success 'autocrlf=true overrides unset eol' ' test -z "$onediff" && test -z "$twodiff" ' +test_expect_success NATIVE_CRLF 'eol native is crlf' ' + + rm -rf native_eol && mkdir native_eol && + ( + cd native_eol && + printf "*.txt text\n" >.gitattributes && + printf "one\r\ntwo\r\nthree\r\n" >filedos.txt && + printf "one\ntwo\nthree\n" >fileunix.txt && + git init && + git config core.autocrlf false && + git config core.eol native && + git add filedos.txt fileunix.txt && + git commit -m "first" && + rm file*.txt && + git reset --hard HEAD && + has_cr filedos.txt && + has_cr fileunix.txt + ) +' + test_done