convert.c: use text_eol_is_crlf()

Add a helper function to find out, which line endings text files
should get at checkout, depending on core.autocrlf and core.eol
configuration variables.

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Torsten Bögershausen 2016-02-05 17:13:25 +01:00 коммит произвёл Junio C Hamano
Родитель bb211b4de8
Коммит 4b4024f5dd
1 изменённых файлов: 14 добавлений и 6 удалений

Просмотреть файл

@ -149,6 +149,19 @@ const char *get_wt_convert_stats_ascii(const char *path)
return ret; return ret;
} }
static int text_eol_is_crlf(void)
{
if (auto_crlf == AUTO_CRLF_TRUE)
return 1;
else if (auto_crlf == AUTO_CRLF_INPUT)
return 0;
if (core_eol == EOL_CRLF)
return 1;
if (core_eol == EOL_UNSET && EOL_NATIVE == EOL_CRLF)
return 1;
return 0;
}
static enum eol output_eol(enum crlf_action crlf_action) static enum eol output_eol(enum crlf_action crlf_action)
{ {
switch (crlf_action) { switch (crlf_action) {
@ -164,12 +177,7 @@ static enum eol output_eol(enum crlf_action crlf_action)
/* fall through */ /* fall through */
case CRLF_TEXT: case CRLF_TEXT:
case CRLF_AUTO: case CRLF_AUTO:
if (auto_crlf == AUTO_CRLF_TRUE) return text_eol_is_crlf() ? EOL_CRLF : EOL_LF;
return EOL_CRLF;
else if (auto_crlf == AUTO_CRLF_INPUT)
return EOL_LF;
else if (core_eol == EOL_UNSET)
return EOL_NATIVE;
} }
return core_eol; return core_eol;
} }